Chương 1 / Tổng quan
Video

Câu 1: Mô hình ERD mở rộng

Đề kiểm tra giữa kỳ - Mô hình CSDL
0:00
Trong câu 1, em phân tích bài toán Hệ thống thông tin quản lý đăng ký học phần theo bốn bước. Bước đầu tiên là xác định và chuẩn hóa tên thuộc tính. Từ mô tả tiếng Việt, em chuyển các cụm từ như "Họ và tên", "Ngày sinh" thành các tên thuộc tính không dấu, viết hoa chữ cái đầu mỗi từ: HoTen, NgaySinh. Việc chuẩn hóa giúp tránh nhầm lẫn và đồng nhất với quy ước đặt tên trong cơ sở dữ liệu. Bước thứ hai là xác định kiểu thực thể. Dựa vào các danh từ chính và các thực thể có thể định danh độc lập, em xác định sáu thực thể chính: SINHVIEN, GIANGVIEN, HOCPHAN, LOPHOCPHAN, DANGKY và CHUONGTRINHDAOTAO. Mỗi thực thể đều có khóa chính tự nhiên hoặc mã định danh do hệ thống cấp: MaSV, MaGV, MaHP, MaLHP, MaDK, MaCTDT. Điểm cần lưu ý là DANGKY được xem là thực thể chứ không phải liên kết, vì đề bài nêu rõ "Mỗi đăng ký được định danh bởi mã đăng ký" và có các thuộc tính riêng như Ngày đăng ký, Thời điểm đăng ký, Trạng thái đăng ký. Bước thứ ba là xác định kiểu liên kết. Các quan hệ 1-N xuất hiện giữa học phần và lớp học phần, giữa giảng viên và lớp học phần, giữa sinh viên và đăng ký, giữa lớp học phần và đăng ký. Quan hệ N-N duy nhất là giữa chương trình đào tạo và học phần, vì một chương trình quản lý nhiều học phần và một học phần có thể dùng trong nhiều chương trình. Quan hệ này mang hai thuộc tính phụ thuộc HocKyDuKien và LoaiHocPhan, nên trong mô hình mở rộng được biểu diễn là quan hệ N-N có thuộc tính. Bước thứ tư là vẽ ERD mở rộng. Trong sơ đồ, thực thể là hình chữ nhật, liên kết là hình thoi, các đường nối ghi cơ số 1 và N. Quan hệ N-N CTDT_HP được vẽ bằng hình thoi có hai thuộc tính đính kèm. ERD mở rộng giữ nguyên các thuộc tính phức tạp và quan hệ N-N, phản ánh trung thực bài toán, làm cơ sở cho các bước chuyển đổi tiếp theo. Nhờ phân tích cẩn thận, mô hình không bỏ sót thực thể, không nhầm lẫn khóa và không gộp sai quan hệ, đảm bảo tính đúng đắn của thiết kế.

Bước 1: Xác định và chuẩn hóa tên gọi các thuộc tính

Đọc bài toán và chuẩn hóa tên thuộc tính về dạng thống nhất, tránh trùng lặp ngữ nghĩa. Các thuộc tính được đặt tên theo quy tắc: viết hoa chữ cái đầu mỗi từ, không dấu, ngắn gọn nhưng rõ nghĩa.

Thực thểThuộc tính chuẩn hóa
SINHVIENMaSV, HoTen, NgaySinh, GioiTinh, DiaChi, SoDienThoai, Email
GIANGVIENMaGV, HoTen, HocVi, ChuyenMon, SoDienThoai
HOCPHANMaHP, TenHP, SoTinChi, SoTietLT, SoTietTH
LOPHOCPHANMaLHP, HocKy, NamHoc, PhongHoc, SoLuongSVToiDa, TrangThaiLop
DANGKYMaDK, NgayDangKy, ThoiDiemDangKy, TrangThaiDangKy
CHUONGTRINHDAOTAOMaCTDT, TenCTDT, KhoaDaoTao, BacDaoTao
CTDT_HOCPHAN (quan hệ N-N)MaCTDT, MaHP, HocKyDuKien, LoaiHocPhan

Bước 2: Xác định kiểu thực thể, danh sách thuộc tính và khóa

Kiểu thực thểThuộc tínhKhóa chính
SINHVIENMaSV, HoTen, NgaySinh, GioiTinh, DiaChi, SoDienThoai, EmailMaSV
GIANGVIENMaGV, HoTen, HocVi, ChuyenMon, SoDienThoaiMaGV
HOCPHANMaHP, TenHP, SoTinChi, SoTietLT, SoTietTHMaHP
LOPHOCPHANMaLHP, HocKy, NamHoc, PhongHoc, SoLuongSVToiDa, TrangThaiLopMaLHP
DANGKYMaDK, NgayDangKy, ThoiDiemDangKy, TrangThaiDangKyMaDK
CHUONGTRINHDAOTAOMaCTDT, TenCTDT, KhoaDaoTao, BacDaoTaoMaCTDT

