Trong kì thi tốt nghiệp trung học phổ thông, học sinh được đánh số báo danh, có thể thi một số môn

Trong kì thi tốt nghiệp trung học phổ thông, học sinh được đánh số báo danh, có thể thi một số môn, được chia vào các phòng thi được đánh số, sau khi chấm sẽ có điểm thi với các môn đăng kì dự thi. Em hãy đề xuất một số bảng dữ liệu và các trường làm khoá chính và khoá ngoài cho các bảng đó.

Trả lời

Dựa trên yêu cầu của bài toán, ta có thể đề xuất các bảng dữ liệu và các trường làm khoá chính và khoá ngoài như sau:

- Bảng HocSinh:

Trường: Mã số báo danh, Họ tên, Ngày sinh, Địa chỉ

Khoá chính: Mã số báo danh

Khoá ngoài: Không có

- Bảng MonHoc:

Trường: Tên môn học, Mã môn học

Khoá chính: Mã môn học

Khoá ngoài: Không có

- Bảng PhongThi:

Trường: Mã phòng thi, Tên phòng thi

Khoá chính: Mã phòng thi

Khoá ngoài: Không có

- Bảng ThiSinh_MonHoc:

Trường: Mã số báo danh, Mã môn học

Khoá chính: Mã số báo danh, Mã môn học

Khoá ngoài: Mã số báo danh tham chiếu đến bảng HocSinh, Mã môn học tham chiếu đến bảng MonHoc

- Bảng KetQuaThi:

Trường: Mã số báo danh, Mã môn học, Mã phòng thi, Điểm thi

Khoá chính: Mã số báo danh, Mã môn học, Mã phòng thi

Khoá ngoài:

Mã số báo danh tham chiếu đến bảng HocSinh

Mã môn học tham chiếu đến bảng MonHoc

Mã phòng thi tham chiếu đến bảng PhongThi

          Lưu ý rằng, trong bảng ThiSinh_MonHoc, ta cần sử dụng một tập hợp các trường (Mã số báo danh, Mã môn học) để tạo thành khoá chính, bởi vì một thí sinh có thể đăng kí thi nhiều môn học khác nhau. Còn trong bảng KetQuaThi, ta cần sử dụng một tập hợp các trường (Mã số báo danh, Mã môn học, Mã phòng thi) để tạo thành khoá chính, bởi vì một thí sinh có thể thi cùng một môn học ở nhiều phòng thi khác nhau.