函數依賴
之前學函數依賴的時候感覺很容易就理解了,但是過了一兩天再回想的時候就什么都忘的一干二凈,思來想去還是沒有真正的理解,所以今天只能在網上查一些資料看看,再深入理解並記錄一下
定義:
既然是數據庫,那么函數依賴自然是存在於數據庫表中的關系,或者說是數據庫表中的字段的關系,即函數依賴是指關系中屬性間(或者說是表中字段間)的對應關系。
官方定義:設一個關系為R(U),X和Y為屬性集U上的子集,若對於X上的每個值都有Y上的一個唯一值與之對應,則稱X和Y具有函數依賴關系,並稱X 函數決定Y,或稱Y函數依賴於X,記作X→Y,稱X為決定因素。
理解:在一個表中,將所有字段分為兩部分X和Y,如果X中的一條數據可以唯一確定Y中的一條數據,則稱X和Y具有函數依賴關系,並稱為X函數決定Y,或Y函數依賴於X,記為:X一>Y,X 為決定因素
函數依賴的分類:
- 完全函數依賴
- 設有關系模式R(U),U是屬性集,X和Y是U的子集,如果X→Y是一個函數依賴,且對X的任何一個真子集X'都不存在X'→Y,則稱X→Y是一個完全函數依賴(Full Functional Dependency),即Y完全函數依賴於X
- 即在一張表中字段分為 X 和 Y 兩個集合,X集合數據唯一確定一條數據 Y ,X集合字段中的任何一個字段都不能確定唯一一條數據 Y ,就稱 Y 完全函數依賴於 X
- 部分函數依賴
- 設有關系模式R(U),U是屬性集,X和Y是U的子集,如果X→Y是一個函數依賴,且對X的任何一個真子集X'都存在X'→Y,則稱X→Y是一個部分函數依賴(Full Functional Dependency),即Y部分函數依賴於X
- 即在一張表中分為 X 和 Y 集合,X集合數據唯一確定一條數據Y,並且X中任意字段或組合字段都可以唯一確定Y集合數據,則稱 Y 部分函數依賴於 X
- 傳遞函數依賴
- 在關系模式R(U)中,設X,Y,Z是U的不同的屬性子集,如果X確定Y、Y確定Z,且有X不包含Y,Y不確定X,(X∪Y)∩Z=空集合,則稱Z傳遞函數依賴(transitive functional dependency) 於X。
- 即在一張表中,字段分為 X、Y、Z,如果X可以決定Y,Y決定Z,但是Y不能決定X,則稱Z傳遞函數依賴於X