Câu hỏi: Để 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 ra tất cả dữ liệu cần quản lí vào trong 1 bảng như Anh Thư thực hiện có ưu điểm và nhược điểm gì?
Gợi ý: Xét 1 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
Hướng dẫn trả lời:
- Ưu điểm: Dữ liệu được tập trung và gọn gàng
- Nhược điểm: khi quản lý nhiều loại dữ liệu, sử dụng một bảng duy nhất có thể dẫn đến sự dư thừa, khó kiểm soát và dẫn đến sự mơ hồ và không nhất quán trong dữ liệu.
1. Một học sinh mượn sách nhiều lần: Giả sử học sinh có số thẻ thư viện "HS-002," tên là "Lê Bình," sinh ngày "02/3/2007," và học lớp "11A1" đã mượn sách 68 lần. Trong trường hợp này, bộ dữ liệu ("HS-002," "Lê Bình," "02/3/2007," "11A1") phải xuất hiện 68 lần trong 68 bản ghi của bảng. Gõ nhập 68 lần dữ liệu của Lê Bình có thể gây ra sự nhầm lẫn, trong khi việc gõ chỉ số của thẻ thư viện của Lê Bình vào bảng sẽ dễ dàng hơn.
2. Cần bổ sung dữ liệu về số sách mới mua cho thư viện: Bao gồm thông tin về các cuốn sách trong thư viện như mã sách, tên sách, số trang, tác giả.
Câu 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?
Hướng dẫn trả lời:
Bổ sung một bản ghi mới có giá trị khóa ngoại là "HS-007" vào bảng MƯỢN-TRẢ sẽ gây không đúng dữ liệu trong CSDL, vì không có thông tin về "HS-007" là số thẻ thư viện của ai. Để thực hiện cập nhật này một cách hợp lệ, cần phải bổ sung một bản ghi có giá trị khóa là "HS-007" vào bảng NGƯỜI ĐỌC trước.
Vì: khi hai bảng trong cơ sở dữ liệu liên quan đến nhau, mỗi giá trị khóa ngoại trong bảng tham chiếu sẽ có một sự giải thích chi tiết hơn trong bảng được tham chiếu. Ví dụ, "HS-001" có thể được giải thích bằng thông tin như "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ị khóa ngoại nào đó không tồn tại trong bảng được tham chiếu, như trong Hình 3, "HS-007" không tồn tại trong Số thẻ TV của bảng NGƯỜI ĐỌC.
Câu 1: 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 khóa ngoài.
Hướng dẫn trả lời:
- Bước 1. Mở CSDL Thư viện đã tạo trước đó, bao gồm bảng SÁCH (đã tạo ở bài thực hành trước). Tạo cấu trúc cho bảng NGƯỜI ĐỌC và bảng MƯỢN-TRẢ như hình vẽ mô tả ở Bước 2. Chọn Số thẻ TV làm khóa chính cho bảng NGƯỜI ĐỌC và chọn một khóa chính bao gồm ba trường cho bảng MƯỢN-TRẢ: Số thẻ TV, Mã sách, và Ngày mượn.
- Bước 2. Khám phá cách thiết lập các liên kết giữa các bảng.
- Bước 3. Khám phá lỗi mà phần mềm quản trị CSDL thông báo khi cố gắng cập nhật và vi phạm ràng buộc khóa ngoại.
Câu 1: 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.
Hướng dẫn trả lời:
Trong việc tạo lập CSDL, sau khi hoàn thành việc định nghĩa cấu trúc cho hai bảng mà chúng ta dự định sẽ có liên kết thông qua khóa ngoại, ta cần nhập dữ liệu vào hai bảng này trước. Bởi vì để thiết lập một mối quan hệ thông qua khóa ngoại giữa hai bảng, chúng ta cần có dữ liệu cho cả hai bảng để chúng có thể tương tác với nhau.
Câu 1: Trong các câu sau, những câu nào đúng?
a) Một trường là khóa 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 thỏa mãn ràng buộc khóa 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 thỏa mãn ràng buộc khóa ngoài.
Hướng dẫn trả lời:
Đáp án đúng: a, b.