2017-09-22 110 views
-1

我從一個關係的兩個函數依賴:從非平凡的FD避免微不足道的MVD?

meetid -> pid 
meetid, pid -> status 

對於關係會議(meetid,PID,狀態)

我想用促銷方法,使從這個多值依賴。問題是,我不知道如果meetid ->> pid是合法的在這種情況下做,因爲互補規則將使其他MVD非法(我認爲):meetid ->> status

另一個FD將創建一個依賴,我認爲這是一個微不足道的MVD。

meetid,pid ->> status 

是這種關係註定了他們要推動的MVD的時候,還是我失去了在這個過程中什麼是微不足道?

+0

請發佈您正在關注的特定方法版本或對其的引用。既然你的問題涉及跟隨它,我們應該確切地知道你正在嘗試做什麼。否則,我們只能希望通過回答另一個版本來解決您的問題。 「讓其他MVD非法」是什麼意思?你爲什麼認爲這可能是這樣?你認爲有一部分程序談到「製作MVD非法」嗎?那麼爲什麼要擔心呢?只要按照程序。如果您不確定該程序或如何遵循該程序,請告訴我們您是如何遵循它的。 – philipxy

+0

我實際上意識到我使用了一個錯誤的方法/沒有製作最小的候選鍵。 我對MVD的看法是非法的,那個meetid的值不能確定狀態。但meetid是唯一的候選關鍵,這不再是一個問題。 Renzo給出了一個很好的說明/回答,詳細說明了我在方法中做了什麼錯誤,所以我希望這樣可以。 – Tobias

回答

1

兩個依賴:

meetid → pid 
meetid, pid → status 

是不是最小的,因爲它們可以被簡化(例如通過計算規範罩):

meetid → pid 
meetid → status 

,並由此我們也知道,meetid是關係的唯一候選關鍵。從FD X → Y人們總是可以推導出MVD X →→ Y,所以,你同時擁有MVD相關性:

meetid →→ pid 
meeditd →→ status 

(請注意,第二個也可以從第一個由互補得出)。也

注意,他們都不是一個平凡的MVD,因爲MVD X →→ Y是微不足道的(即總是如此),如果任一Y是空集或XY有關係的所有屬性。

此外,我們可以注意到模式是在4NF中,因爲它在BCNF中,並且非平凡MVD的每個左手邊都是超級鍵。

最後,注意函數關係可以「提升」到多值依賴,讓我們也有meetid, pid →→ status(和是微不足道的)。

+0

是的,我發佈後不久就意識到我對我的FD有錯誤的做法,而且meetid實際上是唯一的候選關鍵。雖然謝謝澄清! – Tobias