2015-09-20 81 views
0

只是好奇:有一個原因,爲什麼一步不能做所有必要的標準化 ? Isnt歸一化最終是重繪功能依賴(FD)圖嗎?我們從一個FD圖/圖開始,並且我們希望最終得到一個圖(頂點是屬性,屬性a,b之間存在一條邊,如果b是FD上的FD)代表(編輯)BCNF中的關係?編輯:我的意思是:我們從一個FD圖形開始,這是一個圖形配對屬性a,b如果b是FD上的A,也就是說,我們加入a和b的邊緣iff b = f(a )。 從這張圖中,我們想要得到一個圖(FD)_2,其具有某些性狀,相當於已經完全歸一化,即(FD)_2在5NF或6NF中,使用圖和圖之間的圖 - 理論關係給定正常形式。如果我們基本上是將一個圖形映射到另一個圖形。作爲FD的函數,我們是否可以直接使用這種方法來繪製(FD)_2來跳過標準化步驟?跳過規範化的步驟?

+0

@philipxy:ISNT一個FD圖表從所述組屬性以自身的地圖,接合兩個屬性A,B當且僅當B = F(A),即,如果b爲FD上一個? – gary

回答

1

是:標準化可以通過重新排列(超)圖來表徵。它不必通過以某種順序通過正常形式來完成。 (這只是一個常見的誤解。)

從1NF到6NF的連續體上的正常形式是處理有問題的FD(功能依賴性)和JD(聯合依賴性)的那些。可以對它們進行排序,以便如果一個關係值或變量滿足一個表單,則它滿足之前的表單但不一定在之後。目前:1NF,2NF,3NF,EKNF,BCNF,4NF,ETNF,RFNF,SKNF,5NF又名PJ/NF,超強PJ/NF,6NF。這種排序本身無關,分解爲關係值或高正常形式的變量。沒有必要通過一系列的形式來分解。

正常形式只是不同的條件,已發現有用的屬性。而且,正常形式只是那些已經被發現的形式;可能還有其他有用的特性需要加以區分。我們不通過他們正常化現在。 ETNF是2012年!

至於你的圖形特性:

一個FD有設定的屬性決定的。這決定了另一個集合。但是,由於一個人確定其他人是否僅僅確定每個集合恰好包含另一個集合的集合,非正式但明確地確定了其他集合,我們還討論了確定屬性的一組屬性。 FD {...} - > a保存iff a = f(...)。 (可以有零個或多個行列式屬性。)BCNF是存在問題的FD的最高正常形式,但有更高的正常形式是有問題的JD。具有給定組件的JD持有關係,如果它始終是它們的連接。即其含義/謂詞可以表示爲組件的「與」。所以FD {...} - > A成立,如果一個JD擁有對應於含有A = F(...)的意義/謂詞! MVD(多值依賴)對應於某個二進制JD。 5NF意味着每一個擁有的JD都是「隱含在鍵中」(一個技術術語)。有些算法從FD開始直接分解爲2NF,直接分解爲3NF並直接分解到BCNF(具有各種其他屬性,如保存FD)。見the Alice book。可以簡單地通過分解直到不存在不平凡的JD,而不考慮FD來分解爲6NF。

(參見CJ日期的Database Design and Relational Theory: Normal Forms and All That Jazz。)

+0

謝謝,請給我時間仔細閱讀。 – gary