關聯式資料庫的正規化(Normal Form)知識點

~博客~發表於2024-10-08

第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)知識點。

正規化的相關內容:

  1. 第一正規化(1NF):要求關係中的每個域都是原子性的,即每個欄位都是不可分割的資料項。

  2. 第二正規化(2NF):在1NF的基礎上,要求所有非主屬性完全依賴於候選鍵。也就是說,沒有部分依賴於候選鍵。

  3. 第三正規化(3NF):在2NF的基礎上,要求沒有任何屬性依賴於其他非主屬性(即不存在傳遞依賴)。

  4. 博耶-科得正規化(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。

相關文章