CTDT_HOCPHAN là thực thể liên kết (associative entity) sinh ra từ quan hệ N-N giữa CHUONGTRINHDAOTAO và HOCPHAN, mang hai thuộc tính phụ thuộc: HocKyDuKien, LoaiHocPhan.

Bước 3: Xác định kiểu liên kết và thuộc tính của liên kết

Liên kếtKiểuThực thể tham giaThuộc tính liên kết
SINHVIEN_DANGKY1-NSINHVIEN (1), DANGKY (N)không có
LHP_DANGKY1-NLOPHOCPHAN (1), DANGKY (N)không có
HP_LHP1-NHOCPHAN (1), LOPHOCPHAN (N)không có
GV_LHP1-NGIANGVIEN (1), LOPHOCPHAN (N)không có
CTDT_HPN-NCHUONGTRINHDAOTAO (N), HOCPHAN (N)HocKyDuKien, LoaiHocPhan

Bước 4: Mô hình ERD mở rộng

ERD mở rộng bên dưới thể hiện các thực thể, liên kết và quan hệ N-N có thuộc tính. Các thực thể được vẽ hình chữ nhật, liên kết vẽ hình thoi, đường nối thể hiện cơ số (1, N).

SINHVIEN DANGKY LOPHOCPHAN GIANGVIEN HOCPHAN CHUONGTRINH CTDT_HOCPHAN (quan he N-N) co DK thuoc LHP mo tu HP phan cong thuoc CT MaHP MaCTDT 1 N 1 N N 1 1 N

Câu 2: Mô hình ERD kinh điển

Đề kiểm tra giữa kỳ - Mô hình CSDL
0:00
Câu 2 yêu cầu chuyển mô hình ERD mở rộng thành ERD kinh điển theo các quy tắc chuẩn. Quy tắc quan trọng nhất là xử lý quan hệ N-N có thuộc tính: quan hệ CTDT_HP giữa CHUONGTRINHDAOTAO và HOCPHAN được thay thế bằng một thực thể liên kết mới tên CTDT_HOCPHAN, kèm hai quan hệ 1-N từ mỗi thực thể gốc đến thực thể liên kết. Thuộc tính HocKyDuKien và LoaiHocPhan được chuyển thành thuộc tính của thực thể liên kết này, vì chúng phụ thuộc vào cặp chương trình - học phần. Khóa của CTDT_HOCPHAN là khóa tổng hợp (MaCTDT, MaHP). Các quan hệ 1-N còn lại như HP_LHP, GV_LHP, SV_DK, LHP_DK giữ nguyên vì đã phù hợp với ERD kinh điển. ERD kinh điển không còn quan hệ N-N trực tiếp, mọi quan hệ đều là nhị phân 1-N, giúp việc ánh xạ sang mô hình quan hệ ở câu 3 đơn giản hơn. Trong bảng quan hệ kinh điển, mỗi dòng mô tả một liên kết cùng cơ số và ý nghĩa nghiệp vụ, ví dụ một giảng viên có thể giảng dạy nhiều lớp học phần nhưng mỗi lớp học phần chỉ thuộc đúng một giảng viên. Việc chuyển đổi này không làm mất thông tin: các thuộc tính của quan hệ N-N được bảo toàn trong thực thể liên kết, các ràng buộc cơ số được giữ nguyên. Kết quả là tập thực thể và quan hệ rõ ràng, không còn thuộc tính phức tạp hay đa trị, đáp ứng đúng chuẩn của mô hình ERD kinh điển (Chen). Đây là bước trung gian quan trọng, giúp chuẩn hóa mô hình trước khi ánh xạ sang cơ sở dữ liệu quan hệ. Trong quá trình chuyển đổi, em cũng kiểm tra lại các thuộc tính để đảm bảo không có thuộc tính đa trị hay thuộc tính phức tạp bị bỏ sót. Ví dụ HoTen có thể xem là thuộc tính phức tạp gồm Ho và Ten, nhưng trong bài toán không yêu cầu tách riêng, nên giữ nguyên HoTen để phù hợp phạm vi. Các khóa ngoại chưa xuất hiện ở ERD kinh điển vì khóa ngoại là khái niệm của mô hình quan hệ, nên chỉ ghi nhận ở bước ánh xạ. ERD kinh điển vẫn thể hiện đầy đủ các ràng buộc cơ số và các thực thể liên kết, giúp người thiết kế và người dùng cùng hiểu cấu trúc dữ liệu. Khi vẽ sơ đồ, các thực thể liên kết được đánh dấu khác biệt (viền nét đứt hoặc tên ghép) để phân biệt với thực thể gốc. Điều này tránh nhầm lẫn giữa thực thể DANGKY (đăng ký học phần thực tế) và thực thể liên kết CTDT_HOCPHAN (chi tiết chương trình). Mỗi liên kết 1-N đều có phía 'một' bắt buộc và phía 'n' có thể từ không hoặc nhiều, tùy nghiệp vụ; trong hệ thống, một lớp học phần phải thuộc đúng một học phần và đúng một giảng viên, nên cơ số phía học phần và giảng viên là 1 bắt buộc. Kết quả ERD kinh điển là đầu vào trực tiếp cho câu 3, với tập thực thể và liên kết đã được chuẩn hóa, không còn quan hệ N-N trực tiếp, đảm bảo ánh xạ sang mô hình quan hệ chỉ cần áp dụng các quy tắc cơ bản.

