d
BÁO CÁO ĐỒ ÁN THỰC HÀNH
MÔN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
GVHD: ……….
BÁO CÁO ĐÔ ÁN
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
MỤC LỤC
Đại học Khoa học Tự nhiên | Khoa Công nghệ Thông tin
1
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
BÁO CÁO ĐỒ ÁN
THÔNG TIN NHÓM
STT
1
2
3
4
5
2
MSSV
HỌ TÊN
Đại học Khoa học Tự nhiên | Khoa Công nghệ Thông tin
BÁO CÁO ĐỒ ÁN
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
BẢNG THIẾT KẾ THỰC THỂ KẾT HỢP
I.
Lược đồ thực thể kết hợp
II.
Ràng buộc dữ liệu bổ sung
III.
Các điểm đặt biệt trong mơ hình thực thể kết hợp
[Với những thuộc tính như tình trạng – ghi chú ra có những tình trạng
gì?.... Hoặc những thuộc tính gây khó hiểu thì cần giải thích chi tiết ở
đây]
Đại học Khoa học Tự nhiên | Khoa Công nghệ Thông tin
3
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
BÁO CÁO ĐỒ ÁN
XÁC ĐỊNH CHỨC NĂNG HỆ THỐNG VÀ THỦ TỤC STORE
PROCEDURE.
I.
Các chức năng của hệ thống
1. Chức năng cho toàn bộ phân hệ
STT
ALL1
Chức năng
Đăng nhập
Mô tả hoạt động
Đăng nhập vào hệ thống ….. dựa vào tài khoản và mật khẩu.
2. Phân hệ quản trị viên (admin)
STT
AD1
Chức năng
Mô tả hoạt động
Tạo tài khoản đăng Admin sẽ tạo tài khoản đăng nhập sẵn cho …. theo …. và quy
nhập
tắc dành cho mật khẩu khởi tạo.
3. Phân hệ ….
STT
Chức năng
Mô tả hoạt động
4. Phân hệ …..
STT
4
Chức năng
Mô tả hoạt động
Đại học Khoa học Tự nhiên | Khoa Công nghệ Thông tin
BÁO CÁO ĐỒ ÁN
II.
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
Thủ tục store procedure
STT
1
Tên thủ tục
sp_DangNhap
Input
User và matkhau
Output
True or false
2
3
4
5
III.
Nội dung thực hiện
Kiểm tra thông tin về User và matkhau, sau đó
xác thực hoặc thơng báo lỗi
Chức năng
ALL1
Xác định tình huống tranh chấp
1. Danh sách tình huống tranh chấp đồng thời
STT
Chức năng 1
Người
dùng
Thủ tục tham gia
Đại học Khoa học Tự nhiên | Khoa Công nghệ Thông tin
Chức năng 2
Người
dùng
Thủ tục tham gia
Lỗi
tranh
chấp
Ghi chú
5
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
BÁO CÁO PHÂN TÍCH
2. Tình huống tranh chấp đồng thời
-
Sinh viên thực hiện: …..
ERR01: Dirty read
T1 (User = quản lý): thực hiện thêm 1 thông tin chuyến xe vào ngày A.
T2 (User = tổ trưởng): thực hiện thống kê số chuyến xe sẽ thực hiện trong ngày A
Input: …..
Output: …….
sp_Them1ChuyenXe
SET TRANSACTION ISOLATION
LEVEL …………………………..
BEGIN TRAN
B1: Kiểm tra thông tin (1) ……
IF EXISTS (SELECT * FROM A WHERE A.a=@a)
BEGIN
…..
END
B2: Kiểm tra thông tin (2) ……
IF EXISTS (SELECT * FROM ChuyenDi WHERE
A.a=@a)
BEGIN
…..
END
B3: Thêm thông tin vào bảng Chuyến Đi ……
INSERT INTO A ….
B4: Thêm thông tin vào bảng A……
INSERT INTO A….
WAITFOR DELAY '00:00:20'
Khóa
sp_ThongKeChuyenXe-CoDieuKien
Input:
Output:
SET TRANSACTION ISOLATION
LEVEL UNREPEATEABLE READ
R(A)
//Xin khoá
đọc trên bảng
A với đk….
R(ChuyenDi)
//Xin khoá
đọc trên bảng
A với đk….
X(ChuyenDi)
X(A)
BEGIN TRAN
B1: Kiểm tra thông tin (1) ……
IF EXISTS (SELECT * FROM A WHERE
A.a=@a)
BEGIN
6
Khóa
R(A)
//Khơng cần
xin khố
Đại học Khoa học Tự nhiên | Khoa Công nghệ Thông tin
BÁO CÁO PHÂN TÍCH
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
END
…..
B2: Thống kê Chuyến Xe
SELECT….
FROM ChuyenXe, A
WHERE
IF @error ….
//Khi insert đến bảng A: dữ liệu bị lỗi, không thể
insert vào bảng A được. Điều này dẫn đến toàn dữ
liệu sẽ bị ROLLBACK
//Gợi ý: Khi exec store, đưa ra dữ liệu làm sao cho
insert bảng A bị lỗi: như trùng khố chính, hay bị
đụng ràng buộc trigger.
//Phải đưa ra được tình huống ROLLBACK thực
tế, chứ không phải muốn cho ROLLBACK tuỳ ý.
ROLLBACK
Đại học Khoa học Tự nhiên | Khoa Công nghệ Thông tin
R(ChuyenDi)
//Khơng cần
xin khố
COMMIT
7
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
BÁO CÁO PHÂN TÍCH
3. Giải pháp khắc phục lỗi tranh chấp đồng thời
-
Sinh viên thực hiện: …………
ERR01: Dirty read
T1 (User = quản lý): thực hiện thêm 1 thông tin chuyến xe vào ngày A.
T2 (User = tổ trưởng): thực hiện thống kê số chuyến xe sẽ thực hiện trong ngày A
//Nêu rõ cách khắc phục…..
//Cụ thể khắc phục ở chỗ nào????
sp_Them1ChuyenXe
sp_ThongKeChuyenXe-CoDieuKien
Khóa
Input: …..
Input:
Output: …….
Output:
SET TRANSACTION ISOLATION
LEVEL …………………………..
BEGIN TRAN
B1: Kiểm tra thông tin (1) ……
IF EXISTS (SELECT * FROM A WHERE A.a=@a)
BEGIN
…..
END
B2: Kiểm tra thông tin (2) ……
IF EXISTS (SELECT * FROM ChuyenDi WHERE
A.a=@a)
BEGIN
…..
END
B3: Thêm thông tin vào bảng Chuyến Đi ……
INSERT INTO A ….
B4: Thêm thông tin vào bảng A……
INSERT INTO A….
WAITFOR DELAY '00:00:20'
SET TRANSACTION ISOLATION
LEVEL REPEATEABLE READ
R(A)
//Xin khoá
đọc trên bảng
A với đk….
R(ChuyenDi)
//Xin khoá
đọc trên bảng
A với đk….
X(ChuyenDi)
X(A)
BEGIN TRAN
B1: Kiểm tra thông tin (1) ……
IF EXISTS (SELECT * FROM A WHERE
8
Khóa
R(A)
//Khơng cần
Đại học Khoa học Tự nhiên | Khoa Công nghệ Thông tin
BÁO CÁO PHÂN TÍCH
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
A.a=@a)
BEGIN
…..
END
B2: Thống kê Chuyến Xe
SELECT….
FROM ChuyenXe, A
WHERE
IF @error ….
ROLLBACK
Đại học Khoa học Tự nhiên | Khoa Cơng nghệ Thơng tin
xin khố
R(ChuyenDi)
//Khơng cần
xin khoá
COMMIT
9