資料庫中關於正規化的判斷

2021-08-02 14:18:07 字數 1232 閱讀 8954

1nf

實體中不能有重複的屬性。每個元組的每個分量都是原子的。

2nf

資料庫表中不存在非關鍵字段對任一候選關鍵字段的部分函式依賴。

在1nf的基礎上,要求每個非鍵屬性依賴於鍵的整體(直接或間接),而不是鍵的部分屬性,即不允許有非平凡函式依賴的右面是非鍵屬性,而左面是某個鍵的真子集。

滿足2nf的幾種情形:

1.不存在非平凡函式依賴。

2.存在非平凡函式依賴,且其右面是某個鍵的組成部分(鍵屬性)。

3.存在非平凡函式依賴,且其右面是非鍵屬性,則其左面要麼是超鍵,要麼包含非鍵屬性。

3nf

在第二正規化的基礎上,資料表中如果不存在非關鍵字段對任一候選關鍵字段的傳遞函式依賴則符合第三正規化。

關係模式r滿足3nf當且僅當若非平凡函式依賴 a1a2…an → b 在關係r中成立,則是r的超鍵,或者b是某個鍵的組成部份(鍵屬性)。

3nf分解演算法:

1.對於關係模式r和r上的函式依賴集f,先求出f的最小依賴集,然後再把最小依賴集中那些左部相同的函式依賴用合併規則合併起來。

2.對最小依賴集中的每個函式依賴x→y去構成乙個模式xy。

3.在構成的模式集中,如果每個模式都不包含r的候選鍵,那麼把任一候選鍵作為乙個模式放入模式集中。

這樣得到的模式集是關係模式r的乙個分解,並且這個分解既是無損分解,又能保持函式依賴。

第三正規化結論:乙個關係模式總可以分解為滿足3nf的模式,且所有的函式依賴都可得到保持。

bcnf

bcnf:在第三正規化的基礎上,資料庫表中如果不存在任何欄位對任一候選關鍵字段的傳遞函式依賴則符合第三正規化。

bc正規化成立當且僅當若非平凡函式依賴 a1a2…an → b1b2…bm 在關係r中成立,則是r的超鍵。

關係r滿足bc正規化的兩種情形:關係r中不存在非平凡函式依賴或每個非平凡函式依賴的左邊都是超鍵。

關係r違背bc正規化的唯一情形:關係r中至少存在乙個函式依賴,其左邊不是超鍵。

判斷bc正規化的方法:找出所有的鍵和所有的非平凡函式依賴,判斷左邊是否是超鍵。

僅有兩個屬性的關係必是bc正規化。

bc正規化分解演算法:

1.找乙個違背bcnf的非平凡函式依賴a1a2…an → b1b2…bm 。

2.把關係r分解成兩個關係:

r1(a1,a2,…,an, b1,b2,…,bm)。

r2(a1,a2,…,an, 所有其它屬性)。

若不滿足bc正規化,則再分解。

資料庫 正規化判斷

1.1 第一正規化 1nf 無重複的列 所謂第一正規化 1nf 是指資料庫表的每一列都是不可分割的基本資料項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重複的屬性。如果出現重複的屬性,就可能需要定義乙個新的實體,新的實體由重複的屬性構成,新實體與原實體之間為一對多關係。在第一正規...

資料庫中的正規化

1nf 第一正規化是指資料庫表的每一列都是不可分割的基本資料項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能又重複的屬性。第一正規化的模式要求屬性值不可再 成更小部分,即屬性項不能是屬性組合或由組屬性組成。2nf 第二正規化,是在第一正規化的基礎上建立起來的。即滿足第二正規化必須先滿...

資料庫中的正規化

概念歸納 1nf 字段不可分 2nf 有主鍵,非主鍵字段依賴主鍵 3nf 非主鍵字段不能相互依賴 解釋 1nf 原子性 字段不可再分,否則就不是關聯式資料庫 2nf 唯一性 乙個表只說明乙個事物 3nf 每列都與主鍵有直接關係,不存在傳遞依賴 不符合第一正規化的例子 關聯式資料庫中create不出這...