跳至內容

第五正規化

出自Taiwan Tongues 台語維基
這是此頁批准,以及是最近的修訂。

關係資料庫設計的第五正規化(五 NF),閣稱投影-連接正規化(project-join normal form,PJ / NF)是資料庫正規化的一个級別,以去除濟个關係之間的語義相關。一張表滿足第五正規化若是而且唯若伊的逐个連接相依會當由候選鍵推出。

R 連接比起來 \ * { A , B ,…Z },定義做 A , B ,…Z 攏是 R 的屬性的子集,而且 A , B ,…Z 的連接(join)等於 R。R 最後連接相依 \ * { A , B ,…Z } 可由 R 的時陣選鍵捒出來,若是唯一 A , B ,…, Z 每一个攏捾到位矣 R 的超鍵。

表 T 滿足第五正規化意味對伊袂當予無損分解做幾个閣較細的表示。分解了的每一个小表現佮表 T 有仝款的候選鍵的情形予人排除無考慮(做平凡的情形)。

第五正規化佇咧一九七九年由 Ronald Fagin 佇會議論文 _ Normal forms and relational database operators _ 中頭一擺提出。

考慮下例:

三列共同組成做主鍵。這樣子表也滿足第四正規化,因為不存在多值相依:無列(顯然該列自身毋是候選鍵)會當由其他兩列確定。

若無任何規則限制上門推銷員、品牌、產品類型的組合,遐爾仔頂懸三个屬性的咧表對伊講遮的數據是必須的。猶毋過,若假使存在下述的規則:若是上門推銷員經營某一个品牌佮某一个產品類型,該當推銷員著愛經營該品牌製造的該產品類型的商品。這款的情形下,會當共上表分做三个表:

佇咧這个情形下,上門推銷員 Louis Ferguson 無可能拒絕銷售由 ACME 製造的真空吸塵器(Vacuum Cleaner), 假使講伊若推銷 Acme 的其他類型的產品嘛推銷其他品牌的真空吸塵器。

注意這種方式是按怎去除數據趁錢。準講是耶 pháng 箱佮真空吸塵器的上門推銷員 Jack Schneider 開始新增銷 Robusto 品牌。佇咧上頭仔的彼張表中,愛閣增加兩行:( < Jack Schneider , Robusto , Breadboxes > , < Jack Schneider , Robusto , Vacuum Cleaners > )。若佇咧分解了的三張表的設計內底,干焦需要佇咧表現「Brands By Traveling Salesman」中增加一行:( < Jack Schneider , Robusto > )。

用途

干焦佇足少情形下滿足第四正規化的表可能會不滿足第五正規化。這發生佇複雜的真實世界的約束限定了屬性的有效組合,但是袂當佇滿足第四正規化的表現出來的結構當中體現出來。這款表若是袂當正規化做第五正規化,就需要應用程式通過插入、修改、刪除等操作來維護表中的數據的邏輯一致性。相反,滿足第五正規化的表示的設計排除了這款無一致性。

參見

  • 屬性-值系統

參考文獻

進一步來讀冊