Chuyển ERD mở rộng sang ERD kinh điển

Theo quy tắc chuyển đổi, mọi quan hệ N-N có thuộc tính được thay thế bằng một thực thể liên kết (associative entity) và hai quan hệ 1-N. Các thực thể yếu, thuộc tính phức tạp (nếu có) cũng được chuẩn hóa về thực thể thường. ERD kinh điển chỉ còn các thực thể và liên kết nhị phân 1-N.

Kiểu thực thể (kinh điển)Thuộc tínhKhóa
SINHVIENMaSV, HoTen, NgaySinh, GioiTinh, DiaChi, SoDienThoai, EmailMaSV
GIANGVIENMaGV, HoTen, HocVi, ChuyenMon, SoDienThoaiMaGV
HOCPHANMaHP, TenHP, SoTinChi, SoTietLT, SoTietTHMaHP
LOPHOCPHANMaLHP, HocKy, NamHoc, PhongHoc, SoLuongSVToiDa, TrangThaiLopMaLHP
DANGKYMaDK, NgayDangKy, ThoiDiemDangKy, TrangThaiDangKyMaDK
CHUONGTRINHDAOTAOMaCTDT, TenCTDT, KhoaDaoTao, BacDaoTaoMaCTDT
CTDT_HOCPHANMaCTDT, MaHP, HocKyDuKien, LoaiHocPhan(MaCTDT, MaHP)

Bảng quan hệ (kinh điển)

Quan hệCơ sốMô tả
SINHVIEN - DANGKY1 - NMột sinh viên có nhiều đăng ký
LOPHOCPHAN - DANGKY1 - NMột lớp học phần có nhiều đăng ký
HOCPHAN - LOPHOCPHAN1 - NMột học phần có nhiều lớp học phần
GIANGVIEN - LOPHOCPHAN1 - NMột giảng viên giảng dạy nhiều lớp học phần
CHUONGTRINHDAOTAO - CTDT_HOCPHAN1 - NMột chương trình có nhiều học phần chi tiết
HOCPHAN - CTDT_HOCPHAN1 - NMột học phần xuất hiện trong nhiều chương trình

Câu 3: Mô hình quan hệ

