1. Trang chủ
  2. » Luận Văn - 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ỂMSINH VIÊN THEO hệ tín CHỈ

32 5 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 32
Dung lượng 787 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mô hình dữ liệu quan hệ - chuẩn hóa dạng chuẩn 3.... Bảng, kiểu dữ liệu và rang buộc.... Thiết lập các rang buộc toàn vẹn..... Trong một khoa có nhiều chuyênngành.. Mỗi sinh viên ch

Trang 1

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

Trang 2

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 toàn vẹn liên bộ: 19

4 Ràng buộc toàn vẹn liên thuộc tính - liên quan h : ệ: 25

5 Ràng buộc toàn vẹn khóa ngoại 25

6 Ràng buộc toàn vẹn liên b - liên quan h : ộ - liên quan hệ: ệ: 29

VIII TRUY VẤN 32

Trang 3

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ênngà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 đã đượclê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ảngviê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ớilớ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

Trang 4

- 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ênmôn

c/ Liệt kê kế hoạch giảng của chuyên ngành @machuyennganh đang áp dụng trongnăm @nam Kết xuất: học kỳ, tên môn, số tín chỉ

Trang 5

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 chỉ ( +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)

Trang 6

III ERD:

Trang 7

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,

Chuyên 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 CHỈ ( MãLớpTC , MãGV, MãMH, Nhóm, Niên

khóa, Học kỳ, 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)

Trang 8

V Diagram

Trang 9

VI.Bảng, kiểu dữ liệu và rang buộc

1 Table MonHoc

check( SoTietLyThuyet >=0 )

check(SoTietThucHanh >=0 )

and 10), default: SoTinChi=2

2 Table GiangVien

3 Table TruongKhoa

GETDATE()

4 Table Khoa

5 Table ChuyenNganh

Trang 10

6 Table Lop

7 Table KeHoachGiang

9 Table SinhVien

check( Phai =“NAM” or Phai =“NỮ”)

YEAR(GETDATE())

(XetLVTN IS NULL OR XetLVTN = 0 OR

XetLVTN =1)

Trang 11

10.Table LopTinChi

(NgayKetThuc >

NgayBatDau)

11.Table ChiTietLichHoc

Check (Buoi = 'S' OR Buoi

= 'C')

>=2 AND Thu <= 7)

Check( TietBatDau >=1 andTietBatDau <= 10)

CHECK (SoTiet BETWEEN 1 AND 5)

Trang 12

12 Table DangKy

13.Table HoiDongBaoCao

YEAR(GETDATE())

14.Table LuanVanTN

NULL OR DiemHuongDanBETWEEN 0 AND 10)

NULL OR DiemPhanBien BETWEEN 0 AND 10)

15.Table TieuBan

ChuyenNganhID varchar(10) Not null, Foreign key

Trang 13

16.Table CTTieuBan

17.Table ChamLVTN

AND 10)

18 Table LoaiDiem

19 Table CTPhanTramDiemLopTC

20.Table CTDiemSv

Trang 14

VII Thiết lập các rang buộc toà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]

- 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

- 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

Trang 15

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ữ’}Nam’,’Nữ’}

d  SinhVien / d.XetLVTN  {0,1,NULL}

- 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 0Ngày bắt đầu phải hơn hơn ngày hiện tạiPhầ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ặcbằ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 100Khó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]

Trang 16

- 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ứ 7Tiế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  {‘Nam’,’Nữ’}S’,’C’}

- 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:

Trang 17

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]

- Mô tả: Điểm nằm trong đoạn từ 0 đến 10

- Nội dung: d  ChamLVTN / d.Diem  [0,10]

- 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]

- 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]

Trang 18

- Bối cảnh: SinhVien

- Mô tả: Khóa học của sinh viên phải lớn hơn năm sinh của sinh viên đó

- Nội dung:  sv  SinhVien / sv KhoaHoc > sv YEAR(NgaySinh)

- Tầm ảnh hưởng:

SinhVien + - +( KhoaHoc, NgaySinh)

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

Trang 19

- 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:

3 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 nhau

- Nội dung: mh1,mh2  MonHoc / mh1.ID <> mh2.ID

