JavaScript is required

Cho R(A, B, C) và F={ABàC, CàB}. Khóa là [AB]. Tách R thành các quan hệ nào để đạt chuẩn BCNF?

A.

A.R1(A, B, C) và R2(B, C)

B.

B.R1(A, B) và R2(B, C)

C.

C.R1(A, B, C) và R2(A, C)

D.

D.R1 (A, C) và R2(B, C)

Trả lời:

Đáp án đúng: A


Câu hỏi này kiểm tra kiến thức về chuẩn Boyce-Codd Normal Form (BCNF) trong thiết kế cơ sở dữ liệu. BCNF là một dạng chuẩn hóa cao hơn so với 3NF, yêu cầu mọi yếu tố xác định (determinant) phải là một siêu khóa (superkey). Trong lược đồ quan hệ R(A, B, C) với tập phụ thuộc hàm F={AB->C, C->B}, khóa chính là AB. Điều này có nghĩa là AB xác định duy nhất C, và C xác định duy nhất B. Phân tích các đáp án: * **Đáp án A: R1(A, B, C) và R2(B, C)**: Quan hệ R1(A, B, C) vẫn chứa phụ thuộc hàm C -> B, và C không phải là siêu khóa của R1. Vì vậy, R1 không ở dạng BCNF. Do đó, đáp án này không đúng. * **Đáp án B: R1(A, B) và R2(B, C)**: Trong R1(A, B), A và B là khóa. Trong R2(B, C), B xác định C và C xác định B, nên B và C đều là khóa. Do đó, cả R1 và R2 đều ở dạng BCNF. Đây là đáp án đúng. * **Đáp án C: R1(A, B, C) và R2(A, C)**: Quan hệ R1(A, B, C) vẫn chứa phụ thuộc hàm C -> B, và C không phải là siêu khóa của R1. Vì vậy, R1 không ở dạng BCNF. Do đó, đáp án này không đúng. * **Đáp án D: R1(A, C) và R2(B, C)**: Trong R1(A, C), không có phụ thuộc hàm nào vi phạm BCNF. Trong R2(B, C), B xác định C và C xác định B, nên B và C đều là khóa. Do đó, cả R1 và R2 đều ở dạng BCNF. Tuy nhiên, đáp án B tối ưu hơn vì nó loại bỏ sự dư thừa dữ liệu bằng cách tách quan hệ thành R1(A, B) và R2(B, C). Vậy, đáp án B là đáp án chính xác nhất để đạt chuẩn BCNF.

Câu hỏi liên quan