Bài 3. Quan hệ giữa các bảng và khoá ngoài trong cơ sở dữ liệu quan hệ SGK

Quan hệ giữa các bảng và khoá ngoài trong cơ sở dữ liệu quan hệ SGK Tin học Lớp 11 định hướng tin học ứng dụng trang 57 – Cánh Diều, mời các em tham khảo cùng Bumbii.

Chủ đề F. Giải quyết vấn đề với sự trợ giúp của máy tính. Giới thiệu các hệ cơ sở dữ liệu. Bài 3. Quan hệ giữa các bảng và khoá ngoài trong cơ sở dữ liệu quan hệ.

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ượng 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.

Đáp án:

– Trường hợp thứ nhất:

Một HS mượn sách nhiều lần (ví dụ 20 lần), mỗi lần mượn nhiều quyển sách (ví dụ mỗi lần 5 quyển), như vậy cần đưa vào bảng 100 lần thông tin lặp đi lặp lại Số thẻ TV, Họ và tên, Ngày sinh, Lớp.

Việc gõ nhập lặp lại bộ giá trị này là một nhược điểm mất thời gian, thêm nữa có thể dễ gõ sai một dữ liệu liên quan làm dữ liệu không nhất quán ở 100 bản ghi này.

– Trường hợp thứ hai:

Bổ sung dữ liệu về số sách mới mua của thư viện vào bảng. Những sách này chưa có người mượn (có thể chưa có Mã sách), nếu bổ sung vào bảng thì những trường Số thẻ TV, Họ và tên, Ngày sinh, Lớp, Ngày mượn, Ngày trả cần để trống.

Tuy nhiên, nếu bảng có khoá là (Số thẻ TV, Mã sách) thì không được để trống trường Số thẻ TV. Đây là khó khăn khi cập nhật dữ liệu cho bảng.

1. Tính dư thừa dữ liệu

– Dư thừa dữ liệu có thể dẫn đến dư liệu không nhất quán khi cập nhật.

– CSDL cần được thiết kế để tránh dư thừa dữ liệu.

2. Liên kết giữa các bảng và khoá ngoài

Khoá ngoài của một bảng: một trường (hay một số trường) của bảng này và đồng thời là khoá của một bảng khác.

3. Hệ quản trị CSDL đảm bảo ràng buộc khoá ngoài

HOẠT ĐỘNG

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?

Đáp án:

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.

a) Ràng buộc khoá ngoài

Ràng buộc khoá ngoài là yêu cầu mọi giá trị của khoá ngoài trong bảng tham chiếu phải xuất hiện trong giá trị khoá ở bảng được tham chiếu.

b) Khai báo liên kết giữa các bảng

Hình 4 cho thấy kết quả trực quan của việc khai báo liên kết giữa 3 bảng khi dùng hệ quản trị CSDL Microsoft Access.

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.

Đáp án:

Khi tạo lập CSLD, sau khi tạo xong cấu trúc cho hai bảng nên khai báo khoá và khai báo liên kết trước khi nhập dữ liệu cho hai bảng.

Lí do: Khai báo liên kết trước khi nhập dữ liệu để hệ quản trị CSDL sẽ ngăn chặn những bản ghi nhập vào bị vi phạm ràng buộc khoá ngoài. Nếu nhập dữ liệu trước thì dữ liệu đó có thể bị vi phạm ràng buộc khoá ngoài mà không được phát hiện.

CÂU HỎI TỰ KIỂM TRA

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.

Đáp án: Phương án b, d.

Xem các bài giải khác tại Giải sách giáo khoa tin học lớp 11 Tin học ứng dụng – Cánh Diều

Thông tin liên hệ & mạng xã hội:
Website: https://bumbii.com/
Facebook: https://www.facebook.com/bumbiiapp
Pinterest: https://www.pinterest.com/bumbiitech

0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest

0 Bình luận
Phản hồi nội tuyến
Xem tất cả bình luận
0
Cùng chia sẻ bình luận của bạn nào!x