mh1,mh2  MonHoc / mh1.Ten <> mh2.Ten

- Mô tả: Cac giảng viên có mã để phân biệt

- Nội dung: gv1,gv2  GiangVien / gv1.ID <> gv2.ID

- Mô tả: 1 giảng viên có thể có nhiều ngày nhậm chức khác nhau

- Nội dung: gv1,gv2  TruongKhoa / gv1.ID <> gv2.ID or gv1. NgayNhanChuc

Trang 20

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

- 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

- 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

- 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:

Trang 21

Quan hệ Thêm Xóa Sửa

- Mô tả: 1 giảng viên dạy các môn học khác nhau

- Nội dung: k1,k2  KhaNangDayHoc / k1.MonHocID <> k2.MonHocID OR

- 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

- 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ộtniê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

Trang 22

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

- 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 <> dk2.SinhVienID or

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:

Trang 23

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

- Nội dung:  tb1,tb2  TieuBan / tb1.ID <> tb2.ID

 tb1,tb2 TieuBan / tb1.Ten <> tb2 Ten

- Mô tả: 1 giảng viên chỉ được phép xuất hiện trong 1 tiểu ban duy nhất 1 lần

- Nội dung:  tb1,tb2  CTTieuBan / tb1 GiangVienID <> tb2 GiangVienID OR tb1.TieuBanID <> tb2 TieuBanID

- Tầm ảnh hưởng:

Ràng buộc 32:

- Bối cảnh: ChamLVTN

- Mô tả: 1 luận văn tốt nghiệp chỉ được chấm bởi 1 tiểu ban

- Nội dung:  lv1, lv2  ChamLVTN / lv1 LuanVanID <> lv2 LuanVanID OR tb1.CTTieuBanID <> tb2 CTTieuBanID

- Tầm ảnh hưởng:

Trang 24

Quan hệ Thêm Xóa Sửa

Ràng buộc 33:

- Bối cảnh: LoaiDiem

- Mô tả: Mỗi điểm có mã và tên riêng biệt

- Nội dung:  lv1, lv2  LoaiDiem / lv1 ID <> lv2 ID

 lv1, lv2  LoaiDiem / lv1 Ten <> lv2 Ten

- 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

- Nội dung:  lv1, lv2  CTPhanTramDiemLopTC / lv1. LoaiDiemID <> lv2.LoaiDiemID OR lv1 LopTC_ID <> lv2.LopTC_ID

 lv1, lv2  CTPhanTramDiemLopTC / sum( lv1.PhanTram,lv2.PhanTram) = 100

- Tầm ảnh hưởng:

CTDiemSv + - +( LoaiDiemID, DangKyID)

Trang 25

4 Ràng buộc toàn vẹn liên thuộc tính - liên quan hệ:

- 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

- Bối cảnh: Lop, Khoa

- Mô tả: Mỗi lớp chỉ thuộc một khoa

- Nội dung: l  Lop,k  Khoa / l.KhoaID = k.ID

- Bối cảnh: ChuyenNganh, Khoa

- Mô tả: Mỗi chuyên ngành chỉ thuộc một khoa

- Nội dung: l  ChuyenNganh, k  Khoa / l.KhoaID = k.ID

Trang 26

- Mô tả: Mỗi sinh viên chỉ thuộc một chuyên ngành.

- Nội dung: l  SinhVien, k  ChuyenNganh / l.ChuyenNganhID = k ID

- Mô tả: Mỗi sinh viên chỉ thuộc 1 lớp học phần

- Nội dung: l  SinhVien, k  Lop / l.LopID = k ID

- Mô tả: Trưởng khoa là 1 giảng viên

- Nội dung: l  TruongKhoa, k  GiangVien / l.ID = k ID

- Mô tả: 1 môn học và 1 chuyên ngành phải xác định

- Nội dung: k  KeHoachGiang, c  ChuyenNganh, m  MonHoc /k.MonHocID = m.ID AND k.ChuyenNganhID = c.ID

- Tầm ảnh hưởng:

Ngày đăng: 26/08/2022, 10:42

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w