Trắc nghiệm Cơ sở dữ liệu Bài 45: Phân tách bảo toàn phụ thuộc dữ liệu là một trong những đề thi thuộc Chương 7: PHÂN TÍCH trong học phần Cơ sở dữ liệu chuyên ngành Công Nghệ Thông Tin cấp độ Đại học. Đây là phần học tiếp tục đi sâu vào các tính chất quan trọng của quá trình phân rã (decomposition) lược đồ quan hệ.
Trong bài học này, người học cần nắm vững khái niệm Phân rã bảo toàn phụ thuộc (Dependency Preservation) là gì và tại sao nó lại cần thiết trong thiết kế CSDL. Hiểu rõ mối quan hệ giữa tính bảo toàn phụ thuộc và tính kết nối không tổn thất (Lossless-Join), cũng như cách kiểm tra tính bảo toàn phụ thuộc cho một phân rã dựa trên tập phụ thuộc hàm, là kỹ năng quan trọng để đảm bảo rằng tất cả các ràng buộc ngữ nghĩa được định nghĩa trên dữ liệu vẫn được thực thi sau khi phân rã bảng.
Hãy cùng Dethitracnghiem.vn tìm hiểu về đề thi này và tham gia làm kiểm tra ngay lập tức!
Trắc nghiệm Cơ sở dữ liệu Bài 45: Phân tách bảo toàn phụ thuộc dữ liệu
Câu 1.Phân rã R thành {R1, R2, …, Rn} được gọi là bảo toàn phụ thuộc (Dependency Preserving) đối với tập phụ thuộc hàm F trên R nếu:
A. Mỗi phụ thuộc hàm trong F tồn tại trong ít nhất một Ri.
B. Bao đóng của hợp các phụ thuộc hàm trên từng Ri bằng bao đóng của F.
C. Hợp của bao đóng các phụ thuộc hàm trên từng Ri (tức là \( (\cup_{i=1}^n F_i)+ \)) bao phủ bao đóng của F (tức là \( (\cup_{i=1}^n F_i)+ = F+ \)), trong đó Fi là tập con của F giới hạn trên Ri.
D. Mỗi thuộc tính trong R xuất hiện trong ít nhất một Ri.
Câu 2.Mục đích chính của việc phân rã bảo toàn phụ thuộc là gì?
A. Tăng tốc độ truy vấn.
B. Giảm chi phí lưu trữ.
C. Đảm bảo rằng tất cả các ràng buộc ngữ nghĩa ban đầu (được thể hiện qua phụ thuộc hàm) vẫn có thể được kiểm tra BẰNG CÁCH CHỈ KIỂM TRA các phụ thuộc hàm TRONG TỪNG quan hệ con mà không cần kết nối lại.
D. Tránh tạo ra các bộ giả (spurious tuples).
Câu 3.Tại sao việc bảo toàn phụ thuộc lại quan trọng?
A. Để CSDL có kích thước nhỏ hơn.
B. Để làm cho quá trình chuẩn hóa phức tạp hơn.
C. Để HQTCSDL có thể dễ dàng và hiệu quả thực thi tất cả các ràng buộc toàn vẹn (thông qua kiểm tra phụ thuộc hàm) trên các bảng đã phân rã.
D. Để giảm số lượng người dùng truy cập.
Câu 4.Một phân rã bảo toàn phụ thuộc đảm bảo điều gì?
A. Phân rã đó cũng là Lossless-Join.
B. Dữ liệu không bị mất khi phân rã.
C. Mọi phụ thuộc hàm trong F đều được bảo toàn hoặc suy diễn được từ các phụ thuộc hàm trong các Ri.
D. Thứ tự của các bộ được giữ nguyên.
Câu 5.Nếu một phân rã {R1, R2, …, Rn} là bảo toàn phụ thuộc đối với F, thì việc kiểm tra tất cả các phụ thuộc hàm trong F có thể được thực hiện bằng cách nào?
A. Bằng cách kết nối tự nhiên tất cả các Ri lại và kiểm tra các phụ thuộc hàm trên kết quả.
B. Bằng cách chỉ kiểm tra các phụ thuộc hàm trên bảng gốc R.
C. Bằng cách kiểm tra các phụ thuộc hàm chỉ trên R1.
D. Bằng cách kiểm tra các phụ thuộc hàm trong từng quan hệ con Ri (tức là kiểm tra \( (\cup_{i=1}^n F_i)+ = F+ \)).
Câu 6.Tập phụ thuộc hàm Fi trên quan hệ con Ri (Fi là tập con của F giới hạn trên Ri) bao gồm các phụ thuộc hàm nào?
A. Tất cả các phụ thuộc hàm trong F.
B. Các phụ thuộc hàm trong F có vế trái là tập con của thuộc tính của Ri.
C. Các phụ thuộc hàm X \( \rightarrow \) Y trong F+ sao cho tất cả các thuộc tính trong X \( \cup \) Y đều nằm trong Ri.
D. Các phụ thuộc hàm có vế phải là tập con của thuộc tính của Ri.
Câu 7.Để kiểm tra tính bảo toàn phụ thuộc của phân rã R thành {R1, R2, …, Rn} đối với F, ta cần kiểm tra điều kiện nào?
A. \( F+ = (\cup_{i=1}^n F_i)+ \)
B. \( F+ \supseteq (\cup_{i=1}^n F_i)+ \)
C. \( F+ \subseteq (\cup_{i=1}^n F_i)+ \) (Điều này đảm bảo mọi FD trong F đều suy diễn được từ các FD trên từng Ri. Điều kiện tương đương với \( F+ = (\cup_{i=1}^n F_i)+ \) khi xét bao phủ). Cách kiểm tra thực tế là kiểm tra xem mọi phụ thuộc hàm trong F có suy diễn được từ \(\cup F_i\) không.
D. \( F+ \cap (\cup_{i=1}^n F_i)+ = \emptyset \)
Câu 8.Thuật toán kiểm tra tính bảo toàn phụ thuộc cho phân rã R thành {R1, R2, …, Rn} đối với F thường thực hiện như thế nào?
A. Xây dựng ma trận và điền các ký hiệu ‘a’/’b’.
B. Kết nối tự nhiên tất cả các Ri và so sánh với R.
C. Đối với mỗi phụ thuộc hàm X \( \rightarrow \) Y trong F, tính bao đóng X+ dựa trên tập phụ thuộc hàm \(\cup_{i=1}^n F_i\). Nếu Y không phải là tập con của X+ cho BẤT KỲ phụ thuộc hàm X \( \rightarrow \) Y nào trong F, thì phân rã KHÔNG bảo toàn phụ thuộc.
D. Loại bỏ các phụ thuộc hàm dư thừa.
Câu 9.Cho lược đồ R(A, B, C) và F = {A \( \rightarrow \) B, B \( \rightarrow \) C}. Xét phân rã {R1(A, B), R2(B, C)}.
F1 trên R1(A, B) bao gồm {A \( \rightarrow \) B}.
F2 trên R2(B, C) bao gồm {B \( \rightarrow \) C}.
Hợp các phụ thuộc hàm trên các quan hệ con là F’ = {A \( \rightarrow \) B, B \( \rightarrow \) C}.
Bao đóng của F’ (F’+) là F+.
Phân rã này có bảo toàn phụ thuộc không?
A. Không. F’ không chứa tất cả FD của F.
B. Không. F’ chứa FD dư thừa.
C. Có, vì F’+ = F+. (Trong trường hợp này F’=F, nên F’+=F+ là đúng).
D. Có, nhưng nó là Lossy-Join.
Câu 10.Cho lược đồ R(A, B, C, D) và F = {A \( \rightarrow \) B, B \( \rightarrow \) CD}. Xét phân rã {R1(A, B), R2(B, C, D)}.
F1 trên R1(A, B) bao gồm {A \( \rightarrow \) B}.
F2 trên R2(B, C, D) bao gồm {B \( \rightarrow \) C, B \( \rightarrow \) D, B \( \rightarrow \) CD, C \( \rightarrow \) D (nếu C \( \rightarrow \) D suy diễn được từ B \( \rightarrow \) CD, điều này không chắc chắn nếu không có thêm luật suy diễn… à, F2 bao gồm tất cả FD X \( \rightarrow \) Y trong F+ với XY là tập con của {B,C,D}. Với F = {A \( \rightarrow \) B, B \( \rightarrow \) CD}, F+ chứa A \( \rightarrow \) B, B \( \rightarrow \) C, B \( \rightarrow \) D, A \( \rightarrow \) C, A \( \rightarrow \) D, A \( \rightarrow \) CD, B \( \rightarrow \) CD.
Các FD trong F+ với thuộc tính con của R1={A,B}: A \( \rightarrow \) B. F1={A \( \rightarrow \) B}.
Các FD trong F+ với thuộc tính con của R2={B,C,D}: B \( \rightarrow \) C, B \( \rightarrow \) D, B \( \rightarrow \) CD. F2={B \( \rightarrow \) C, B \( \rightarrow \) D, B \( \rightarrow \) CD}.
Hợp các FD trên các quan hệ con là F’ = {A \( \rightarrow \) B, B \( \rightarrow \) C, B \( \rightarrow \) D, B \( \rightarrow \) CD}.
Bao đóng của F’ (F’+) = F+.
Phân rã này có bảo toàn phụ thuộc không?
A. Không, vì B \( \rightarrow \) CD không được bảo toàn nguyên vẹn.
B. Không, vì F1 không chứa B \( \rightarrow \) CD.
C. Không thể xác định.
D. Có, vì \( F’ + = F + \).
Câu 11.Cho lược đồ R(A, B, C) và F = {AB \( \rightarrow \) C, C \( \rightarrow \) B}. Xét phân rã {R1(A, B), R2(A, C)}.
F1 trên R1(A, B) bao gồm FD nào trong F+ với thuộc tính AB? Chỉ có những FD mà vế trái và vế phải đều là tập con của {A, B}. AB \( \rightarrow \) C không thỏa. C \( \rightarrow \) B không thỏa. Từ F+ có suy ra FD nào chỉ dùng A, B không? AB \( \rightarrow \) C, C \( \rightarrow \) B suy ra AB \( \rightarrow \) B (Luật Áp dụng), B \( \rightarrow \) B (Luật Phản xạ), A \( \rightarrow \) A, B \( \rightarrow \) B, C \( \rightarrow \) C, AB \( \rightarrow \) C, C \( \rightarrow \) B. Từ C \( \rightarrow \) B, ta có AC \( \rightarrow \) AB. Từ AB \( \rightarrow \) C, ta có AC \( \rightarrow \) AC. F+ còn có: AC \( \rightarrow \) B (từ AC \( \rightarrow \) AB, AB \( \rightarrow \) C, C \( \rightarrow \) B -> AC \( \rightarrow \) C, C \( \rightarrow \) B -> AC \( \rightarrow \) B), AC \( \rightarrow \) BC, BC \( \rightarrow \) C (Luật Áp dụng).
Let’s use the check method: For each FD X \( \rightarrow \) Y in F, check if X \( \rightarrow \) Y holds in \( (\cup F_i)+ \).
F1={}: F2={}. F’ = {}. F’+ = {}.
FD1: AB \( \rightarrow \) C. Check if AB \( \rightarrow \) C holds in {}+. (AB)+ in {}+ is {A, B}. Does not contain C. So AB \( \rightarrow \) C is NOT preserved.
FD2: C \( \rightarrow \) B. Check if C \( \rightarrow \) B holds in {}+. (C)+ in {}+ is {C}. Does not contain B. So C \( \rightarrow \) B is NOT preserved.
Phân rã này có bảo toàn phụ thuộc không?
A. Có.
B. Không.
C. Không thể xác định.
D. Có, vì nó là Lossless-Join. (Lưu ý: phân rã này R1 \( \cap \) R2 = {A}. Cần check A \( \rightarrow \) R1({A, B}) HOẶC A \( \rightarrow \) R2({A, C}). A \( \rightarrow \) A luôn đúng. A \( \rightarrow \) B suy diễn từ F không? Không. A \( \rightarrow \) C suy diễn từ F không? Không. Vậy đây cũng là Lossy-Join).
Câu 12.Tính bảo toàn phụ thuộc và tính kết nối không tổn thất là:
A. Luôn cùng tồn tại (cái này suy ra cái kia).
B. Luôn loại trừ nhau.
C. Hai tính chất độc lập, một phân rã có thể có cái này mà không có cái kia.
D. Một chỉ áp dụng cho phân rã nhị phân, cái kia cho đa quan hệ.
Câu 13.Mục tiêu của quá trình chuẩn hóa (Normalization) thường là đạt được phân rã có tính chất nào?
A. Chỉ Lossless-Join.
B. Chỉ Dependency Preservation.
C. Lossless-Join và tốc độ truy vấn cao.
D. Lossless-Join và Dependency Preservation (đặc biệt là khi chuẩn hóa đến 3NF).
Câu 14.BCNF (Boyce-Codd Normal Form) đảm bảo tính chất nào?
A. Luôn Lossless-Join và luôn Dependency Preservation.
B. Luôn Lossless-Join nhưng không luôn Dependency Preservation.
C. Không luôn Lossless-Join nhưng luôn Dependency Preservation.
D. Không đảm bảo cả hai.
Answer based on standard theory: BCNF decomposition is always Lossless-Join but not always Dependency Preservation. So B.
Câu 15.3NF (Third Normal Form) đảm bảo tính chất nào?
A. Luôn Lossless-Join nhưng không luôn Dependency Preservation.
B. Không luôn Lossless-Join nhưng luôn Dependency Preservation.
C. Không đảm bảo cả hai.
D. Luôn Lossless-Join VÀ luôn Dependency Preservation. (Đây là lý do 3NF thường là mục tiêu thực tế).
Câu 16.Nếu một phân rã là Lossless-Join nhưng KHÔNG bảo toàn phụ thuộc, điều gì xảy ra?
A. Dữ liệu bị mất khi phân rã.
B. Sinh ra các bộ giả khi kết nối.
C. Một số ràng buộc (FDs) ban đầu không thể được kiểm tra hiệu quả chỉ bằng cách kiểm tra trên các quan hệ con.
D. Không thể truy vấn dữ liệu.
Câu 17.Nếu một phân rã là bảo toàn phụ thuộc nhưng KHÔNG Lossless-Join, điều gì xảy ra?
A. Một số ràng buộc không thể được kiểm tra.
B. Sinh ra các bộ giả khi kết nối tự nhiên các quan hệ con lại.
C. Mất mát dữ liệu.
D. Không thể thêm dữ liệu mới.
Câu 18.Việc kiểm tra tính bảo toàn phụ thuộc chỉ dựa trên tập phụ thuộc hàm nào?
A. Tập phụ thuộc hàm gốc F.
B. Tập bao đóng F+.
C. Tập phụ thuộc hàm suy diễn từ F.
D. Tập phụ thuộc hàm Fi trên từng quan hệ con Ri, và sự hợp nhất của chúng.
Câu 19.Trong thuật toán kiểm tra bảo toàn phụ thuộc (dựa trên FD), ta cần tính bao đóng của tập thuộc tính X (vế trái của mỗi FD X \( \rightarrow \) Y trong F) dựa trên tập phụ thuộc hàm nào?
A. F.
B. F+.
C. Chỉ F1.
D. \( \cup_{i=1}^n F_i \).
Câu 20.Nếu mọi phụ thuộc hàm X \( \rightarrow \) Y trong F đều thỏa mãn Y \( \subseteq \) X+ khi X+ được tính dựa trên \( \cup_{i=1}^n F_i \), thì phân rã là gì?
A. Lossless-Join.
B. Bảo toàn phụ thuộc.
C. Lossy-Join.
D. Không xác định.
Câu 21.Khi chuyển đổi từ ERD sang mô hình quan hệ, các Khóa ngoại được tạo ra từ các mối quan hệ 1:N hoặc 1:1 có giúp bảo toàn phụ thuộc không?
A. Không liên quan.
B. Có, chúng giúp bảo toàn các ràng buộc tham chiếu, là một dạng ràng buộc toàn vẹn có thể suy diễn từ các phụ thuộc hàm nhất định.
C. Chỉ khi quan hệ là M:N.
D. Chỉ khi thuộc tính là đa trị.
Câu 22.Sự lựa chọn giữa phân rã Lossless-Join/Dependency Preservation (ví dụ 3NF) và phân rã chỉ Lossless-Join (ví dụ BCNF) thường liên quan đến sự đánh đổi giữa:
A. Tốc độ và bảo mật.
B. Chi phí lưu trữ và tính sẵn sàng.
C. Khả năng kiểm tra ràng buộc hiệu quả và loại bỏ hoàn toàn các bất thường (BCNF loại bỏ nhiều bất thường hơn 3NF nhưng có thể không bảo toàn phụ thuộc).
D. Số lượng bảng và số lượng cột.
Câu 23.Một lược đồ quan hệ ở BCNF sẽ KHÔNG có phụ thuộc hàm X \( \rightarrow \) Y nào mà X không phải là Siêu khóa, NGOẠI TRỪ:
A. Phụ thuộc hàm có vế phải đơn.
B. Phụ thuộc hàm tầm thường (trivial FD).
C. Phụ thuộc hàm có vế trái đa thuộc tính.
D. Phụ thuộc hàm bắt nguồn từ Khóa chính (là Siêu khóa).
Câu 24.Phụ thuộc hàm tầm thường (trivial FD) X \( \rightarrow \) Y là gì?
A. X là tập con của Y.
B. Y là tập con của X (Luôn đúng).
C. X và Y là cùng một tập thuộc tính.
D. X là Khóa chính.
Câu 25.Kiểm tra tính bảo toàn phụ thuộc là một bước quan trọng để đánh giá chất lượng của quá trình phân rã trong giai đoạn nào của thiết kế CSDL?
A. Thiết kế Khái niệm.
B. Thiết kế Logic (Normalization).
C. Thiết kế Vật lý.
D. Triển khai.