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.
Hướng dẫn trả lời:
Đáp án đúng: 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.
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ì?
Hướng dẫn trả lời:
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 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 tổ chức dữ liệu thứ hai, trong bảng NHÂN VIÊN chỉ cần ghi mã chức vụ cho mỗi người.
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”
Bảng tham chiếu là bảng NHÂN VIÊN, bảng được tham chiếu là bảng CHỨC VỤ
Với bảng NHÂN VIÊN: khóa là “Mã NV”. Với bảng CHỨC VỤ: khóa là “Mã CV”. Trường “Mã CV” là khóa ngoài thực hiện liên kết giữa hai bảng.
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.
Hướng dẫn trả lời:
Đáp án đúng: 2) Liên kết giữa các bảng để có thông tin tổng hợp từ các bảng.
F20. 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.
Hướng dẫn trả lời:
Đáp án đúng:
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.
F21. 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.
Hướng dẫn trả lời:
1) - Bảng HỌC SINH – khóa là “Mã định danh”
- Bảng LỚP – khóa là “Mã lớp”
- Bảng ĐIỂM TỔNG KẾT – khóa là “Mã định danh”
2) - Bảng HỌC SINH – khóa ngoài “Mã lớp” (đối với bảng LỚP), “Mã định danh” (đối với bảng ĐIỂM TỔNG KẾT)
- Bảng ĐIỂM TỔNG KẾT – khóa ngoài “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 khóa 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 khóa 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. (học sinh có mã định danh đó có điểm tổng kết ra sao)
Liên kết ĐIỂM TỔNG KẾT – HỌC SINH qua khóa 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. (bổ sung thông tin cho học sinh có mã định danh này)
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.
Hướng dẫn trả lời:
Đáp án đúng:
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.
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.
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.
Hướng dẫn trả lời:
1)
HỌC SINH | |||||
Mã định danh | Họ và tên | Ngày sinh | Giới tính | Địa chỉ | Mã lớp |
060001 | Nguyễn Tú Anh | 17/11/2003 | Nữ | Long Biên, HN | K60 |
060002 | Nguyễn Thu Hà | 30/12/2003 | Nữ | Long Biên, HN | K60 |
060003 | Vũ Minh Hiếu | 21/12/2003 | Nam | Gia Lâm, HN | K60 |
... | ... | ... | ... | ... | ... |
061012 | Nguyễn Anh Tuấn | 11/11/2004 | Nam | Long Biên, HN | K61 |
061013 | Lý Gia Hưng | 05/01/2003 | Nam | Long Biên, HN | K61 |
... | ... | ... | ... | ... | ... |
LỚP | ||
Mã lớp | Tên lớp | GV chủ nhiệm |
K60 | K60A01 | Trần Khánh Linh |
K61 | K61A01 | Hoàng Kim Cúc |
ĐIỂM TỔNG KẾT | |||||
Mã định danh | TB Toán | TB Ngữ văn | ... | TB Tin học | TB Tiếng Anh |
060001 | 8.7 | 7.5 | ... | 9.6 | 7.9 |
060002 | 7.9 | 9.0 | ... | 6.8 | 8.5 |
060003 | 5.3 | 6.5 | ... | 8.6 | 6.7 |
2) Các ví dụ:
Hai cập nhật thêm bản ghi: Thêm hai bản ghi cho bảng ĐIỂM TỔNG KẾT mà giá trị “Mã định danh” không trùng với giá trị nào trong trường “Mã định danh” của bảng HỌC SINH.
Một cập nhật sửa một bản ghi: Sửa 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.
Hai cập nhật xóa bản ghi: Xóa hai bản ghi trong bảng LỚP có giá trị “Mã lớp” xuất hiện ở bảng HỌC SINH, xóa bản ghi này sẽ dẫn đến vi phạm ràng buộc khóa ngoài.
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).
Hướng dẫn trả lời:
1) Các mối liên kết:
HÓA ĐƠN liên kết với KHÁCH HÀNG, khóa ngoài là “Mã khách hàng”, bảng tham chiếu là bảng HÓA ĐƠN, bảng được tham chiếu là bảng KHÁCH HÀNG.
HÓA ĐƠN liên kết với MẶT HÀNG, khóa ngoài là “Mã mặt hàng”, bảng tham chiếu là bảng HÓA ĐƠN, bảng được tham chiếu là bảng MẶT HÀNG.
2)
KHÁCH HÀNG | ||
Mã khách hàng | Họ và tên | Địa chỉ |
KH1 | Khánh Linh | Hà Nội |
KH2 | Minh Trí | Thái Nguyên |
MẶT HÀNG | ||
Mã mặt hàng | Tên mặt hàng | Đơn giá |
H1 | Bút bi | 5 000 VND |
H2 | Bút chì | 3 000 VND |
H3 | Bút lông | 10 000 VND |
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 | KH1 | H1 | 10 | 30/10/2023 |
Thêm bản ghi (S2, KH5, H2, 5, “15/10/2023”) 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