函數依賴概念理解與判斷


函數依賴概念理解與判斷

函數依賴:

符號表示:X→Y

定義:6.1設R(U)是屬性集U.上的關系模式,X, Y是U的子集。若對於R(U)的任意
一個可能的關系r,r中不可能存在兩個元組在X上的屬性值相等,而在Y上的屬性值不等,
則稱X函數確定Y或Y函數依賴於X,記作X→Y。

理解定義:設X,Y為兩個集合,對於集合X中的所有元素,在Y中都能得到對應。

①當X值不同時:X既可以對應Y的相同元素,也能對應不同元素。

②當X值相同時:X只能對應Y中的相同元素。

判斷是否是函數依賴:

當然,偶認認真真讀了幾遍概念還是一臉懵逼QAQ但總不能不會,畢竟要還要應用,所以下面結合了比較容易理解的屬性間的關系來使用它,也就是通過一對一、一對多、多對一、多對多的關系來判斷兩個集合是否存在依賴關系。

首先來死背下面3條關系:

1.X和Y是一對一的關系,則X→Y,Y→X

2.X和Y是多對一的關系,則X→Y

3.X和Y是多對多或是一對多的關系,則X與Y不存在依賴關系~

實例:對於表Student(sno,sname,ssex,cno,scourse,grade),先說明一個大前提,這里沒有任何規定,因此默認姓名、課程名、分數和性別在表中允許存在相同的值,學號和課程號都不允許存在相同的值。

判斷下列依賴關系是否正確:

①sno→sname ②sno→ssex ③(sno,sname)→scourse ④(sno,cno)→grade

①sno→sname:一個姓名可以決定多個學號,一個學號只能決定一個姓名,這里不要懵哇,想想,2個同名的人是不是有兩個學號!!因此學號和姓名是多對一的關系,所以有sno→sname

②sno→ssex:一個性別可以決定多個學號,一個學號只能決定一個性別,所以有sno→ssex

③(sno,sname)→scourse:一個姓名和一個學號可以決定多門課程,一門課程決定多個學號和姓名選修,因為一個學生能夠選修多門課程嘛,一門課程也能被多個學生選修,所以學號和姓名二者跟課程是多對多的關系,不存在函數依賴,不能得出(sno,sname)→scourse

④(sno,cno)→grade:一個姓名和一個課號可以決定一個分數,一個分數可以決定多個姓名和課號,因為一個學生選修一門課考完試當然只有一個成績啦,一個分數能夠有很多人考到,比如100分就特別多(干巴爹!你就是其中一個!),因此學號和課號二者跟分數是多對一的關系,因此可以得出,(sno,cno)→grade

so懂了叭還不懂偶也莫得了xddd

非平凡函數依賴:

符號表示:X→Y,Y⊊X

定義:當關系中屬性集合Y不是屬性集合X的子集時,存在函數依賴自X→Y,則稱這種函數依賴為非平凡函數依賴。

理解定義:理解了函數依賴就好理解這個了,X決定Y,而Y不是X的子集。

實例:選擇題:在關系SC(Sno,Cno,Grade)中,非平凡函數依賴包括()。

A.(Sno,Cno)→Sno

B.(Sno,Cno)→Cno

C.(Sno,Cno)→Grade

D.(Sno,Grade)→Cno

先看AB,雖然AB的依賴關系都是正確的,但是A中Sno作為Y,(Sno,Cno)作為X,Sno存在(Sno,Cno)中,也就是X→Y,Y⊆X,因此屬於平凡函數依賴,B同理~,C的依賴關系也是正確的,還不懂咋判斷依賴關系往上看哇233,Grade也不在(Sno,Cno)中,所以有X→Y,Y⊊X,故選C,再看D,一個學號和一個分數可以決定多個課號,一門課號可以決定多個學號和分數,比如偶的數據結構考了80分,會計學基礎考了80分(滑稽,好吧嚴肅點把會計學當然程序設計語言吧,畢竟偶只是計算機專業),數據結構可以有很多名學生的考試成績,因此,(Sno,Grade)與Cno是多對多的關系,不存在依賴關系,本身式子糾錯啦233

平凡函數依賴:

定義:X→Y,但Y⊆x,則稱X→Y是平凡的函數依賴。對於任一 關系模式,平凡函數依賴
都是必然成立的,它不反映新的語義。若不特別聲明,總是討論非平凡的函數依賴。

偷懶:這里就不一一理解啦,跟非平凡依賴差不多相反的啦der~~

完全函數依賴:

書上講得好哇哈哈哈哈哈

1587650366550

部分函數依賴:

講得好哇蛤蛤哈

1587650395192

完全函數依賴和部分函數依賴的判斷:

對於表Student(sno,cno,Grade,Sdept),默認分數和系別在表中允許存在相同的值,學號和課程號都不允許存在相同的值。

1587651560254

(字丑該挨打

傳遞函數依賴:

1587651850199

對於表Student(sno,cno,Grade,Sdept),默認分數和系別在表中允許存在相同的值,學號和課程號都不允許存在相同的值。

1587652137584


免責聲明!

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



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