多值依賴與部分函數依賴


多值依賴與部分函數依賴 轉

終於理解了多值依賴 轉自http://blog.csdn.net/smstong

"

多值依賴的定義:

      設R(U)是一個屬性集合U上的一個關系模式,X, Y, 和Z是U的子集,並且Z=U-X-Y,多值依賴X->->Y成立當且僅當對R的任一個關系r,r在(X,Z)上的每個值對應一組Y的值,這組值僅僅決定於X值而與Z值無關。

      若X->->Y,而Z=空集,則稱X->->Y為平凡的多值依賴。否則,稱X->->Y為非平凡的多值依賴。

可以看出,如果把上面的一組改為一個,那么多值依賴就變成了函數依賴。當然一個值組成的組也是組,所以說,函數依賴是多值依賴的特殊情況。

如下表:

                     課程C                                   教師T                              參考書B

                    數學                                      鄧軍                                數學分析

                    數學                                      鄧軍                                高等代數

                    數學                                      鄧軍                                微分方程

表中,U = C+T+B,(C,T)確定一組B,但是這組B其實與T無關,僅由C確定,所以(C,T)->->B。又因為T不是空集,所以(C,T)->->B為非平凡多值依賴。

要想消除多只依賴,可以分解為:(C,T), (C,B)及

表1:

                  課程C                  教師T

                  數學                     鄧軍

表2:

                課程C                    參考書B

                數學                      數學分析

                數學                      高等代數

                數學                      微分方程

對於R中的每個非平凡多值依賴X->->Y(Y不屬於X),X都含有候選碼,則R屬於4NF。

分析:對於每一個非平凡多值依賴X->->Y,X若含有候選碼,也就是X->Y,所以4NF所允許的非平凡多值依賴是函數依賴。

"

.

百度知道

"

函數依賴是唯一確定的關系,例如在一個表  授課(課程號,課程名,課程學分,教師號,教師姓名,參考書號,參考書名)。當然這個表的主鍵是(課程號,教師號,參考書號)

課程名和課程學分函數依賴課程號,也就是說課程號唯一確定名字和學分;

同理,教師姓名函數依賴教師號;參考書名函數依賴參考書號。

但是,教師號可能多值依賴課程號,因為給定一個(課程號,參考書號)的組合,可能有對應多個教師號。這是因為多個老師可以使用相同或不同的參考書上同一門課。

簡單點講,函數就是唯一確定的關系;多值依賴卻不能唯一確定。

"

.

我是看了百度知道才明白的, 標公式的都去使啊看都看不懂, 部分函數依賴是一種特殊的多值依賴, 多值依賴是有多個教師依賴到同一個(課程號,參考書號)組合里了, 而部分函數依賴只是一個教師依賴一個(課程號,參考書號), 就是單單老王依賴於(01,數據庫)中的01了, 這是部分函數依賴, 如果還有個老五也依賴於(01,數據庫)中的01的話, 就是多值依賴了, 有n個值部分函數依賴於一個東西上了

.

貼一個分解為4NF的步驟

"

一般情況求主鍵只看函數依賴,但一般也不是與多值依賴無關
你說的問題有點象將一個關系分解成4NF,分解成4NF的步驟
1.先將該關系模式分解成BCNF,消除了基於函數依賴的多值依賴不包含碼,因為各個子模式中的函數依賴的左部都包含碼(書上有分解成BCNF的方法)
2.再在各個分解成BCNF的關系模式中,看是否有不是基於函數依賴的非平凡的多值依賴,也就是說例如一個子模式存在X-->Y,X-->Z,Z=U-X-Y,Z非空集,此時必定X不->Y且X不->Z,
分解成(X,Y)和(X,Z)就將該子模式分解成4NF了,理論上是這樣,當然在一般的數工考試題目中不需要這樣,有時當分解成3NF和BCNF時,原有的多值依賴就破壞了.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM