回答
基於這些依賴關係,唯一的關鍵是{a,b}。因此{a,b,c,d,e}具有傳遞依賴性:ab-> d和d-> e。由於它具有傳遞依賴性,{a,b,c,d,e}不在3NF中。
這是可能是在2NF,但我不能確定不知道列的含義或知道代表值。例如,如果c列包含不同數量的電話號碼,則它可能甚至不在1NF中。 (在計算機科學家庭作業中,通常可以假設每列都包含一個值,在SO上,通常不能)。
當規範化一個關係時,會根據依賴關係投影屬性的一個子集。 (基於功能依賴關係在你的情況。)所以你可能會取代原來的關係與這兩個。
- {A,B,C,d}
- {d,E}
其中第一個可能是在至少4NF。第二個可能在6NF。 (不過,見上文第2段)。
歸不說,你可以從2NF移動到3NF 並沒有更高,從3NF到BCNF 並沒有更高,從BCNF到4NF 並沒有更高,等等。但這是常態化工作常見的誤解。在你的情況下,分解原始關係在4NF(至少)中產生一個關係,在6NF中產生一個關係。根據定義,這兩個都是3NF中的也,但是沒有一種正常(咳嗽)方式來分解您的2NF關係,以獲得3NF 中的關係而不是更高的。
很好,但是從3NF和BCNF會選擇什麼? – 2012-01-02 15:17:40
如果不刪除傳遞依賴項,則它不能位於3NF或BCNF中。如果刪除傳遞依賴項,則兩個表都可能超出BCNF。所以你不會選擇3NF或BCNF。 – 2012-01-02 17:40:09
正常形式的目標是正式指定和保證模式的某種質量。例如,僅滿足第二個標準形式條件的模式包含不屬於模式的屬性/函數依賴關係,導致冗餘和異常。 原始模式:({A,B,C,D,E,F},{A→BC,C→AD,E→ABC,F→CD,CD→BEF,AB→D} {A,C,E,F},候選鍵:{A},{C},{E},{F} 非黃金屬性:{B,d}
Normalform:必須假設其他正態分佈。
Normalform:每個非主要屬性必須完全功能依賴於每個候選鍵。
模式是肯定的第二個正常形式!
Normalform:對於每個函數依賴α→βα必須是一個超密鑰或在β-側的每個屬性必須是微不足道的或質密鑰屬性。
來自A→B C的α方{A}是模式的超級鍵(即,密鑰至少包含候選密鑰的屬性)。
來自C→A D的α側{C}是模式的超級密鑰(即,密鑰至少包含候選密鑰的屬性)。
來自E→A B C的α方{E}是模式的超級密鑰(即,密鑰至少包含候選密鑰的屬性)。
來自F→C D的α側{F}是該模式的超級密鑰(即,密鑰至少包含候選密鑰的屬性)。
來自C D→B E F的α方{C,D}是模式的超級密鑰(即,密鑰至少包含候選密鑰的屬性)。
來自A B→D的α側{A,B}是該模式的超級密鑰(即該密鑰至少包含候選密鑰的屬性)。
該模式至少在第三正常形態!
Boyce-Codd-Normalform:對於每個函數依賴關係α→βα側是否必須是超級鍵或者函數依賴性必須是平凡的。
The α-side {A} from A → B C is a superkey of the schema (i.e. the key contains at least the attributes of a candidate-key).
The α-side {C} from C → A D is a superkey of the schema (i.e. the key contains at least the attributes of a candidate-key).
The α-side {E} from E → A B C is a superkey of the schema (i.e. the key contains at least the attributes of a candidate-key).
The α-side {F} from F → C D is a superkey of the schema (i.e. the key contains at least the attributes of a candidate-key).
The α-side {C, D} from C D → B E F is a superkey of the schema (i.e. the key contains at least the attributes of a candidate-key).
The α-side {A, B} from A B → D is a superkey of the schema (i.e. the key contains at least the attributes of a candidate-key).
- 1. 如何寫A :: B :: C => D給定A :: B :: C和(A,B,C)=> D?
- 2. 使用java將字符串[] str = {「a」,「b」,「c」,「d」,「e」,「f」}映射爲{a = b,c = d,e = f}流
- 3. SQL條件:(A = B AND C LIKE%D%)或(A LIKE%B%和C = D)
- 4. PHP,如果A則B和C別的d和E
- 5. 爲什麼alert([「a」,「b」,「c」,「d」,「e」] [[1,2],3,4])在javascript中輸出e?
- 6. 在c編程(A^B^C)/(D * E)中插入後綴轉換
- 7. 如何計算SonarQube A,B C,D和E評分?
- 8. A,B,C,D分組內的不同的E,F?
- 9. 當Alphabates(A,B,C,D,E,F)出現在號碼
- 10. 合併路徑與Python,從/ A/B/C + C/d到/ A/B/C/d
- 11. SVG變換=矩陣(a,b,c,d,e,f)的寬度和高度
- 12. 從5,2,20,6,6到B,A,D,C,C
- 13. 爲什麼「{1:'a',True:'b',1.0:'c',1.00:'d'}」評估爲「{1:'d'}」?
- 14. 如何讓mod rewriteconds做'(A和B)或(C和D)'而不是'A和(B或C)和D'?
- 15. Haskell函數組合 - (a - > b) - >(a - > c) - >(b - > c - > d) - >(a - > d)
- 16. 從{a-b,b-c,c-a}改變爲{(a,b),(b,c),(c,a)}?
- 17. Neo4j - apoc.algo.dijkstra - 從a到b,但通過c,d,e等的最短路徑
- 18. 對稱字典其中d [a] [b] == d [b] [a]
- 19. 正常化具有5個屬性A,B,C,D和E的表格
- 20. 爲條件執行MCDC(A && B && C)|| D
- 21. 對於A,B在C,d的Python
- 22. 如何以任意精度計算任意大的整數A,B,C和D的(A/B)的(C/D)根?
- 23. 如何標準化範圍[a,b]到[c,d],其中a映射到d,b映射到c
- 24. RegEx(a + b)^ n(c + d)^ m匹配的是什麼?
- 25. 「a,b,c」.split(「,」)優於[「a」,「b」,「c」]的優點是什麼?
- 26. 布爾邏輯簡單化,爲什麼A E U + A E U + A E U = E(A + U)
- 27. PHP變換陣列'a','b','c'到'a/b/c','a/b','a'
- 28. 查找函數I(a,b,c,d)積分的四維最小值(a,b,c,d)
- 29. a + = b和a = + b之間的區別是什麼,a ++和++ a?
- 30. 如何優化查詢,如select * from(where,a,b,c,d,e,f ....)中的字段?
更多的細節會很棒。 – ALH 2011-12-25 14:26:25