0
的無損分解
我試圖找到下面的關係相對於該3NF無損分解到函數依賴:3NF和關係,函數依賴
首先,我開始通過導出密鑰從上面給出的函數依賴關係。我認爲密鑰如下:
{L,T},{E,T}和{T,M},因爲關係中的所有屬性都可以使用這些密鑰中的任何一個來獲得。
現在,3NF的,我熟悉的定義是:
A relation schema R is in 3NF if, whenever a function dependency X -> A holds in R, either
(a) X is a superkey of R, or
(b) A is a prime attribute of R.
如果我們將此運用到這個問題給出的文件描述符那麼下列成立:
- LT - > E滿足(a)因爲LT是關鍵(因此是超級關鍵)。
- ET - > L滿足(a)因爲ET是一個關鍵(因此是一個超級鍵)。 TM - > E滿足(a),因爲TM是關鍵(因此是超級關鍵詞)。
- E-> M滿足(b),因爲M是一個主要屬性。
鑑於此,如何獲得關於函數依賴關係的3NF無損分解?我懷疑我可能是錯誤的,因爲我認爲這個關係是在3NF中,因爲存在傳遞依賴關係,但不是100%確定的。
如果有人能夠就我可能出錯的地方提出意見,我們將不勝感激。
所以我假設沒有無損分解關係到BCNF,其中依賴關係被保留? – cp101020304
實際上,如果我們使用所有書中定義的最常用的算法(「分析」算法),依賴關係就會丟失。然而,還有其他算法在實踐中未被使用,它們可能在BCNF中產生不同的分解。其中之一是[Tsou和Fisher](http://portal.acm.org/citation.cfm?doid=990511.990513),在這種情況下,它產生分解:R1(MLT),R2(ELT),它有更多的冗餘,但保留了依賴關係。正如我所說的,這個算法並沒有被使用,因爲它產生了「自然」的分解,並且經常有太多的表格。 – Renzo
最後一點:存在一些模式,我們可以證明BCNF中不存在保留依賴關係的分解(這些在許多書中都有顯示),但是一般來說,決定是否存在保留分解的函數依賴關係通用關係是一個NP難題(見[wikipedia](https://en.wikipedia.org/wiki/NP-hardness)),所以我們不知道任何多項式算法來解決這個問題。 – Renzo