HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA CƠNG NGHỆ THÔNG TIN
BÁO CÁO
ĐỀ TÀI MÔN CƠ SỞ DỮ LIỆU
XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ ĐIỂM
SINH VIÊN THEO HỆ TÍN CHỈ
GIẢNG VIÊN HƯỚNG DẪN : LƯU NGUYỄN KỲ THƯ
Thực hiện đề tài :
Nguyễn Thái Hải
– N15DCCN033 – D15CQCN01-N
TPHCM - Tháng 10, 2017
MỤC LỤC
MỤC LỤC.............................................................................................................................................. 2
I.
Yêu cầu đề tài:................................................................................................................................................. 3
II.
Xác định thực thể:........................................................................................................................................... 5
III.
ERD:................................................................................................................................................................ 6
IV.
Mơ hình dữ liệu quan hệ - chuẩn hóa dạng chuẩn 3......................................................................................... 7
V.
Diagram.......................................................................................................................................................... 8
VI.
Bảng, kiểu dữ liệu và rang buộc....................................................................................................................... 9
VII.
Thiết lập các rang buộc toàn vẹn............................................................................................................... 14
1.
Ràng buộc toàn vẹn miền giá trị:.........................................................................................................................14
2.
Ràng buộc toàn vẹn liên thuộc tính:....................................................................................................................18
3.
Ràng buộc tồn vẹn liên bộ:................................................................................................................................19
4.
Ràng buộc tồn vẹn liên thuộc tính - liên quan hê:............................................................................................25
5.
Ràng buộc tồn vẹn khóa ngoại..........................................................................................................................25
6.
Ràng buộc tồn vẹn liên bơ - liên quan hê:........................................................................................................29
VIII.
TRUY VẤN................................................................................................................................................. 32
I. Yêu cầu đề tài:
- Trường có nhiều khoa, mỗi khoa có mã khoa để phân biệt các khoa với nhau và tên khoa.
Mỗi khoa được quản lý bởi 1 trưởng khoa tại 1 thời điểm nhất định.
- Mỗi khoa quản lý nhiều lớp, mỗi lớp chỉ thuộc 1 khoa. Trong một khoa có nhiều chuyên
ngành. Mỗi sinh viên chỉ thuộc 1 chuyên ngành, trong 1 chuyên ngành có nhiều sinh viên.
- Mỗi chuyên ngành có kế hoạch giãng xác định, học kỳ nào sẽ học những môn nào đã được
lên kế hoạch trước.
- Mỗi lớp có mã lớp dùng để phân biệt các lớp và tên lớp. Một sinh viên thì ở 1 lớp
- Thông tin về sinh viên gồm có mã sinh viên để phân biệt các sinh viên, họ tên sinh viên,
phái, địa chỉ, ngày sinh, khóa học.
- Lớp tín chỉ là lớp do trường đã lên kế hoạch mở trong 1 học kỳ thuộc 1 năm. Lớp này có
các thông tin học buổi nào, thứ mấy, môn gì, giảng viên nào giảng để cho sinh viên có thể
đăng ký học. Số sv đăng ký phải từ số sv tối thiểu trở lên thì mới tổ chức dạy, ngược lại nhà
trường sẽ hủy. Thông tin về lớp tín chỉ : mă lớp tín chỉ, số sv tối thiểu.
- Thông tin về giảng viên gồm mã giảng viên dùng để phân biệt các giảng viên, họ tên giảng
viên, học vị, học hàm, chuyên môn. Một giảng viên chỉ thuộc duy nhất 1 khoa.
- Thông tin về môn học gồm mã môn học dùng để phân biệt các môn học, tên môn học, số
tiết lý thuyết, số tiết thực hành. Một giảng viên có thể giảng được nhiều môn và 1 môn có
thể được giảng dạy bởi nhiều giảng viên
- Sinh viên thi môn học nào thì có 1 kết quả. Số lần thi cho 1 môn tối đa 1 lần.
- Nếu sinh viên thi không đạt, thì sinh viên đăng ký học lại với lớp khóa sau và thi cùng với
lớp đó.
- Sau khi thi và có điểm của các môn thi. Điểm của các môn thi được chuyển tới phòng giáo
vụ của từng khoa, nhiệm vụ của phịng là nhập điểm của từng mơn học đó vào cơ sở dữ liệu.
Thang điểm tối đa của mỗi môn học là thang điểm 10. Sau mỗi kỳ học thì giáo vụ
khoa sẽ tiến hành sắp xếp phân loại sinh viên.
- Cuối khóa, trường sẽ lọc ra các sv làm đồ án tốt nghiệp hoặc học 2 môn thay thế. SV làm
ĐATN sẽ nhận luận văn, GVHD, và sẽ ra Hội đồng báo cáo. Điểm chấm LVTN có 7 cột
điểm : điểm HD, điểm PB, điểm 5 thành viên trong hội đồng.
Yêu cầu:
1. Thiết kế sơ đồ ERD cho cơ sở dữ liệu quản lý điểm sinh viên.
2. Chuyển sơ đồ ERD trên thành mô hình dữ liệu quan hệ sao cho đạt dạng chuẩn 3
3. Thiết lập các ràng buộc toàn vẹn của cơ sở dữ liệu .
4. Viết các Stored Procedure thực hiện các việc sau :
a/ Liệt kê danh sách sinh viên đã đăng ký học của lớp tín chỉ @malopTC
(tên mơn,họ tên GV, mã SV, họ tên SV, mã lớp)
b/ Liệt kê điểm thi lớn nhất các môn của sinh viên có mã @masv
(họ tên, tên lớp, học kỳ, tên môn, số lần thi, điểm). Danh sách in theo thứ tự học kỳ, tên
môn.
c/ Liệt kê kế hoạch giảng của chuyên ngành @machuyennganh đang áp dụng trong
năm @nam. Kết x́t: học kỳ, tên mơn, số tín chỉ
II. Xác định thực thể:
- Môn học (+ID, +TenMH, +SoTietLyThuyet, +SoTietThucHanh, +SoTinChi,
+ThiTotNghiep)
- Giảng viên (+ID, +Ho, +Ten, +HocVi, +HocHam, +ChuyenMon)
- Khoa ( +ID, +Ten)
- Lớp ( +ID, +Ten)
- Chuyên ngành ( +ID, +Ten)
- Sinh viên ( +ID, +Ho, +Ten, +Phai, +DiaChi, +NgaySinh, + KhoaHoc, +XetLVTN)
- Lớp tín chi ( +ID, +Nhom, +NienKhoa, +HocKy, +SoSVToiTieu, +SoSVToiDa,
+NgayBatDau, +NgayKetThuc )
- Hội đồng báo cáo ( +ID, +Ten, Nam)
- Luận văn tốt nghiệp ( +ID, +DiemHuongDan, +DiemPhanBien, +DiemThanhVien1,
+DiemThanhVien2, +DiemThanhVien3, +DiemThanhVien4, +DiemThanhVien5)
- Tiểu ban ( +ID, +Ten)
- Loại điểm ( +ID, +Ten)
III. ERD:
IV. Mơ hình dữ liệu quan hệ - chuẩn hóa
dạng chuẩn 3
Khóa Chính: in đậm và gạch chân
Khóa Ngoại: in đậm và màu vàng
Khóa Ngoại và Khóa Chính: in đậm, màu đỏ và gạch chân
Khóa tương đương với khóa chính: in đậm và in nghiêng
CHUYÊN NGÀNH
(MãCN, TênCN, Mã khoa )
KHOA
(MãKhoa, TênKhoa, MãTrKhoa)
TRƯỞNG KHOA
(MãTrKhoa,Ngày )
GIẢNG VIÊN
(MãGV, TênGV, MãKhoa, Học Vị, Học hàm,
Chun mơn)
MƠN HỌC
(MãMH, TênMH, Số tiết LT, Số tiết TH, Số tín
chỉ, Thay thế tốt nghiệp)
LỚP
(MãLớp, TênLớp, Mã Khoa )
KẾ HOẠCH GIẢNG
(MãNgành, MãMôn,Ngày áp dụng, Học kỳ,
Năm )
LỚP TÍN CHI
( MãLớpTC, MãGV, MãMH, Nhóm, Niên
khóa, Học ky, Số lượng SV TT, Số lượng SV
TĐ, Ngày bắt đầu, Ngày kết thúc)
LOẠI ĐIỂM
(Mã loại, Tên,%)
CHI TIẾT % ĐIỂM
(MãLoạiĐiểm, LopTinChiID),
CT Lịch học
(LopTinChiID, buổi, thứ, phòng, tiết bắt đầu,
số tiết)
KHẢ NĂNG DẠY HỌC (MãMH, MãGV )
ĐĂNG KÝ MÔN
(MãSV, MãLớpTC)
Chi tiết điểmSV
(MãLoạiĐiểm,SinhViênID, LopTinChiID điểm)
SINH VIÊN
(MãSV, MãCN, MãLớp, Họ, Tên, Phái, Địa chỉ,
Ngày sinh, Khóa học, Xet_LV_TT )
LUẬN VĂN TN
(MãLV, MãSV, MãGVHD, Mã GVPB, điểm
HD, điểm PB, nợi dung )
HỢI ĐỜNG BÁO CÁO (MãHĐ, Tên, Năm, MãKhoa )
CHI TIẾT TIỂU BAN
(MãChiTiếtTB, MãGV, MãTB)
CHẤM
(MãChiTiếtTB, MãLV, điểm )
TIỂU BAN
(MãTB, TênTB, MãHĐ,Mã chuyên ngành)
V. Diagram
VI.Bảng, kiểu dữ liệu và rang buộc
1. Table MonHoc
Field Name
ID
TenMH
SoTietLyThuyet
Type
varchar(10)
Nvarchar(50)
int
SoTietThucHanh
int
SoTinChi
int
ThiTotNghiep
Bit
Constraint
Primary Key
Not null, Unique key
Default SoTietLyThuyet=0,
check( SoTietLyThuyet >=0 )
Default SoTietThucHanh =0,
check(SoTietThucHanh >=0 )
Check (SoTinChi between 1
and 10), default: SoTinChi=2
Default 0
2. Table GiangVien
Field Name
ID
Ho
Ten
KhoaID
HocVi
HocHam
ChuyenMon
Type
varchar(10)
Nvarchar(50)
Nvarchar(50)
varchar(50)
Nvarchar(50)
Nvarchar(50)
Nvarchar(50)
Constraint
Primary Key
Not null
Not null
Not null, Foreign key
Default N'Thạc sĩ'
Default N'Phó giáo sư'
Not null
3. Table TruongKhoa
Field Name
ID
NgayNhanChuc
Type
varchar(10)
Date
Constraint
Primary Key
Primary Key, DEFAULT
GETDATE()
4. Table Khoa
Field Name
ID
Ten
Type
varchar(10)
Nvarchar(50)
Constraint
Primary Key
Not null, Unique
Type
varchar(10)
Nvarchar(50)
varchar(10)
Constraint
Primary Key
Not null, Unique
Not null, Foreign key
5. Table ChuyenNganh
Field Name
ID
Ten
KhoaID
6. Table Lop
Field Name
ID
Ten
KhoaID
Type
varchar(10)
Nvarchar(50)
varchar(10)
Constraint
Primary Key
Not null, Unique
Not null, Foreign key
Field Name
MonHocID
ChuyenNganhID
Ngay
Type
varchar(10)
varchar(10)
Date
HocKy
int
Nam
int
Constraint
Primary Key ,Foreign key
Primary Key,Foreign key
Primary Key ,Default
GETDATE(),
Defautl 1, Check(HocKy
between 1 and 2)
Not null
Type
varchar(10)
varchar(10)
Constraint
Primary Key, Foreign key
Primary Key, Foreign key
Field Name
ID
Ho
Ten
Phai
Type
varchar(10)
Nvarchar(50)
Nvarchar(50)
Nvarchar(3)
Constraint
Primary Key
Not null
Not null
Default N“NỮ”,
check( Phai =“NAM” or
Phai =“NỮ”)
Diachi
NgaySinh
KhoaHoc
Ntext
Date
Int
XetLVTN
Int
LopID
ChuyenNganhID
varchar(10)
varchar(10)
7. Table KeHoachGiang
8. Table KhaNangDayHoc
Field Name
MonHocID
GiangVienID
9. Table SinhVien
Not null
Default
YEAR(GETDATE())
DEFAULT NULL, CHECK
(XetLVTN IS NULL OR
XetLVTN = 0 OR
XetLVTN =1)
Not null, Foreign key
Not null, Foreign key
10. Table LopTinChi
Field Name
ID
GiangVienID
MonHocID
Nhom
Type
int
varchar(10)
varchar(10)
Int
NienKhoa
Int
HocKy
int
SoSVToiTieu
Int
SoSVToiDa
Int
NgayBatDau
Date
NgayKetThuc
Date
Constraint
IDENTITY, Primary Key
Not null, Foreign key
Not null, Foreign key
Not null, CHECK(Nhom
>=1 AND Nhom <= 20)
Default
YEAR(GETDATE())
Default 1, Check(HocKy
BETWEEN 1 AND 3),
Default 10. Check
(SoSVToiTieu >0)
Default 70, Check
(SoSVToiDa >=
SoSVToiTieu)
Default GETDATE(),
Check (NgayBatDau >
GETDATE())
Not null, Check
(NgayKetThuc >
NgayBatDau)
11. Table ChiTietLichHoc
Field Name
LopTinChiID
Buoi
Type
INT
char(1)
Thu
int
Phong
TietBatDau
int
int
SoTiet
Int
Constraint
Primary Key, Foreign key
Primary Key , Default 'S',
Check (Buoi = 'S' OR Buoi
= 'C')
Primary Key, Check (Thu
>=2 AND Thu <= 7)
Not null
Default 1,
Check( TietBatDau >=1 and
TietBatDau <= 10)
NOT NULL DEFAULT 4
CHECK (SoTiet
BETWEEN 1 AND 5)
12. Table DangKy
Field Name
ID
SinhVienID
LopTinChiID
Type
Int
varchar(10)
int
Constraint
Foreign key, Identity
Not null, Foreign key
Not null, Foreign key
13.
Table HoiDongBaoCao
Field Name
ID
Ten
Nam
Type
varchar(10)
nvarchar(50)
Int
KhoaID
varchar(10)
Constraint
Primary Key
Not null, Unique
Unique, DEFAULT
YEAR(GETDATE())
Not null, Foreign key
14. Table LuanVanTN
Field Name
ID
DiemHuongDan
Type
varchar(10)
Int
DiemPhanBien
int
SinhVienID
GVHD_ID
GVPB_ID
varchar(10)
varchar(10)
varchar(10)
Constraint
Primary Key
Check (DiemHuongDan IS
NULL OR DiemHuongDan
BETWEEN 0 AND 10)
Check (DiemPhanBien IS
NULL OR DiemPhanBien
BETWEEN 0 AND 10)
Not null, Foreign key
Not null, Foreign key
Not null, Foreign key
Type
varchar(10)
nvarchar(50)
varchar(10)
varchar(10)
Constraint
Primary Key
Not null, Unique
Not null, Foreign key
Not null, Foreign key
15. Table TieuBan
Field Name
ID
Ten
HoiDongID
ChuyenNganhID
16. Table CTTieuBan
Field Name
ID
GiangVienID
TieuBanID
Type
Int
varchar(10)
varchar(10)
Constraint
Primary Key, Identity
Not null, Foreign key
Not null, Foreign key
Type
int
varchar(10)
Type
Int
varchar(10)
nvarchar(50)
Constraint
Primary Key, Foreign key
Primary Key , Foreign key
Constraint
Check (Diem BETWEEN 0
Primary Key
AND 10)
Not null
17. Table ChamLVTN
Field Name
CTTieuBanID
LuanVanID
Field Name
Diem
ID
Ten
18. Table LoaiDiem
19. Table CTPhanTramDiemLopTC
Field Name
LoaiDiemID
LopTC_ID
PhanTram
Type
varchar(10)
int
float
Constraint
Primary Key
Primary Key
Not null
Type
varchar(10)
varchar(10)
int
Float
Constraint
Primary Key
Primary Key
Primary Key
Not null
20. Table CTDiemSv
Field Name
LoaiDiemID
SinhVienID
LopTC_ID
Diem
VII. Thiết lập các rang ḅc tồn vẹn
1. Ràng buộc toàn vẹn miền giá trị:
Ràng buộc 1:
-
Bối cảnh: MonHoc
-
Mô tả:
Số tiết lý thuyết, thực hành phải lớn hơn hoặc bằng 0
Số tín chỉ nằm trong khoảng từ 1 đến 10
-
Nội dung:
d MonHoc / d.SoTietLyThuyet >= 0
d MonHoc / d.SoTietThucHanh >= 0
d MonHoc / d.SoTinChi [1,10]
-
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
DIEM
+
-
+( SoTietLyThuyet)
DIEM
+
-
+( SoTietThucHanh)
DIEM
+
-
+( SoTinChi)
Ràng buộc 2:
-
Bối cảnh: TruongKhoa
-
Mô tả:
Ngày nhận chức phải lớn hơn hoặc bằng ngày hiện tại
-
Nội dung:
d TruongKhoa / d.Ngay >= Ngày hiện tại
-
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
+
-
+( Ngay)
TruongKhoa
Ràng buộc 3:
-
Bối cảnh: KeHoachGiang
-
Mô tả:
Ngày thực hiện phải lớn hơn hoặc bằng ngày hiện tại
1 năm chỉ có học kì 1,2
-
Nội dung:
d KeHoachGiang / d.Ngay >= 0
d KeHoachGiang / d.HocKy [1,2]
-
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
KeHoachGiang
+
-
-
KeHoachGiang
+
-
+( HocKy)
Ràng buộc 4:
-
Bới cảnh: SinhVien
-
Mô tả:
Phái có 2 trị là Nam và Nữ
Xét LVTN chỉ có chưa xác định,không có luận văn và có
-
Nội dung:
d SinhVien / d.Phai {‘Nam’,’Nữ’}
d SinhVien / d.XetLVTN {0,1,NULL}
-
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
SinhVien
+
-
+(Phai)
SinhVien
+
-
+( XetLVTN)
Ràng buộc 5:
-
Bối cảnh: LopTinChi
-
Mô tả:
1 năm chỉ có học kì 1,2,3
Nhóm phải lớn hơn 0
Số sinh viên tối thiểu, tối đa lớn hơn 0
Ngày bắt đầu phải hơn hơn ngày hiện tại
Phần trăm chuyên cần, bài tập lớn hơn hoặc bằng 0 và bé hơn hoặc
bằng 30
Phần trăm cuối kỳ phải lớn hơn hoặc bằng 30 và bé hơn hoặc bằng 100
Khóa học phải lớn hơn năm sinh của sinh viên
-
Nội dung:
d LopTinChi / d.HocKy [1,3]
d LopTinChi / d.Nhom [1,20]
d LopTinChi / d.SoSVToiThieu >0
d LopTinChi / d.SoSVToiDa >0
d LopTinChi / d.NgayBatDau >NgayHienTai
d LopTinChi / d.PhanTramChuyenCan > [0,30]
d LopTinChi / d.PhanTramBaiTap [0,30]
d LopTinChi / d.PhanTramGiuaKy [0,30]
d LopTinChi / d.PhanTramCuoiKy [30,100]
d LopTinChi / d. KhoaHoc > Year(NgaySinh)
-
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
LopTinChi
+
-
+(HocKy)
LopTinChi
+
-
+( Nhom)
LopTinChi
+
-
+( SoSVToiThieu)
LopTinChi
+
-
+( SoSVToiDa)
LopTinChi
+
-
+( NgayBatDau)
LopTinChi
+
-
+( PhanTramChuyenCan)
LopTinChi
+
-
+( PhanTramBaiTap)
LopTinChi
+
-
+( PhanTramGiuaKy)
LopTinChi
+
-
+( PhanTramCuoiKy)
LopTinChi
+
-
+( KhoaHoc)
Ràng buộc 6:
-
Bối cảnh: ChiTietLichHoc
-
Mô tả:
Buổi có 2 buổi Sáng hoặc Chiều
Ngày học chỉ có thứ 2 tới thứ 7
Tiết bắt đầu từ 1 tới 10
Số tiết học trong 1 buổi từ 1 đến 5
-
Nội dung:
d ChiTietLichHoc / d.Buoi {‘S’,’C’}
d ChiTietLichHoc / d.Thu [2,7]
d ChiTietLichHoc / d.TietBatDau [1,10]
d ChiTietLichHoc / d.SoTiet [1,5]
-
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
ChiTietLichHoc
+
-
+(Buoi)
ChiTietLichHoc
+
-
+( Thu)
ChiTietLichHoc
+
-
+( TietBatDau)
ChiTietLichHoc
+
-
+( SoTiet)
ChiTietLichHoc
+
-
+( SoTiet)
Ràng buộc 7:
-
Bối cảnh:
HoiDongBaoCao
-
Mô tả:
Năm thành lập hội đồng báo cáo phải lớn hơn hoặc bằng năm hiện tại
-
Nội dung:
d HoiDongBaoCao / d.Nam >= YEAR(GETDATE())
-
Tầm ảnh hưởng:
Quan hệ
LuanVanTotNghiep
Thêm
Xóa
Sửa
+
-
+( Nam)
Ràng buộc 8:
-
Bối cảnh: LuanVanTN
-
Mô tả:
Điểm hướng dẫn phải nằm trong khoảng từ 0 đến 10
Điểm phản biện phải nằm trong khoảng từ 0 đến 10
-
Nội dung:
d LuanVanTN / d.DiemHuongDan [0,10]
d LuanVanTN / d. DiemPhanBien [0,10]
-
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
HoiDong_GiangVien
+
-
+( DiemHuongDan)
HoiDong_GiangVien
+
-
+( DiemPhanBien)
Ràng buộc 9:
-
Bối cảnh: ChamLVTN
-
Mô tả:
Điểm nằm trong đoạn từ 0 đến 10
-
Nội dung:
d ChamLVTN / d.Diem [0,10]
-
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
+
-
+(Diem)
KeHoachGiang
Ràng buộc 10:
-
Bới cảnh: LoaiDiem
-
Mơ tả:
Phần trăm điểm của cột diểm phải lớn hơn 0% và nhỏ hơn 100%
-
Nội dung:
d LopTinChi/ d.PhanTram [0,100]
-
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
+
-
+(PhanTram)
LopTinChi
Ràng buộc 11:
-
Bới cảnh: CTDiemSv
-
Mơ tả:
Điểm số của mỗi điểm phải nằm trong khoảng từ 0 đến 10
-
-
Nội dung:
d CTDiemSv / d. Diem [0,10]
Tầm ảnh hưởng:
Quan hệ
CTDiemSv
Thêm
Xóa
Sửa
+
-
+( Diem)
2. Ràng buộc tồn vẹn liên thuộc tính:
Ràng buộc 12:
-
Bối cảnh: SinhVien
-
Mô tả:
-
Nội dung: sv SinhVien / sv. KhoaHoc > sv. YEAR(NgaySinh)
Tầm ảnh hưởng:
Khóa học của sinh viên phải lớn hơn năm sinh của sinh viên đó
Quan hệ
Thêm
Xóa
Sửa
+
-
+( KhoaHoc, NgaySinh)
SinhVien
Ràng buộc 13:
-
Bới cảnh: LopTinChi
-
Mơ tả:
Ngày kết thúc phải sau ngày bắt đầu học.
Số sinh viên tối đa nhiều hơn hoặc bẳng số sinh viên tối thiểu
-
Nội dung:
d LopTinChi/ d.NgayBatDau < d.NgayKetThuc
d LopTinChi/ d.SoSVToiThieu < d. SoSVToiDa
-
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
LopTinChi
+
-
+(NgayBatDau,
NgayKetThuc)
LopTinChi
+
-
+(SoSVToiThieu,
SoSVToiDa)
Ràng buộc 14:
-
Bới cảnh: ChiTietLichHoc
-
Mô tả:
Nếu buổi học là Sáng thì tiết bắt đầu từ 1 đến 5 và số tiết học phải bé
hơn 5 trừ đi tiết bắt đầu.
Nếu buổi học là Chiều thì tiết bắt đầu từ 5 đến 10 và số tiết học phải bé
hơn 10 trừ đi tiết bắt đầu.
-
Nội dung: d ChiTietLichHoc / d.Buoi =’S’ And d.TietBatDau [1,5] And
d.SoTiet < 5 – d.TietBatDau
d ChiTietLichHoc / d.Buoi =’C’ And d.TietBatDau [6,10] And
d.SoTiet < 10 – d.TietBatDau
-
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
+
-
+(Buoi,SoTiet,TietBatDau)
ChiTietLichHoc
Ràng buộc 15:
-
Bới cảnh: LuanVanTN
-
Mơ tả:
Giáo viên hướng dẫn và phản biện phải khác nhau
-
Nội dung:
d LuanVanTN / d. GVHD_ID <> d.GVPB_ID
-
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
+
-
+(GVHD_ID, GVPB_ID)
LuanVanTN
3. Ràng buộc tồn vẹn liên bộ:
Ràng buộc 16:
-
Bối cảnh: MonHoc
-
Mô tả:
Các môn học có mã và tên môn học khác nhau
-
Nội dung:
mh1,mh2 MonHoc / mh1.ID <> mh2.ID
mh1,mh2 MonHoc / mh1.Ten <> mh2.Ten
-
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
MonHoc
+
-
*(ID)
MonHoc
+
-
+(Ten)
Ràng buộc 17:
-
Bới cảnh: GiangVien
-
Mơ tả:
Cac giảng viên có mã để phân biệt
-
Nội dung:
gv1,gv2 GiangVien / gv1.ID <> gv2.ID
-
Tầm ảnh hưởng:
Quan hệ
GiangVien
Thêm
Xóa
Sửa
+
-
*(ID)
Ràng buộc 18:
-
Bới cảnh: TruongKhoa
-
Mô tả:
-
Nội dung: gv1,gv2 TruongKhoa / gv1.ID <> gv2.ID or gv1. NgayNhanChuc
<> gv2. NgayNhanChuc
-
Tầm ảnh hưởng:
1 giảng viên có thể có nhiều ngày nhậm chức khác nhau
Quan hệ
Thêm
Xóa
Sửa
TruongKhoa
+
-
*(ID)
TruongKhoa
+
-
+( NgayNhanChuc)
Ràng buộc 19:
-
Bối cảnh: Khoa
-
Mô tả:
Các khoa có mã và tên khác nhau
-
Nội dung:
k1,k2 Khoa / k1.ID <> k2.ID
k1,k2 Khoa / k1.Ten <> k2.Ten
-
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
Khoa
+
-
*(ID)
Khoa
+
-
+(Ten)
Ràng buộc 20:
-
Bới cảnh: ChuyenNganh
-
Mơ tả:
Các chuyên ngành có mã và tên khác nhau
-
Nội dung:
k1,k2 ChuyenNganh / k1.ID <> k2.ID
k1,k2 ChuyenNganh / k1.Ten <> k2.Ten
-
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
ChuyenNganh
+
-
*(ID)
ChuyenNganh
+
-
+(Ten)
Ràng buộc 21:
-
Bới cảnh: Lop
-
Mơ tả:
Các chuyên ngành có mã và tên khác nhau
-
Nội dung:
k1,k2 Lop / k1.ID <> k2.ID
k1,k2 Lop / k1.Ten <> k2.Ten
-
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
Lop
+
-
*(ID)
Lop
+
-
+(Ten)
Ràng buộc 22:
-
Bới cảnh: KeHoachGiang
-
Mơ tả:
Ngày áp dụng kế hoạch giảng của 1 môn học trong cùng 1 chuyên
ngành không được trùng nhau.
-
Nội dung: k1,k2 KeHoachGiang / k1.MonHocID <> k2.MonHocID or
k1.ChuyenNganhID <> k2.ChuyenNganhID or k1.Ngay <> k2.Ngay
-
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
KeHoachGiang
+
-
*( MonHocID,
ChuyenNganhID)
KeHoachGiang
+
-
+(Ngay)
Ràng buộc 23:
-
Bối cảnh: KhaNangDayHoc
-
Mô tả:
-
Nội dung: k1,k2 KhaNangDayHoc / k1.MonHocID <> k2.MonHocID OR
k1.GiangVienID <> k2. GiangVienID
-
Tầm ảnh hưởng:
1 giảng viên dạy các môn học khác nhau
Quan hệ
KhaNangDayHoc
Thêm
Xóa
Sửa
+
-
+(GiangVienID,
MonHocId)
Ràng buộc 24:
-
Bới cảnh: SinhVien
-
Mơ tả:
Sinh viên khác nhau có mã sinh viên khác nhau
-
Nội dung:
sv1,sv2 SinhVien / sv1.ID <> sv2.ID
-
Tầm ảnh hưởng:
Quan hệ
SinhVien
Thêm
Xóa
Sửa
+
-
*(ID)
Ràng buộc 25:
-
Bới cảnh: LopTinChi
-
Mơ tả:
Lớp tín chỉ khác nhau sẽ có mã lớp tín chỉ khác nhau
Giảng viên dạy mợt mơn học cho một nhóm tại một học kỳ trong một
niên khóa chỉ được phép dạy ở mợt lớp tín chỉ
-
Nợi dung:
tc1,tc2 LopTinChi / tc1.ID <> tc2.ID
tc1,tc2 LopTinChi / tc1. GiangVienID<> tc2. GiangVienID or tc1.
MonHocID <> tc2. MonHocID or tc1. Nhom <> tc2. Nhom or tc1.
NienKhoa <> tc2. HocKy or tc1. NienKhoa <> tc2. HocKy
-
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
LopTinChi
+
-
*(ID)
LopTinChi
+
-
+( GiangVienID,
MonHocID, Nhom,
NienKhoa, HocKy)
Ràng buộc 26:
-
Bối cảnh: ChiTietLichHoc
-
Mô tả: Các chi tiết lịch học không được phép đồng thời có cùng Mã lớp tín chỉ, buổi
học và thứ.
-
Nợi dung:
ct1,ct2 ChiTietLichHoc /ct1. GiangVienID<> ct2. GiangVienID
or ct1. MonHocID <> ct2. MonHocID or ct1. Nhom <> ct2. Nhom or ct1. NienKhoa
<> ct2. HocKy or ct1. NienKhoa <> ct2. HocKy
-
Tầm ảnh hưởng:
Quan hệ
ChiTietLichHoc
Thêm
Xóa
Sửa
+
-
+(LopTinChiID,Buoi,Thu)
Ràng buộc 27:
-
Bối cảnh: DangKy
-
Mô tả:
Mỗi sinh viên chỉ được phép đăng ký mợt lớp tín chỉ 1 lần duy nhất
Mỡi sinh viên chỉ được đăng ký tối đa 2 môn thay thế tốt nghiệp
-
Nội dung:
dk1,dk2 DangKy / dk1. SinhVienID <>
dk1. LopTinChiID <> dk2. LopTinChiID
dk2.SinhVienID
or
dk DangKy (card {d} <=2) với (d DangKy and d. SinhVienID =
dk.SinhVienID and d. LaMonThayThe=1 )
-
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
DangKy
+
-
+(SinhVienID,LopTinChiID)
DangKy
+
-
+(LaMonThayThe)
Ràng buộc 28:
-
Bới cảnh:
LuanVanTN
-
Mơ tả:
Mỗi LVTN có 1 mã số riêng biệt dùng để phân biệt với các LVTN khác
Mỗi sinh viên chỉ phép làm 1 LVTN
-
Nội dung:
lv1,lv2 LuanVanTN / lv1.ID <> lv2.ID
lv1,lv2 LuanVanTN / lv1. SinhVienID <> lv2. SinhVienID
-
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
DangKy
+
-
+( ID)
DangKy
+
-
+( SinhVienID)
Ràng buộc 29:
-
Bối cảnh: HoiDongBaoCao
-
Mô tả:
Mỗi hội đồng báo cáo có 1 mã số riêng biệt để phân biệt với các hội
đồng báo cáo khác, đồng thời tên của mỗi hội đồng báo cáo là duy nhất
-
Nội dung:
hd1,hd2 HoiDongBaoCao / hd1.ID <> hd2.ID
hd1,hd2 HoiDongBaoCao / hd1.Ten <> hd2. Ten
-
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
DangKy
+
-
+( ID)
DangKy
+
-
+( Ten)
Ràng buộc 30:
-
Bối cảnh: TieuBan
-
Mô tả:
Mỗi tiểu ban có 1 mã số riêng biệt để phân biệt với các tiểu ban khác,
đồng thời tên của mỗi tiểu ban là duy nhất
-
Nội dung:
tb1,tb2 TieuBan / tb1.ID <> tb2.ID
tb1,tb2 TieuBan / tb1.Ten <> tb2. Ten
-
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
DangKy
+
-
+( ID)
DangKy
+
-
+( Ten)
Ràng buộc 31:
-
Bối cảnh: CTTieuBan
-
Mô tả:
-
Nội dung:
-
1 giảng viên chỉ được phép xuất hiện trong 1 tiểu ban duy nhất 1 lần
tb1,tb2 CTTieuBan / tb1. GiangVienID <> tb2. GiangVienID OR tb1.
TieuBanID <> tb2. TieuBanID
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
+
-
+( GiangVienID, TieuBanID)
DangKy
Ràng buộc 32:
-
Bối cảnh: ChamLVTN
-
Mô tả:
-
Nội dung:
1 luận văn tốt nghiệp chỉ được chấm bởi 1 tiểu ban
lv1, lv2 ChamLVTN / lv1. LuanVanID <> lv2. LuanVanID OR tb1.
CTTieuBanID <> tb2. CTTieuBanID
-
Tầm ảnh hưởng:
Quan hệ
DangKy
Thêm
Xóa
Sửa
+
-
+( GiangVienID, TieuBanID)
Ràng buộc 33:
-
Bới cảnh: LoaiDiem
-
Mô tả:
-
Nội dung:
-
Mỗi điểm có mã và tên riêng biệt
lv1, lv2 LoaiDiem / lv1. ID <> lv2. ID
lv1, lv2 LoaiDiem / lv1. Ten <> lv2. Ten
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
LoaiDiem
+
-
+( ID)
LoaiDiem
+
-
+(Ten)
Ràng buộc 34:
-
Bới cảnh: CTPhanTramDiemLopTC
-
Mơ tả:
Các loại điểm trong cùng 1 lớp tín chỉ phải khác nhau
Tổng phần trăm các cợt điểm cùng 1 lớp tín chỉ phải = 100
-
lv1, lv2 CTPhanTramDiemLopTC / lv1. LoaiDiemID <> lv2.
LoaiDiemID OR lv1. LopTC_ID <> lv2.LopTC_ID
lv1, lv2 CTPhanTramDiemLopTC / sum( lv1.
Nội dung:
PhanTram,lv2.PhanTram) = 100
-
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
CTPhanTramDiemLopTC
+
-
+(CTPhanTramDiemLopTC,
LoaiDiemID)
CTPhanTramDiemLopTC
+
-
+(PhanTram)
Ràng buộc 35:
-
Bới cảnh: CTDiemSv
-
Mơ tả:
nhau
-
Nợi dung:
-
Tầm ảnh hưởng:
Các loại điểm trong cùng mợt lớp tín chỉ của 1 sinh viên phải khác
lv1, lv2 CTDiemSv / lv1. LoaiDiemID <> lv2. LoaiDiemID OR lv1.
DangKyID <> lv2. DangKyID
Quan hệ
CTDiemSv
Thêm
Xóa
Sửa
+
-
+( LoaiDiemID, DangKyID)
4. Ràng buộc tồn vẹn liên thuộc tính - liên quan hệ:
Ràng buộc 36:
-
Bối cảnh:
Mô tả:
LVTN
LVTN, SinhVien
Sinh viên sau khi được xét được làm LVTN thì mới có tên trong bảng
lv LVTN
(sv SinhVien ( sv. XetLVTN =1 and lv. SinhVienID =
sv. ID ))
-
Nợi dung:
-
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
LVTN
+
-
*( SinhVienID)
SinhVien
-
+
+(XetLVTN)
5.
Ràng buộc tồn vẹn khóa ngoại
Ràng buộc37 :
-
Bới cảnh:
GiangVien, Khoa
-
Mô tả:
Mỗi giảng viên chỉ thuộc một khoa
-
Nội dung:
g GiangVien, k Khoa / g.KhoaID = k.ID
-
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
GiangVien
+
-
+(KhoaID)
Khoa
-
+
*
Ràng buộc 38:
-
Bới cảnh:
Lop, Khoa
-
Mơ tả:
Mỡi lớp chỉ tḥc một khoa.
-
Nội dung:
l Lop,k Khoa / l.KhoaID = k.ID
-
Tầm ảnh hưởng:
Quan hệ
Thêm
Xóa
Sửa
Lop
+
-
+(KhoaID)
Khoa
-
+
*
Ràng buộc 39: