數據依賴

數據依賴

數據依賴,數學概念,是通過一個關係中屬性間值的相等與否體現出來的數據間的相互關係,數據依賴是現實世界屬性間相互聯繫的抽象,屬於數據內在的性質。在計算機科學中,數據依賴是指一種狀態,當程式結構導致數據引用之前處理過的數據時的狀態。在編譯學中,數據依賴是數據分析的一部分。

基本介紹

  • 中文名:數據依賴
  • 外文名:Data dependence
  • 定義:數學概念
  • 體現:體現出來的數據間的相互關係
  • 位置:數據分析的一部分
數學定義,計算機學定義,種類,資料庫中的數據依賴,函式依賴,多值依賴,連線依賴,

數學定義

定義:設有一關係模式R(A1,A2,…,An),X和Y均為(A1,A2,…,An)的子集,對於R的值r來說,當其中任意兩個元組u,v中對應於X的那些屬性分量的值均相等時,則有u,v中對應於Y的那些屬性分量的值也相等,稱X函式決定Y,或Y依賴於X,記為X->Y。
例:有關係,學生(學號S#,姓名SN,系名SD),子集X(學號S#),子集Y(系名SD)。
每個學生有唯一的一個學號,學生中可以有重名的姓名,每個學生只能屬於一個系,每個系有唯一的系代號。有此,可以找出學生關係模式中存在下列函式依賴:
S#->SN;S#->SD
例:有關係,學校簡況(學號S#,系名SD,系主任MN,課程CN,成績G)。可寫出函式依賴:
S#->SD;SD->MN;S#,CN->G
根據函式依賴的不同性質,函式依賴可分為完全函式依賴、部分函式依賴和傳遞函式依賴。
2.2 完全函式依賴
定義:在R(U)中,如果X->Y,對於X的任意一個真子集X’,都有X’不能決定Y,則稱Y對X完全函式依賴,記為XY 。
例:(S#,CN)->G
2.3 部分函式依賴
定義:在R(U)中,如果X-> Y,但Y不完全函式依賴於X,則稱Y對X部分函式依賴。
2.4 傳遞函式依賴
定義:在R(U)中,若且唯若X-> Y,Y->Z時,稱Z對X傳遞函式依賴。
例:描述學生(S#)、班級(SB)、輔導員(TN)的關係U(S#,SB,TN)。一個班有若干學生,一個學生只屬於一個班,一個班只有一個輔導員,但一個輔導員負責幾個班。根據現實世界可得到一組函式依賴:
F={S#->SB,SB->TN}
學生學號決定了所在班級,所在班級決定了輔導員,所以輔導員TN傳遞函式依賴於學生學號S#。
數據依賴還包括多值依賴和連線依賴兩種形式。
--------------------------------------------------------------------------------------------------

計算機學定義

數據依賴是指一種狀態,當程式結構導致數據引用之前處理過的數據時的狀態。在編譯學中,數據依賴是數據分析的一部分。
解說:假設有如下表述S1和S2,
(I (S1) ∩ O(S2)) ∪ (O(S1) ∩ I(S2)) ∪ (O(S1) ∩ O(S2)) ≠ Φ
那么S2依賴S1。I(Si)是記憶體位置的集合,可由Si和S2讀
O(Sj)是記憶體地址的集合,由Sj寫,
則這裡S1和S2就有一個必須遵守的執行順序。

種類

數據依賴有三種,
1. 流依賴(flow dependency),一個變數在一次表達式中賦值或修改然後用在後來的另一個表達式中。例
a=b*c
...
d=a-e
2.反依賴(anti dependency),一個變數在一個表達式中被使用然後在後來一個表達式中被修改賦值。例
a=b*c
......
b=d+e
3.輸出依賴,一個變數在一表達式中被修改賦值然後又在後來另一個表達式中被修改值,例
a=b+c
......a=d-e

資料庫中的數據依賴

數據依賴是數據之間的相互制約關係,是一種語義體現,主要分為函式依賴(FD)、多值依賴(MVD)和連線依賴(JD)。

函式依賴

兩個實例化的屬性集X,Y,如果屬性集X中的兩個元組取值相同,必有對應的另外一個屬性集Y中元組取值相同,則稱Y函式依賴於X函式。
特別值得注意的是,如果屬性集X中不存在兩個取值相同的元組集合,則Y必定依賴於函式X,且函式X的屬性集為超鍵。
平凡函式依賴和非平凡函式依賴。平凡函式依賴:如果Y依賴於X,同時Y是X的子集,那么稱X -> Y 為平凡函式依賴;非平凡函式依賴:Y不是X的子集。對於任意關係模式而言,平凡函式依賴是必然成立的,其並不反映新的語義特徵,因此我們一般不討論平凡函式依賴。
完全函式依賴和部分函式依賴。完全函式依賴表示的就是函式X的屬性集構成了候選鍵。其中形式化的表示就是如果對於X的任何一個子集Z,都有Y不依賴於X,則稱Y完全函式依賴於X。如果Y不完全函式依賴於X,則稱Y部分函式依賴於X。完全函式依賴的左部構成主鍵,不包含冗餘的屬性。
傳遞函式依賴和直接函式依賴。如果Y函式依賴於X,Z函式依賴於Y,其Y不是X的子集,X不依賴於Y,則稱Z傳遞依賴於X,否則稱Z直接函式依賴於X。
函式依賴的邏輯蘊涵。
,即對於關係模式上的函式依賴集合F,只要X→Y是一個函式依賴,那么必然可以推導認為F邏輯蘊涵X→Y。
函式依賴集合的閉包。由函式依賴集合F所邏輯蘊涵的全部函式依賴所構成的集合稱之為F的閉包。
。閉包的性質:1. F 屬於 F+,這是因為根據閉包的定義F中的每個函式依賴必定也在中F+;2. (F+)+=F+,該性質說明閉包運算是冪等的,即F經過任意多次的閉包運算後其結果仍然等於F+;3.如果F=F+,則稱F是完備的。
函式依賴的推理規則(Armstrong公理):
設U是關係模式R的屬性集,F是R上的函式依賴集,則有:
A1(自反律):如果Y X U,則X→Y成立;
A2(增廣律):如果X→Y成立,且Z U,則XZ→YZ成立;
A3(傳遞律):如果X→Y,Y→Z成立,則X→Z成立。

多值依賴

定義:對於某個關係上的三個屬性A, B, C。如果屬性B,C的取值都不單一,同時B的取值與C無關,也就是B依賴於A,隨著A取值的變化可以取不同的值。
形式化描述:設R(U)是屬性集U上的一個關係模式。X,Y,Z是的U的子集,並且Z=U-X-Y,如果對R(U)的任一關係r,都有如下性質:如果r中存在2個元組s、t,使得:s[X]=t[X] ,則r中必存在元組u,使得: (1) s[X]=t[X]=u[X] (2) u[Y]=t[Y] 且 u[Z]=s[Z] (即交換s、t在Y上的值得到的2個元組必在r中) 則稱關係模式R滿足多值依賴X→→Y。
注意事項:多值依賴會導致數據冗餘和更新異常,因此在進行數據模式設計的時候,要消除多值依賴。一般使用的方法是建立兩個關係,讓每個關係只存儲一個多值屬性的數據。
推導規則:
A4:互補律(MVD) 如果X→→Y,則X→→(U-XY)
A5:擴展律(MVD) 如果X→→Y且VW,則WX→→VY
A6:傳遞律(MVD) 如果X→→Y且Y→→Z,則X→→(Z-Y)
下面兩條為(FD+MVD)公理:
A7:如果X→Y,則X→→Y,即FD是MVD的特例
A8:如果X→→Y、Z→→Y且對某個與Y不相交的W有:W→Z,則X→Z

連線依賴

設關係模式R、Ri的屬性集是U、Ui,UiU(1≤i≤n).若R每個容許的實例r均滿足r=∏U1(r)∞...∞∏Un(r)則稱R滿足連線依賴,記作∞(R1,...,Rn).若其中某個Ui=U,則稱連線依賴是平凡連線依賴。 多值依賴也是連線依賴。

相關詞條

熱門詞條

聯絡我們