1.1. Mục đích, yêu cầu
- Biết chọn khóa cho các bảng dữ liệu trong một bài toán quen thuộc;
- Hiểu được khái niệm liên kết giữa các bảng;
- Biết cách xác lập liên kết giữa các bảng thông qua khóa để có thể tìm được những thông tin liên quan đến một cá thể được quản lí.
1.2. Nội dung
Sở giáo dục của một tỉnh tổ chức một kì thi để kiểm tra chất lượng môn Toán cho các lớp 12 của tỉnh. Trong cơ sở dữ liệu quản lí kì kiểm tra này có ba bảng với cấu trúc được cho như ở cơ sở dữ liệu mẫu dưới đây:
Bảng THÍ SINH
STT | SBD | Họ tên thí sinh | Ngày sinh | Trường |
1 2 3 4 … |
HA10 HA11 HA12 HA14 … |
Đỗ Hà Anh Lê Như Bình Trần Thu Cúc Nguyễn Anh Quân … |
02-01-1990 21-11- 1990 14-05-1899 29-11-1990 … |
Lê Hồng Phong Phan Chu Trinh Phan Chu Trinh Lê Hồng Phong …. |
Bảng 1. Bảng THÍ SINH
Bảng ĐÁNH PHÁCH
STT | SBD | phách |
1 2 3 4 … |
HA10 HA11 HA12 HA14 … |
S28 S27 S26 S25 … |
Bảng 2. Bảng ĐÁNH PHÁCH
Bảng ĐIỂM THI
STT | phách | điểm |
1 2 3 4 … |
S25 S26 S27 S28 … |
9 6 8 10 |
Bảng 3. Bảng ĐIỂM THI
Bảng THÍ SINH được niêm yết cho tất cả các thí sinh biết. Bảng ĐÁNH PHÁCH là bí mật chỉ có người đánh phách là Chủ tịch Hội đồng thi giữ. Bảng ĐIỂM THI có các giáo viên trong Hội đồng chấm thi biết. Có thể liên kết ba bảng trên để có được bảng kết quả kì thi dưới đây.
Bảng KẾT QUẢ THI
STT | SBD | Họ tên thí sinh | Ngày sinh | Trường | Điểm |
1 2 3 4 … |
HA10 HA11 HA12 HA14 … |
Đỗ Hà Anh Lê Như Bình Trần Thu Cúc Nguyễn Anh Quân … |
02-01-1990 21-11- 1990 14-05-1899 29-11-1990 … |
Lê Hồng Phong Phan Chu Trinh Phan Chu Trinh Lê Hồng Phong …. |
10 8 6 9 |
Bảng 4. Bảng KẾT QUẢ THI
Bài 1
Em hãy chọn khóa cho mỗi bảng trong cơ sở dữ liệu trên và giải thích lí do lựa chọn đó.
Gợi ý làm bài:
- Bảng THÍ SINH chọn trường SBD làm khóa chính. Vì SBD đạt 2 yếu tố:
- Trường SBD là trường khóa vì SBD đặc trưng cho từng bản ghi: dựa vào SBD để phân biệt giữa thí sinh này và thí sinh kia (2 thí sinh bất kì không thể có số báo danh giống nhau).
- Tối thiểu thuộc tính.
- Bảng ĐÁNH PHÁCH chọn trường SBD hoặc trường Phach làm khóa chính. Vì trường SBD và trường PHÁCH đều thõa mãn điều kiện:
- Trường SBD và trường Phach là khóa vì SBD đặc trưng cho từng bản ghi: Dựa vào SBD để phân biệt giữa thí sinh này và thí sinh kia (2 thí sinh bất kì không thể có số báo danh giống nhau); trường Phach cũng đặc trưng cho từng bản ghi (các bản ghi khác nhau có số phách khác nhau).
- Cả trường SBD và trường Phach đều tối thiểu thuộc tính.
- Bảng ĐIỂM THI chọn trường Phach làm khóa chính.
- Trường Phach là trường khóa; vì Phach đặc trưng cho từng bản ghi: hai bảng ghi khác nhau có số phách khác nhau (hai bài thi bất kì không thể có trùng số phách).
- Tối thiểu thuộc tính.
Bài 2
Em hãy chỉ ra các mối liên kết cần thiết giữa ba bảng để có được kết quả thi thông báo cho thí sinh.
Gợi ý làm bài:
- Bảng THI_SINH liên kết với bảng DANH_PHACH qua trường SBD.
- Bảng DANH_PHACH liên kết với bảng DIEM qua trường Phach.
- Bảng THI_SINH liên kết bắc cầu với bảng DIEM thông qua bảng DANH_PHACH.
- Trường STT, SBD, Họ tên thí sinh, Ngày sinh thuộc bảng THI_SINH.
- Trường Điểm trong bảng DIEM.
- Liên kết giữa bảng THI_SINH và DANH_PHACH là liên kết 1-1. Vì 1 thí sinh chỉ có 1 phách bài thi, nên chỉ duy nhất 1 bản ghi của bản THI_SINH liên kết với 1 bản ghi của bản DANH_PHACH.
- Liên kết giữa bảng DANH_PHACH và DIEM là liên kết 1-1. Vì 1 bài thi chỉ có 1 con điểm, nên chỉ duy nhất 1 bản ghi của bản DANH_PHACH liên kết với 1 bản ghi của bản DIEM.
Bài 3
Hãy dùng hệ quản trị CSDL Access để làm các việc sau:
- Tạo lập cơ sở dữ liệu nói trên: gồm ba bảng (mỗi bảng với khóa đã chọn), thiết đặt các mối liên kết cần thiết, đưa dữ liệu giả định (khoảng trên 10 thí sinh);
- Đưa ra kết quả thi để thông báo cho thí sinh;
- Đưa ra kết quả thi theo trường;
- Đưa ra kết quả thi của toàn tỉnh theo thứ tự giảm dần của điểm thi.
Gợi ý làm bài:
- Có 2 cách để tạo mối liên kết:
- Cách 1. Vào menu, chọn lệnh Tools.
- Cách 2. Click vào biểu tượng Relationship..
- Đưa ra kết quả thi và thông báo cho thí sinh, ta chọn đối tượng Queries để tạo \(\rightarrow\) Chọn Create query in Design view.