在說公理系統前,要理解函式依賴的概念(可以看我部落格裡面講正規化的文章也有提到函式依賴的定義)
理解是,我們在r裡面任意找乙個r關係,對於這個關係的元組s和t,當s和t在屬性(組)x上面相等,則s和t在y屬性(組)上也相等。這樣被稱為,x函式確定y函式或者說y函式依賴於x函式(x->y).
理解是,在r關係模式裡面,u是屬性集,f是函式依賴集(一些函式依賴組成),在這個關係模式裡面,如果所有關係都滿足 x->y這乙個函式依賴,則成為f邏輯蘊含x->y。
例如
r: u = f=
則有,f邏輯蘊含a->b,ab->b,a->c
理由是:a->b是在f函式依賴集裡面顯式給出的,ab->b b屬性式ab的乙個子集,所以ab必然決定b, a->c則是通過函式依賴傳遞得到的。
它是一套推理規則,是模式分解演算法的理論基礎,
以下是公理系統的重要規律和推論
自反律(reflexivity):若y x u,則x →y為f所蘊含。
//x包含y,即y是x的子集,所以必然有x決定y
增廣律(augmentation):若x→y為f所蘊含,且z u,則xz→yz為f所蘊含。
//可以在函式依賴兩邊加一樣的屬性。
傳遞律(transitivity):若x→y及y→z為f所蘊含,則x→z為f所蘊含。
合併規則:由x→y,x→z,有x→yz
偽傳遞規則:由x→y,wy→z,有xw→z。
分解規則:由x→y及 z含於y,有x→z。
有效性/確定性:函式依賴集f根據公理推出的每一條函式依賴都是正確的,而且都在f的閉包中。
完備性:函式依賴集f閉包中所有的函式依賴都可以用公理匯出。
定義:若f為關係模式r(u)的函式依賴集,我們把f以及所有被f邏輯蘊涵的函式依賴的集合稱為f的閉包,記為f+。函式依賴的閉包指f所邏輯蘊含的所有成立的函式依賴,而對於平凡函式依賴(如 (a,b)—>a )都被f所邏輯蘊含,即便f是乙個空集,其閉包也包含很多函式依賴
這樣把閉包的所有成員全部羅列出來通常是沒有很大意義的。
定義:設f位屬性集u上的一組函式依賴,x含於u,則*例如稱為是屬性集x關於函式依賴集f的閉包
在f確定的情形下,也可以寫成x+
r: u = f=
則x關於函式依賴集f的閉包是abc(的簡寫)
因為a->a,a->b,a->c都可以直接或者間接得出
前面提及是羅列出閉包的所有成員是不實際的,有很多,而且是意義不大的一件事情。但是我們如果真的要表示乙個閉包時該怎麼辦呢?或者說我們在要判斷乙個函式依賴是否成立(是否在乙個函式依賴集裡面)時,我們要怎麼求解呢?
接下來的定理,它將函式依賴是否成立轉化為屬性集閉包的問題
說明:x決定y當且僅當y時x屬性集閉包的乙個子集 或者可以說, y要在x屬性集閉包裡面,才可以說x確定y.
這樣我們就把本來要計算乙個函式依賴閉包的問題,轉化位了乙個屬性集閉包的問題。
對於屬性集閉包的求解
我們提供一套演算法:
解
資料依賴的公理系統
學習資料依賴的公理系統是進行模式分解的演算法的理論基礎。而armstrong公理系統是乙個具有有效性和完備性的公理系統。u是屬性總體,f是函式依賴,對於r推理規則如下 a1 自反律 若y x u,則x y為f所蘊涵。a2 增廣律 若x y,且z u,則xz yz為f所蘊涵。a3 傳遞律 若x y以及...
資料庫資料依賴公理系統
資料依賴使關係規範化的基礎 定義 對於滿足一組函式依賴f的關係模式r,其任何乙個關係r,若函式依賴x y都成立,即r中任何裡任何個二元組t,s,若t x s x 則t y s y 則稱f邏輯蘊含x y 顯示的邏輯蘊含 直接的函式依賴 與隱式的邏輯蘊含 推導的函式依賴 自反律 若yy為f所蘊含 增廣律...
資料庫 資料依賴的公理系統
邏輯蘊含 定義6.11 對於滿足一組函式依賴 f 的關係模式r 其任何乙個關係r,若函式依賴x y都成立,即r中任意兩元組t,s,若tx sx 則ty sy 則稱f邏輯蘊含x y 關係模式r 來說有以下的推理規則 a1.自反律 reflexivity 若y x u,則x y為f所蘊含。a2.增廣律 ...