第2題的內容是:
單選題
已知關係R(A,B,C,D)和R上的函式依賴集F={B→D,AB→C},候選碼是(1),關係R屬於(2)。
選項
A. 1NF
B. 2NF
C. 3NF
D. BCNF
分析
這道題目考察的是關聯式資料庫的正規化(Normal Form)知識點。
正規化的相關內容:
-
第一正規化(1NF):要求關係中的每個域都是原子性的,即每個欄位都是不可分割的資料項。
-
第二正規化(2NF):在1NF的基礎上,要求所有非主屬性完全依賴於候選鍵。也就是說,沒有部分依賴於候選鍵。
-
第三正規化(3NF):在2NF的基礎上,要求沒有任何屬性依賴於其他非主屬性(即不存在傳遞依賴)。
-
博耶-科得正規化(BCNF):是3NF的加強版,要求任何非平凡的函式依賴X→Y,X都必須是超鍵。
詳細介紹:
-
1NF:這是最基本的正規化,要求關係中的每個欄位都是不可再分的資料項,即每個欄位值都是原子的,不可分割的。
-
2NF:在滿足1NF的基礎上,要求所有非主屬性完全依賴於任何候選鍵,不能只依賴於候選鍵的一部分。如果存在部分依賴,就需要分解關係模式,消除部分依賴。
-
3NF:在滿足2NF的基礎上,要求沒有任何屬性依賴於其他非主屬性,即不存在傳遞依賴。如果存在傳遞依賴,就需要進一步分解關係模式。
-
BCNF:是3NF的加強,要求對於任何非平凡的函式依賴X→Y,X都必須是超鍵。如果存在X→Y,而X不是超鍵,那麼需要分解關係模式。
判斷關係R屬於哪個正規化:
- 已知關係R的函式依賴集F={B→D,AB→C},候選碼是AB。
- 由於AB是候選碼,B→D和AB→C都是完全依賴於候選碼的,所以關係R至少滿足2NF。
- 沒有非主屬性依賴於其他非主屬性,所以關係R滿足3NF。
- 要判斷是否滿足BCNF,需要檢查每個函式依賴的左邊是否是超鍵。在這裡,B→D中B不是超鍵,所以不滿足BCNF。
結論
- 因此,關係R屬於3NF。所以正確答案是C. 3NF。