Giải bài tập Tin học lớp 11 Bài 3: Quan hệ giữa các bảng và khoá ngoài trong CSDL quan hệ
Khởi động trang 57 Tin học 11:
Lời giải:
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ổ xung 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ả.
3. Hệ quản trị CSDL đảm bảo ràng buộc khoá ngoài
Hoạt động trang 59 Tin học 11: 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?
Lời giải:
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.
4. Thực hành về bảng khoá ngoài
Thực hành trang 60 Tin học 11: 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.
Lời giải:
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 trang 61 Tin học 11: 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.
Lời giải:
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.
Câu hỏi tự kiểm tra
Câu hỏi trang 61 Tin học 11: 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.
Lời giải:
Các câu sau đú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.
Xem thêm bài giải SGK Tin học lớp 11 Cánh diều hay, chi tiết khác:
Bài 2: Bảng và khoá chính trong cơ sở dữ liệu quan hệ
Bài 3: Quan hệ giữa các bảng và khoá ngoài trong CSDL quan hệ
Bài 4: Các biểu mẫu cho xem và cập nhập CSDL
Bài 5: Truy vấn trong cơ sở dữ liệu quan hệ
Bài 6: Truy vấn trong cơ sở dữ liệu quan hệ (tiếp theo)