Bài 3. Quan hệ giữa các bảng và khóa ngoài trong cơ sở dữ liệu quan hệ trang 57, 58, 59 SGK Tin học 11 Tin học ứng dụng Cánh diều
Để quản lý sách, người đọc và việc mượn/trả sách của một thư viện (TV) trường học, bạn Anh Thư dự định chỉ dùng một bảng như mẫu ở Hình 1. Theo em, trong trường hợp cụ thể này, việc đưa tất cả dữ liệu cần quản lý vào trong một bảng như Anh Thư thực hiện có ưu điểm và nhược điểm gì?
Khởi động
Để quản lý sách, người đọc và việc mượn/trả sách của một thư viện (TV) trường học, bạn Anh Thư dự định chỉ dùng một bảng như mẫu ở Hình 1. Theo em, trong trường hợp cụ thể này, việc đưa tất cả dữ liệu cần quản lý vào trong một bảng như Anh Thư thực hiện có ưu điểm và nhược điểm gì?
Gợi ý: Xét một số trường hợp sau:
1) Một học sinh mượn sách nhiều lần, mỗi lần mượn nhiều quyển sách.
2) Cần bổ sung dữ liệu về số sách mới mua của thư viện.
Phương pháp giải:
Đọc kỹ yêu cầu đề bài.
Lời giải chi tiết:
Theo em, việc đưa tất cả các dữ liệu cần quản lí vào trong một bảng như Anh Thư thực hiện có ưu điểm: Dữ liệu ngắn gọn, nhược điểm: Khi quản lí thì cần nhiều hơn một bảng dữ liệu, nếu dùng một bảng có thể dẫn đến dư thừa dữ liệu, dẫn đến sai nhầm, dữ liệu không nhất quán.
1. Một học sinh mượn sách nhiều lần: Giả sử học sinh có số thẻ TV “HS-002” tên “Lê Bình” sinh ngày “02/3/2007” học lớp “11A1” đã có 68 lần mượn sách. Như vây bộ giá trị (“HS-002”, “Lê Bình”, “02/3/2007”, “11A1”) phải xuất hiện 68 lần trên 68 bản ghi của bảng. Việc gõ nhập 68 lần bộ dữ liệu về Lê Bình sẽ dễ xuấ hiện sai nhầm hơn so với 68 lần chỉ số gõ Số thẻ TV của Lê Bình vào bảng.
2. Cần bổ sung dữ liệu về số sách mới mua của thư viện:
Gồm các thông tin của các cuốn sách trong thư viện như: mã sách, tên sách, số trang, tác giả.
? mục 3 HĐ1
Hãy xét tình huống sau đây: CSDL thư viện có bảng MƯỢN-TRẢ liên kết với bảng NGƯỜI ĐỌC qua khoá ngoài Số thẻ TV. Hiện tại, bảng NGƯỜI ĐỌC có bốn bảng ghi (ghi nhận dữ liệu về bốn học sinh đã làm thẻ thư viện). Người thủ thư đang muốn thêm một bản ghi cho bảng MƯỢN-TRẢ (Hình 3). Theo em, cập nhập đó có hợp lý không? Giải thích vì sao?
Phương pháp giải:
Đọc kỹ yêu cầu đề bài và thực hành.
Lời giải chi tiết:
Khi hai bảng trong một CSDL có liên quan đến nhau, mỗi giá trị khoá ngoài ở bảng tham chiếu sẽ được giải thích chi tiết hơn ở bảng được tham chiếu. Ví dụ “HS-001” được giải thích bằng thông tin “Họ và tên: Trần Văn An, Ngày sinh: 14/9/2009, Lớp: 12A2”. Nếu có một giá trị khoá ngoài nào không xuất hiện trong giá trị khoá ở bảng được tham chiếu. Trong Hình 3 , “HS-007” không xuất hiện trong Số thẻ TV của bảng NGƯỜI ĐỌC. Do vậy, việc bổ xung cho bảng MƯỢN-TRẢ một bảng ghi mới có giá trị khoá ngoài là: “HS-007” sẽ làm cho dữ liệu trong CSDL không còn đúng nữa, không giải thích được “HS-007” là số thẻ thư viện của ai. Muốn cập nhập đó hợp lệ, phải bổ xung bản ghi có giá trị khoá là “HS-007” vào bảng NGƯỜI ĐỌC trước.
? mục 4 HĐ2
Khám phá cách khai báo liên kết giữa các bảng trong môi trường Access và nhận biết các cập nhật vi phạm ràng buộc khoá ngoài.
Phương pháp giải:
Đọc kỹ yêu cầu đề bài và thực hành theo các bước.
Lời giải chi tiết:
Bước 1. Mở CSDL Thư viện đã có bảng SÁCH (kết quả mục thực hành ở Bài 2). Tạo cấu trúc như ở Hình 2 cho bảng NGƯỜI ĐỌC và bảng MƯỢN-TRẢ. Chọn Số thẻ TV làm khoá chính cho bảng NGƯỜI ĐỌC, chọn khoá chính của bảng MƯỢN-TRẢ gồm ba thuộc tỉnh: Số thẻ TV, Mã sách và Ngày mượn.
Bước 2. Khám phá cách khai báo liên kết giữa các bảng.
- Trong dải Database Tools , chọn Relationships .
- Dùng chuột kéo thả các bảng vào cửa sổ khai báo liên kết (vùng trống ở giữa).
- Dùng chuột kéo thả khoá ngoài của bảng tham chiếu thả vào khoá chính của bảng được tham chiếu, làm xuất hiện hộp thoại Edit Relationships.
- Đánh dấu hộp kiểm Enforce Referential Integrity và chọn Create .
Bước 3. Khám phá báo lỗi của phần mềm quản trị CSDL khi cập nhật vi phạm ràng buộc khoá ngoài.
- Thêm một vài bản ghi trong đó có bản ghi vi phạm lỗi ràng buộc khoá ngoài (tham khảo Hình 3), quan sát báo lỗi của phần mềm.
- Chọn xoá một bản ghi trong bảng NGƯỜI ĐỌC nếu giá trị Số thẻ TV trong bản ghỉ này xuất hiện trong bảng MƯỢN-TRẢ, quan sát báo lỗi của phần mềm.
Vận dụng
Trong việc tạo lập CSDL, sau khi tạo xong cấu trúc cho hai bảng mà ta dự kiến có liên kết với nhau bằng khoá ngoài, ta nên khai báo liên kết trước hay nên nhập dữ liệu cho hai bảng trước? Hãy giải thích vì sao.
Phương pháp giải:
Đọc kỹ yêu cầu đề bài và dựa vào kiến thức đã học.
Lời giải chi tiết:
Trong việc tạo lập CSDL, sau khi tạo xong cấu trúc cho hai bảng mà ta dự kiến có liên kết với nhau bằng khoá ngoài, ta nên nhập dữ liệu cho hai bảng trước. Vì phải có dữ liệu cho hai bảng mới liên kết với nhau bằng khoá ngoài được.
Luyện tập
Trong các câu sau, những câu nào đúng?
a) Một trường là khoá ngoài của một bảng nếu nó là khoả của bảng đó và đồng thời xuất hiện trong một bảng khác.
b) Khoá ngoài của một bảng là tập hợp một số trường của bảng đó và đồng thời là khoá của một bảng khác.
c) Khi hai bảng có liên kết với nhau qua khoá chính – khoá ngoài, chỉ khi bổ sung bản ghi vào các bảng mới cần thoả mãn ràng buộc khoá ngoài.
d) Các hệ quản trị CSDL quan hệ tự động kiểm tra và chỉ chấp nhận các cập nhật thoả mãn ràng buộc khoá ngoài.
Phương pháp giải:
Đọc kỹ yêu cầu đề bài và dựa vào kiến thức đã học.
Lời giải chi tiết:
Các câu đúng:
a) Một trường là khoá ngoài của một bảng nếu nó là khoả của bảng đó và đồng thời xuất hiện trong một bảng khác.
b) Khoá ngoài của một bảng là tập hợp một số trường của bảng đó và đồng thời là khoá của một bảng khác.