Quan hệ giữa các bảng và khoá ngoài trong cơ sở dữ liệu quan hệ SBT Tin học Lớp 11 định hướng tin học ứng dụng trang 23 – 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ệ.
Câu F17
Trong các câu sau, câu nào SAI:
1) Chỉ cần tránh dữ liệu không đúng đắn, không cần tránh dư thừa dữ liệu.
2) Thay vì đưa tất cả dữ liệu vào một bảng, việc dùng một số bảng có liên kết với nhau là một cách tránh dư thừa dữ liệu
3) Dư thừa dữ liệu làm tốn vùng nhớ để lưu trữ một cách không cần thiết.
4) Dư thừa dữ liệu có thể dẫn đến không nhất quán khi cập nhật dữ liệu.
Đáp án: Phương án 1.
Chỉ cần tránh dữ liệu không đúng đắn, không cần tránh dư thừa dữ liệu.
Câu F18
Cho hai cách tổ chức dữ liệu khác nhau khi xây dựng một CSDL như sau:
Cách thứ nhất: CSDL chỉ gồm một bảng NHÂN VIÊN_CHỨC VỤ.
NHÂN VIÊN_CHỨC VỤ
Mã NV | Họ và tên | Ngày sinh | Mã CV | Chức vụ | Phụ cấp |
001 | Phan Anh | 03/10/1980 | GD | Giám đốc | 0.8 |
002 | Lê Văn Dũng | 15/01/1985 | PD | Phó giám đốc | 0.7 |
003 | Hoàng Kim Cúc | 12/02/1990 | NV | Nhân viên | 0.2 |
004 | Trịnh Thị Đông | 07/12/1980 | NV | Nhân viên | 0.2 |
005 | Nguyễn Thị Lan | 29/11/1987 | PD | Phó giám đốc | 0.7 |
006 | Đoàn Thanh | 07/07/1982 | TP | Trưởng phòng | 0.6 |
Cách thứ hai: CSDL gồm hai bảng NHÂN VIÊN và CHỨC VỤ.
NHÂN VIÊN
Mã NV | Họ và tên | Ngày sinh | Mã CV |
001 | Phan Anh | 03/10/1980 | GD |
002 | Lê Văn Dũng | 15/01/1985 | PD |
003 | Hoàng Kim Cúc | 12/02/1990 | NV |
004 | Trịnh Thị Đông | 07/12/1980 | NV |
005 | Nguyễn Thị Lan | 29/11/1987 | PD |
006 | Đoàn Thanh | 07/07/1982 | TP |
CHỨC VỤ
Mã CV | Chức vụ | Phụ cấp |
GD | Giám đốc | 0.8 |
PD | Phó giám đốc | 0.7 |
NV | Nhân viên | 0.2 |
NV | Nhân viên | 0.2 |
PD | Phó giám đốc | 0.7 |
TP | Trưởng phòng | 0.6 |
1) Trong hai cách tổ chức dữ liệu trên, em chọn cách nào? Hãy giải thích lựa chọn của em.
2) Với cách thứ hai:
– Bảng NHÂN VIÊN và bàng CHỨC VỤ liên kết với nhau theo trường nào?
– Bảng nào là bảng tham chiếu và bảng nào là bảng được tham chiếu?
– Khoá của mỗi bảng là gì và khoá ngoài dùng trong liên kết hai bảng là gì?
Đáp án:
1) Cách tổ chức dữ liệu thứ nhất sẽ dư thừa dữ liệu. Ví dụ, mỗi khi thêm một bản ghi nhân viên (hay trưởng phòng) sẽ lặp đi lặp lại các thông tin về chức vụ và phụ cấp. Bởi vậy nên dùng cách thứ hai, trong bảng NHÂN VIÊN chỉ cần ghi mã chức vụ cho mỗi cán bộ, nhân viên.
2) Với cách thứ hai:
– Bảng NHÂN VIÊN và bảng CHỨC VỤ liên kết với nhau dựa trên trường Mã CV (viết tắt của Mã chức vụ).
– Bảng NHÂN VIÊN là bảng tham chiếu và bảng CHỨC VỤ là bảng được tham chiếu.
– Bảng NHÂN VIÊN có khoá là trường Mã NV (viết tắt của Mã nhân viên), bảng CHỨC VỤ có khoá là trường Mã CV. Trường Mã CV là khoá ngoài của bảng NHÂN VIÊN với bảng CHỨC VỤ, trường này thực hiện liên kết giữa hai bảng.
Câu F19
Trong các câu sau, câu nào đúng?
1) Liên kết giữa các bảng để đảm bảo các bảng có liên kết với nhau thuộc cùng một CSDL.
2) Liên kết giữa các bảng để có thông tin tổng hợp từ các bảng.
3) Trường dùng để liên kết hai bảng phải là kiểu số.
4) Trường dùng để liên kết hai bảng phải là khoá ngoài của bảng được tham chiếu và là khoá của bảng tham chiếu.
Đáp án: Phương án 2.
Liên kết giữa các bảng để có thông tin tổng hợp từ các bảng.
Câu F20
Giả sử có một trường học dùng CSDL quản lý điểm học sinh gồm các bảng có cấu trúc như sau:
HỌC SINH
Mã định danh | Họ và tên | Ngày sinh | Giới tính | Địa chỉ | Mã lớp |
LỚP
Mã lớp | Tên lớp | GV chủ nhiệm |
ĐIỂM TỔNG KẾT
Mã định danh | TB Toán | TB Ngữ văn | … | TB Tin học | TB Tiếng Anh |
1) Hãy chọn khoá cho mỗi bảng.
2) Hãy chỉ ra các khoá ngoài.
3) Hãy chỉ ra các mối liên kết giữa hai bảng, trong liên kết đó bảng nào là bảng tham chiếu và bảng nào là bảng được tham chiếu.
Đáp án: Phương án 2, 3.
Câu F21
Trong các phát biểu dưới đây, những phát biểu nào đúng với khóa ngoài?
1) Một trường xuất hiện trong cả hai bảng, vừa là khóa của bảng này vừa là khóa của bảng kia.
2) Một trường có vai trò liên kết hai bảng, trong mối liên kết đó trường này là khoá ở bảng được tham chiếu.
3) Một tập hợp trường có vai trò là khoá của bảng này và tập hợp trường này cũng xuất hiện trong một bảng khác.
4) Một tập hợp trường có vai trò liên kết hai bảng, trong mối liên kết đó tập hợp trường này là khoá ở bảng tham chiếu.
Đáp án:
1) Bảng HỌC SINH có khoá là Mã định danh; bảng LỚP có khoá là Mã lớp, bảng ĐIỂM TỔNG KẾT có khoá là Mã định danh.
2) Bảng HỌC SINH có khoá ngoài là Mã lớp (đối với bảng LỚP); bảng HỌC SINH có khoá ngoài là Mã định danh (đối với bảng ĐIỂM TỔNG KẾT); bảng ĐIỂM TỔNG KẾT có khoá ngoài là Mã định danh (đối với bảng HỌC SINH).
3) Các mối liên kết:
– Liên kết HỌC SINH – LỚP qua khoá ngoài Mã lớp, bảng HỌC SINH là bảng tham chiếu, bảng LỚP là bảng được tham chiếu.
– Liên kết HỌC SINH – ĐIỂM TỔNG KẾT qua khoá ngoài Mã định danh, bảng HỌC SINH là bảng tham chiếu, bảng ĐIỂM TỔNG KẾT là bảng được tham chiếu (giải thích cho mỗi Mã định danh: học sinh có mã định danh đó có điểm tổng kết của từng môn học ra sao).
– Liên kết ĐIỂM TỔNG KẾT – HỌC SINH qua khoá ngoài Mã định danh, bảng ĐIỂM TỔNG KẾT là bảng tham chiếu, bảng HỌC SINH là bảng được tham chiếu (giải thích cho mỗi Mã định danh: thông tin cá nhân của mỗi học sinh có mã định danh này).
Câu F22
Trong các câu sau, những câu nào đúng về ràng buộc khóa ngoài?
1) Ràng buộc khóa ngoài là yêu cầu mỗi bảng trong CSDL phải có khoá ngoài
2) Ràng buộc khóa ngoài là yêu cầu dữ liệu của hai bảng có liên kết với nhau. phải đảm bảo có tham chiếu đầy đủ theo liên kết này.
3) Nếu hai bảng có liên kết với nhau thì mọi giá trị của khoá trong bảng được tham chiếu phải xuất hiện trong giá trị khoá ngoài ở bảng tham chiếu.
4) Cập nhật vi phạm ràng buộc khóa ngoài tức là vi phạm ràng buộc toàn vẹn của dữ liệu.
Đáp án: Phương án 2, 4.
Những câu sau đúng về ràng buộc khoá ngoài:
2) Ràng buộc khoá ngoài là yêu cầu dữ liệu của hai bảng có liên kết với nhau phải đảm bảo có tham chiếu đầy đủ theo liên kết này.
4) Cập nhật vi phạm ràng buộc khoá ngoài tức là vi phạm ràng buộc toàn vẹn của dữ liệu.
Câu F23
Giả sử có một trường học dùng CSDL quản lý điểm học sinh gồm các bảng có cấu trúc như ở bài F21. Em hãy:
1) Tự điền dữ liệu giả định năm bản ghi cho bảng HỌC SINH, hai bản ghi cho bảng LỚP, ba bản ghi cho bảng ĐIỂM TỔNG KẾT sao cho dữ liệu điền vào không bị vi phạm ràng buộc khóa ngoài
2) Hãy lấy ví dụ các cập nhật vi phạm ràng buộc khóa ngoài như sau:
– Hai cập nhật thêm bản ghi.
– Một cập nhật sửa bản ghi.
– Hai cập nhật xóa bản ghi.
Đáp án:
1) Điền dữ liệu vào bảng LỚP trước, chỉ các giá trị xuất hiện trong trường Mã lớp của bảng LỚP mới được điền vào trường Mã lớp của bảng HỌC SINH; Mã định danh ở bảng ĐIỂM TỔNG KẾT phải được lấy trong trường Mã định danh ở bảng HỌC SINH.
2) Hướng dẫn:
– Có thể thêm một bản ghi cho bảng HỌC SINH mà giá trị Mã lớp không trùng với giá trị nào trong trường Mã lớp của bảng LỚP; tương tự có thể thêm bản ghi cho bảng ĐIỂM TỔNG KẾT với giá trị Mã định danh chưa xuất hiện trong các Mã định danh ở bảng HỌC SINH.
Sửa một bản ghi trong bảng HỌC SINH hoặc một bản ghi trong bảng ĐIỂM TỔNG KẾT để xảy ra trường hợp như thêm bản ghi nói trên.
Chọn một bản ghi trong bảng LỚP có giá trị Mã lớp xuất hiện ở bảng HỌC SINH, xoá bản ghi này sẽ dẫn đến vi phạm ràng buộc khoá ngoài. Tương tự, chọn bản ghi trong bảng HỌC SINH có Mã định danh xuất hiện trong bảng ĐIỂM TỔNG KẾT rồi xoá bản ghi này.
Câu F24
Giả sử một cơ sở kinh doanh dùng CSDL gồm ba bảng có cấu trúc như sau:
KHÁCH HÀNG
Tên trường | Mô tả | Khóa chính |
Mã khách hàng | Mỗi Mã khách hàng xác định duy nhất một khách hàng | Khóa chính |
Họ và tên | Họ và tên của khách hàng | |
Địa chỉ | Địa chỉ của khách hàng |
MẶT HÀNG
Tên trường | Mô tả | Khóa chính |
Mã mặt hàng | Mỗi Mã mặt hàng xác định duy nhất một mặt hàng | Khóa chính |
Tên mặt hàng | Tên của mặt hàng | |
Đơn giá | Đơn giá của mặt hàng (VND) |
HÓA ĐƠN
Tên trường | Mô tả | Khóa chính |
Số hiệu đơn | Mỗi Số hiệu đơn xác định duy nhất một hóa đơn đặt mua hàng | Khóa chính |
Mã khách hàng | Mã khách hàng | |
Mã mặt hàng | Mã mặt hàng | |
Số lượng | Số lượng hàng đặt mua | |
Ngày giao hàng | Ngày giao hàng |
1) Hãy chỉ ra các mối liên kết giữa các bảng này, mỗi liên kết đó sử dụng khoá ngoài là gì, đâu là bảng tham chiếu và đâu là bảng được tham chiếu?
2) Giải thích ràng buộc khóa ngoài với những minh hoạ trên CSDL (có thể đưa dữ liệu giả định vào).
Đáp án:
1) Các mối liên kết:
– HOÁ ĐƠN liên kết với KHÁCH HÀNG, khoá ngoài là Mã khách hàng, bảng tham chiếu là bảng HOÁ ĐƠN, bảng được tham chiếu là bảng KHÁCH HÀNG.
– HOÁ ĐƠN liên kết với MẶT HÀNG, khoá ngoài là Mã mặt hàng, bảng tham chiếu là bảng HOÁ ĐƠN, bảng được tham chiếu là bảng MẶT HÀNG.
2) Ví dụ, nếu hiện tại các bảng có dữ liệu như dưới đây:
KHÁCH HÀNG
Mã khách hàng | Họ và tên | Địa chỉ |
KH1 | Mai Trang | Bình Dương |
KH2 | Lê Minh | Đồng Nai |
MẶT HÀNG
Mã mặt hàng | Tên mặt hàng | Đơn giá |
H1 | Thước kẻ | 5 000VND |
H2 | Bút bi | 3 000VND |
H3 | Bút lông | 10 000VND |
HÓA ĐƠN
Số hiệu đơn | Mã khách hàng | Mã mặt hàng | Số lượng | Ngày giao hàng |
S1 | KH2 | H2 | P | D |
Việc thêm bản ghi (S2, KH5, H1, 100, “01/10/2022”) vào bảng HÓA ĐƠN sẽ vi phạm ràng buộc khóa ngoài vì không có mã khách hàng “KH5” trong bảng KHÁCH HÀNG
Tương tự, việc thêm (S3, KH3, H10,…,….) vi phạm ràng buộc khoá ngoài vì không có mã mặt hàng nào là “H10” trong bảng MẶT HÀNG.
Xem các bài giải khác tại Giải sách bài tập 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
Không bao giờ từ bỏ hy vọng. Cố gắng mỗi ngày.