可以將2NF
中的每一個關係都製作成3NF
,具有無損連接和依賴保存?每2NF關係可以做成3NF關係嗎?
編輯:
有關係R
與函數依賴集F
的。 R
在2NF
中,但不在3NF
中。我們可以將關係R
分解爲更小的關係,它們在3NF
中,並且與依賴關係構成具有無損連接?每一次都可以做到嗎?
可以將2NF
中的每一個關係都製作成3NF
,具有無損連接和依賴保存?每2NF關係可以做成3NF關係嗎?
編輯:
有關係R
與函數依賴集F
的。 R
在2NF
中,但不在3NF
中。我們可以將關係R
分解爲更小的關係,它們在3NF
中,並且與依賴關係構成具有無損連接?每一次都可以做到嗎?
總之:是的 - 它可以做到。
更長的解釋。
假設我們有關係R
這是介於x -> y
之間。假設R
是不是在2NF,新的關係P
和Q
必須存在,其中P: x -> z
和Q: z -> y
和P
,Q
切不可瑣碎。這裏x
,y
,z
對應的功能實體(它們不是「列」在通常情況下,他們也可能是「列」,如果SQL表方面講)。
讓我們假設也是P
和Q
沒有傳遞子關係(如R
有) - 即它們屬於3NF(否則,將改變什麼,我們還是要更深入,再次重複所有,直到發現子沒有傳遞性關係的關係)。
因此,我們有:
R(x) = y,
P(x) = z, => Q(P(x)) = y
Q(z) = y
這是通過傳遞關係的定義。所以,R
將被分成兩個關係P
和R
(因爲只有P
和Q
足以建立關係x -> y
,所以R
是冗餘的,可與P
和Q
被替換爲這兩條的關係)。我們的P
和Q
在3NF,因此,我們有R
轉換爲3NF關係。實際上,這是工作,它應該在歸一化2NF→3NF時完成(即以這種方式找到並解決所有傳遞關係)。
其實每個關係都可以轉換成3NF狀態。 –
'每個2NF關係可以變成3NF關係嗎?'你想問怎麼轉換? –
問這裏http://cs.stackexchange.com/questions得到更好的答案 –