複製鏈接
請複製以下鏈接發送給好友

部分函數依賴

鎖定
部分函數依賴(partial functional dependency)是一個數學用語。在關係模式R(U)中,如果X→Y,並且存在X的一個真子集X0,使得X0→Y,則稱Y對X部分函數依賴。 [1] 
中文名
部分函數依賴
外文名
partial functional dependency
屬性集合
設X,Y是關係R
存    在
X→Y

部分函數依賴定義

設有關係模式R(U),U是屬性集,X和Y是U的子集,如果X→Y是一個函數依賴,且對X的任何一個真子集X'都不存在X'→Y,則稱X→Y是一個完全函數依賴(Full Functional Dependency),即Y完全函數依賴於X。記為
反之,如果X'→Y成立,則稱X→Y是部分函數依賴(Partial Functional Dependency),即Y部分函數依賴於X。記為 [2] 

部分函數依賴圖解表示

部分函數依賴可以用圖1示意:屬性集A由屬性
構成(要求至少兩個屬性),表示為
;如果
,且在A中的一個屬性
,那麼,
圖1 圖1

部分函數依賴例題分析

例1 在關係模式Student中,因為Sno不能函數決定Grade,Cno也不能函數決定Grade,但(Sno,Cno)可以唯一地函數決定Grade,所以(Sno,Cno)→Grade是完全函數依賴。因為Sno可以函數決定Sage,所以(Sno,Cno)→Sage是部分函數依賴。
從定義可知,只有當函數依賴的決定方是組合屬性時,討論部分函數依賴才有意義,當函數依賴的決定方是單屬性時,只能是完全函數依賴。
例2 在關係模式S(Sno,Sname,Sage,Sdept)中,函數依賴的決定方是Sno,是單屬性,所以Sno→(Sname,Sage,Sdept)是完全函數依賴,不存在着部分函數依賴。 [2] 

部分函數依賴相關概念

部分函數依賴函數依賴的定義

設R(U)是屬性集U上的關係模式,X,Y是U的子集。若對於R(U)的任意一個可能的關係 r,r 中不可能存在兩個元組在X上的屬性值相等,而在Y上的屬性值不等,則稱“X函數確定Y”或“Y函數依賴於X”,記作X→Y。
一般只能根據語義來確定一個函數依賴。例如,姓名一年齡這個函數依賴只有在沒有同名人的條件下成立,如果允許有相同名字,則年齡就不再函數依賴於姓名了。設計者也可以對現實世界作強制的規定。例如不允許同名人出現,因而使姓名→年齡函數依賴成立,若發現有同名人存在,則拒絕裝入該元組,這在一般情況下是不合情理的。
注意,函數依賴不是指關係模式R的某個或某些關係滿足的約束條件。而是指R的一切關係均要滿足的約束條件。例如,學生選課SC(SNO,CNO,GRADE)關係模式,假定在當前的記載中,每個學生都選了一門課程,我們能不能就此斷言,SNO的屬性值可以唯一地確定CNO值呢?這顯然是不可靠的,因為當前每人只選一門課這一事實並不限定他只能選一門課,只有當制度規定每人只能選一門課時,上述論斷才真正構成一個數據依賴。

部分函數依賴記號和術語

(1)
,但
則稱
非平凡的函數依賴。若不特別聲明總是討論非平凡的函數依賴。
(2)若
則記作
(3)若
不函數依賴於
,則記作
[1] 
參考資料
  • 1.    範劍波.數據庫技術及應用:浙江大學出版社,2007年08月第1版
  • 2.    馮鳳娟.數據庫技術與應用:清華大學出版社,2011.04