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 đề tài : Nguyễn Thái Hải – N15DCCN033 – D15CQCN01-N TPHCM - Tháng 10, 2017 MỤC LỤC MỤC LỤC I Yêu cầu đề tài: II Xác định thực thể: III ERD: IV Mơ hình liệu quan hệ - chuẩn hóa dạng chuẩn V Diagram VI Bảng, kiểu liệu rang buộc VII Thiết lập rang buộc toàn vẹn 14 Ràng buộc toàn vẹn miền giá trị: .14 Ràng buộc toàn vẹn liên thuộc tính: 18 Ràng buộc toàn vẹn liên bộ: 19 Ràng buộc tồn vẹn liên thuộc tính - liên quan hê: 25 Ràng buộc tồn vẹn khóa ngoại 25 Ràng buộc toà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 và tên khoa Mỗi khoa được quản lý bởi trưởng khoa tại thời điểm nhất định - Mỗi khoa quản lý nhiều lớp, mỗi lớp chỉ thuộc khoa Trong một khoa có nhiều chuyên ngành Mỗi sinh viên chỉ thuộc chuyên ngành, 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ì ở 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 trường đã lên kế hoạch mở học kỳ thuộc 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 nhất 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à 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ó kết quả Số lần thi cho môn tối đa 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 thi và có điểm các môn thi Điểm các mơn thi được chủn tới phịng giáo vụ khoa, nhiệm vụ phòng là nhập điểm môn học đó vào sở dữ liệu Thang điểm tối đ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 xếp phân loại sinh viên - Cuối khóa, trường sẽ lọc các sv làm đồ án tốt nghiệp học môn thay thế SV làm ĐATN sẽ nhận luận văn, GVHD, và sẽ Hội đồng báo cáo Điểm chấm LVTN có cột điểm : điểm HD, điểm PB, điểm thành viên hội đồng Yêu cầu: Thiết kế sơ đồ ERD cho sở dữ liệu quản lý điểm sinh viên Chuyển sơ đồ ERD thành mô hình dữ liệu quan hệ cho đạt dạng chuẩn 3 Thiết lập các ràng buộc toàn vẹn sở dữ liệu 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 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 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 chuyên ngành @machuyennganh áp dụng năm @nam Kết xuấ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 liệu quan hệ - chuẩn hóa dạng chuẩn 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 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 CHUN 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 liệu rang buộc 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 and 10), default: SoTinChi=2 Default 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 Table TruongKhoa Field Name ID NgayNhanChuc Type varchar(10) Date Constraint Primary Key Primary Key, DEFAULT GETDATE() 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 Table ChuyenNganh Field Name ID Ten KhoaID 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 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) Table KeHoachGiang Table KhaNangDayHoc Field Name MonHocID GiangVienID Table SinhVien Not null Default YEAR(GETDATE()) DEFAULT NULL, CHECK (XetLVTN IS NULL OR XetLVTN = OR XetLVTN =1) Not null, Foreign key Not null, Foreign key - Tầm ảnh hưởng: Quan hệ Thêm Xóa Sửa + - +(GVHD_ID, GVPB_ID) LuanVanTN Ràng buộc toà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 - 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: giảng viên có thể có nhiều ngày nhậm chức khác 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 - 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 - 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 - 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 môn học cùng chuyên ngành không được trùng - 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: giảng viên dạy các môn học khác 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 có mã sinh viên khác - 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 sẽ có mã lớp tín chỉ khác Giảng viên dạy một môn học cho một nhóm tại một học kỳ 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ỉ lần nhất Mỗi sinh viên chỉ được đăng ký tối đa 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}