Đề kiểm tra giữa kỳ - Mô hình CSDL
0:00
Câu 3 chuyển mô hình ERD kinh điển sang mô hình quan hệ. Nguyên tắc ánh xạ: mỗi thực thể trở thành một quan hệ (bảng), khóa chính của thực thể trở thành khóa chính của bảng. Với quan hệ 1-N, khóa chính của phía "một" được thêm vào bảng phía "n" dưới dạng khóa ngoại. Do đó LOPHOCPHAN có thêm MaHP và MaGV; DANGKY có thêm MaSV và MaLHP. Quan hệ N-N đã được chuyển thành thực thể liên kết CTDT_HOCPHAN ở câu 2, nên ở đây nó trở thành bảng riêng với khóa chính tổng hợp (MaCTDT, MaHP) và hai khóa ngoại tham chiếu đến CHUONGTRINHDAOTAO và HOCPHAN. Thuộc tính HocKyDuKien và LoaiHocPhan nằm trong bảng này vì phụ thuộc vào cặp khóa. Bảng quan hệ kèm khóa cho thấy rõ ràng khóa chính, khóa ngoại và các ràng buộc tham chiếu. Ràng buộc toàn vẹn tham chiếu yêu cầu mọi giá trị khóa ngoại phải tồn tại trong bảng được tham chiếu; khi xóa một chương trình đào tạo hoặc học phần, cần xử lý các bản ghi CTDT_HOCPHAN tương ứng theo chính sách CASCADE hoặc RESTRICT. Tương tự, không thể xóa sinh viên nếu còn đăng ký, hoặc phải xóa đăng ký trước. Mô hình quan hệ cuối cùng gồm bảy bảng: SINHVIEN, GIANGVIEN, HOCPHAN, LOPHOCPHAN, DANGKY, CHUONGTRINHDAOTAO, CTDT_HOCPHAN. Đây là cơ sở để tạo cơ sở dữ liệu vật lý và viết các câu lệnh SQL CREATE TABLE với đầy đủ ràng buộc PRIMARY KEY và FOREIGN KEY. Trong quá trình ánh xạ, em chú ý đến việc giữ nguyên tên thuộc tính và thứ tự cột để dễ so sánh với ERD. Các bảng không có khóa ngoại được đặt trước về mặt logic, nhưng thứ tự tạo bảng trong SQL phải đảm bảo bảng được tham chiếu tạo trước. Ví dụ phải tạo SINHVIEN, GIANGVIEN, HOCPHAN, CHUONGTRINHDAOTAO trước, sau đó LOPHOCPHAN, DANGKY và cuối cùng CTDT_HOCPHAN. Ràng buộc NOT NULL cũng được xác định: các khóa chính và khóa ngoại thường NOT NULL; các thuộc tính mô tả như DiaChi, Email có thể cho phép NULL tùy nghiệp vụ. TrangThaiLop, TrangThaiDangKy có thể dùng miền giá trị (domain) để giới hạn, ví dụ 'Mở', 'Đóng', 'Hủy'. SoLuongSVToiDa là số nguyên dương. Việc xác định kiểu dữ liệu chi tiết sẽ thực hiện ở bước thiết kế vật lý, nhưng mô hình quan hệ đã cung cấp đầy đủ cấu trúc logic. Mô hình này cũng hỗ trợ các truy vấn quan trọng như danh sách sinh viên theo lớp, số lượng đăng ký theo học phần, chương trình đào tạo của một học phần. Nhờ có khóa ngoại rõ ràng, các phép kết (JOIN) giữa các bảng được thực hiện chính xác và hiệu quả.

Chuyển ERD kinh điển sang mô hình quan hệ

Mỗi kiểu thực thể trở thành một quan hệ (bảng). Khóa chính của thực thể trở thành khóa chính của quan hệ. Các quan hệ 1-N được biểu diễn bằng khóa ngoại ở phía N. Quan hệ N-N đã được chuyển thành thực thể liên kết, do đó trở thành bảng riêng với khóa chính tổng hợp và hai khóa ngoại.

Bảng quan hệ và khóa

Quan hệThuộc tínhKhóa chínhKhóa ngoại
SINHVIENMaSV, HoTen, NgaySinh, GioiTinh, DiaChi, SoDienThoai, EmailMaSV-
GIANGVIENMaGV, HoTen, HocVi, ChuyenMon, SoDienThoaiMaGV-
HOCPHANMaHP, TenHP, SoTinChi, SoTietLT, SoTietTHMaHP-
LOPHOCPHANMaLHP, HocKy, NamHoc, PhongHoc, SoLuongSVToiDa, TrangThaiLop, MaHP, MaGVMaLHPMaHP -> HOCPHAN(MaHP); MaGV -> GIANGVIEN(MaGV)
DANGKYMaDK, NgayDangKy, ThoiDiemDangKy, TrangThaiDangKy, MaSV, MaLHPMaDKMaSV -> SINHVIEN(MaSV); MaLHP -> LOPHOCPHAN(MaLHP)
CHUONGTRINHDAOTAOMaCTDT, TenCTDT, KhoaDaoTao, BacDaoTaoMaCTDT-
CTDT_HOCPHANMaCTDT, MaHP, HocKyDuKien, LoaiHocPhan(MaCTDT, MaHP)MaCTDT -> CHUONGTRINHDAOTAO(MaCTDT); MaHP -> HOCPHAN(MaHP)

Ràng buộc toàn vẹn: khóa ngoại phải tham chiếu đến khóa chính đã tồn tại; xóa/cập nhật theo chính sách RESTRICT hoặc CASCADE tùy nghiệp vụ. Thuộc tính HocKyDuKien, LoaiHocPhan phụ thuộc vào cặp (MaCTDT, MaHP), do đó nằm trong bảng CTDT_HOCPHAN.

Sẵn sàng phát
Bài 1 / 3