資料庫中轉化為3NF的幾個分解演算法

2021-09-11 19:47:10 字數 626 閱讀 7860

【例】關係模型r,u=,f=

第一步:首先計算出f的最小依賴集(演算法詳見最小函式依賴),得到f'=。

第二步:觀察u中是否有屬性不在f'中的出現,如果有,則這個個屬性組成一對關係r,並在原來的u中刪除這些屬性。而例子中u中的屬性都出現在f中,則可以跳過這一步。

第三步:對f'中的函式依賴,把左邊的相同分為一組,一組**現的所有屬性為乙個關係。如f=,左邊都為a的分為一組,出項的所有屬性組為乙個關係r。例題中左邊都不相同,所以乙個函式依賴組為乙個關係得到轉化為3nf的保持依賴分解r1,r2,r3

第一步:先將r轉化3nf的保持函式依賴的分解,由演算法一得出r1,r2,r3。

第二步:求出f的候選碼(演算法相見候選碼演算法)得出候選碼x為ad和ae。

第三步:將候選碼單獨組成關係得r4和r5,然後與保持函式依賴後的分解取並集。得r1,r2,r3,r4,r5。

第四步:觀察新組成的分解模式中,是否存在包含關係,有則去掉被包含的。如r3,r4,r5都包含於r2,則刪去,最終得到轉化3nf的既有無損連線性又保持函式依賴的分解r1,r2。

資料庫複習 3NF分解演算法

輸入 關係r和其上成立的函式依賴集f。輸出 又r分解出的關係集合,其中每個關係均屬於3nf。分解具有無損鏈結和依賴保持性質。方法 依次執行下列步驟 找出f的乙個最小基本集,記為g。對於g中的每乙個fd x a,將xa作為分解出的某個關係的模式。如果第2步分解出的關係的模式均不包含r的超鍵,則增加乙個...

資料庫 第三正規化(3NF)

第三正規化的表需要滿足以下條件 create table customers cust id int not null,cust name varchar 20 not null,dob date,street varchar 200 city varchar 100 state varchar 1...

(二)資料庫正規化3NF簡解

表 實體 字段 列 屬性 3nf設計原則 和 表關係 1 第一正規化 1nf 字段 字段原子性。最小的實際意義的文字單元指資料庫表的每一列都是不可分割的基本資料項,屬性 不可分割,不可二義!2 第二正規化 2nf 表 行的原子性,元組 表,實體的原子性。資料庫表中的每個例項或行必須可以被唯一地區分。...