邏輯蘊含
定義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.增廣律(augmentation):若x→y為f所蘊含,且z ? u,則xz→yz為f所蘊含。
a3.傳遞律(transitivity):若x→y及y→z為f所蘊含,則x→z為f所蘊含。
(l)自反律: 若y ? x ? u,則x →y為f所蘊含
證: 設y ? x ? u
對r 的任一關係r中的任意兩個元組t,s:
若t[x]=s[x],由於y ? x,有t[y]=s[y],
所以x→y成立,自反律得證
(2)增廣律: 若x→y為f所蘊含,且z ? u,則xz→yz 為f所蘊含。
證:設x→y為f所蘊含,且z ? u。
設r 的任一關係r中任意的兩個元組t,s:
若t[xz]=s[xz],則有t[x]=s[x]和t[z]=s[z];
由x→y,於是有t[y]=s[y],所以t[yz]=s[yz],所以
xz→yz為f所蘊含,增廣律得證。
(3) 傳遞律:若x→y及y→z為f所蘊含,則 x→z為 f所蘊含。
證:設x→y及y→z為f所蘊含。
對r 的任一關係 r中的任意兩個元組 t,s:
若t[x]=s[x],由於x→y,有 t[y]=s[y];
再由y→z,有t[z]=s[z],所以x→z為f所蘊含,傳遞
律得證。
1.根據a1,a2,a3這三條推理規則可以得到下面三條推理規則:
合併規則:由x→y,x→z,有x→yz。
(a2, a3)
偽傳遞規則:由x→y,wy→z,有xw→z。
(a2, a3)
分解規則:由x→y及 z?y,有x→z。
(a1, a3)2.根據合併規則和分解規則,可得引理6.1
引理6.l x→a1 a2…ak成立的充分必要條件是x→ai成立(i=l,2,…,k)armstrong公理系統是有效的、完備的
有效性:由f出發根據armstrong公理推導出來的每乙個函式依賴一定在f+中;
完備性:f+中的每乙個函式依賴,必定可以由f出發根據armstrong公理推導出來
定義6.l2 在關係模式r中為f所邏輯蘊含的函式依賴的全體叫作 f的閉包,記為f+。
定義6.13 設f為屬性集u上的一組函式依賴,x ?u, xf+ =,xf+稱為屬性集x關於函式依賴集f 的閉包
引理6.2
設f為屬性集u上的一組函式依賴,x,y ? u,x→y能
由f 根據armstrong公理匯出的充分必要條件是y ?xf+
用途 將判定x→y是否能由f根據armstrong公理匯出的問題,轉化為求出xf+ 、判定y是否為xf+的子集的問題演算法6.1 求屬性集x(x ? u)關於u上的函式依賴集f 的閉包xf+
輸入:x,f 輸出:xf+
步驟:(1)令x(0)=x,i=0
(2)求b,這裡b = ;
(3)x(i+1)=b∪x(i)
(4)判斷x(i+1)= x (i)嗎?
(5)若相等或x(i)=u , 則x(i)就是xf+ , 演算法終止。
(6)若否,則 i=i+l,返回第(2)步。
對於演算法6.1, 令ai =|x(i)|,形成乙個步長大於1的嚴格遞增的序列,序列的上界是 | u |,因此該演算法最多 |u| - |x| 次迴圈就
會終止。[例1] 已知關係模式r,其中
u=;f=。
求(ab)f+ 。
解 設x(0)=ab;
(1) x(1)=ab∪cd=abcd。
(2) x(0)≠ x(1)
x(2)=x(1)∪be=abcde。
(3) x(2)=u,演算法終止
?(ab)f+ =abcde。
定理6.2 armstrong公理系統是有效的、完備的
證明:
1. 有效性
可由定理6.1得證
2. 完備性
只需證明逆否命題: 若函式依賴x→y不能由f從armstrong公理匯出,那麼它必然不為f所蘊含定義6.14 如果g+=f+,就說函式依賴集f覆蓋g(f是g的覆蓋,或g是f的覆蓋),或f與g等價。
引理6.3 f+ = g+ 的充分必要條件是f ? g+ ,和g ? f+
證: 必要性顯然,只證充分性。
(1)若f?g+ ,則xf+ ? xg++ 。
(2)任取x→y?f+ 則有 y ? xf+ ? xg++ 。
所以x→y ? (g+)+= g+。即f+ ? g+。
(3)同理可證g+ ? f+ ,所以f+ = g+。定義6.15 如果函式依賴集f滿足下列條件,則稱f為乙個極小函式依賴集。亦稱為最小依賴集或最小覆蓋。
(1) f中任一函式依賴的右部僅含有乙個屬性。
(2) f中不存在這樣的函式依賴x→a,使得f與f-等價。
(3) f中不存在這樣的函式依賴x→a, x有真子集z使得f-∪與f等價。
[例2] 關係模式s,其中:
u=,f=
設f』=
f是最小覆蓋,而f』不是。
因為:f 』 - 與f 』等價
f 』 - 也與f 』等價
定理6.3 每乙個函式依賴集f均等價於乙個極小函式依賴
集fm。此fm稱為f的最小依賴集。
證明: 構造性證明,找出f的乙個最小依賴集。
(1)逐一檢查f中各函式依賴fdi:x→y,若y=a1a2 …ak,k > 2,
則用 來取代x→y。
(2)逐一檢查f中各函式依賴fdi:x→a,令g=f-,
若a?xg+, 則從f中去掉此函式依賴。
(3)逐一取出f中各函式依賴fdi:x→a,設x=b1b2…bm,
逐一考查bi (i=l,2,…,m),若a ?(x-bi )f+ ,
則以x-bi 取代x。
[例3] f =
fm1、fm2都是f的最小依賴集:
fm1=
fm2=
f的最小依賴集fm不唯一
極小化過程( 定理6.3的證明 )也是檢驗f是否為極小依賴集的乙個演算法把低一級的關係模式分解為若干個高一級的關係模式的方法不是唯一的
只有能夠保證分解後的關係模式與原關係模式等價,分解方法才有意義
三種模式分解等價的定義:
⒈ 分解具有無損連線性
⒉ 分解要保持函式依賴
⒊ 分解既要保持函式依賴,又要具有無損連線性定義6.16 關係模式r的乙個分解:
ρ= u= ∪ui,且不存在 ui ? uj,fi 為 f在 ui 上的投影
定義6.17 函式依賴集合 的乙個覆蓋 fi 叫作 f 在屬性 ui 上的投影
例:s-l(sno, sdept, sloc)
f=s-l∈2nf
分解方法可以有多種:
1. s-l分解為三個關係模式:sn(sno)
sd(sdept)
so(sloc)
2. sl分解為下面二個關係模式: nl(sno, sloc)
dl(sdept, sloc)
3. 將sl分解為下面二個關係模式: nd(sno, sdept)
nl(sno, sloc)關係模式r
演算法6.2 判別乙個分解的無損連線性
演算法6.3(合成法)轉換為3nf的保持函式依賴的分解。
演算法6.4 轉換為3nf既有無損連線性又保持函式依賴的分解
演算法6.5 (分解法)轉換為bcnf的無損連線分解
演算法6.6 達到4nf的具有無損連線性的分解
若要求分解具有無損連線性,那麼模式分解一定能夠達到4nf
若要求分解保持函式依賴,那麼模式分解一定能夠達到3nf,但不一定能夠達到bcnf
若要求分解既具有無損連線性,又保持函式依賴,則模式分解一定能夠達到3nf,但不一定能夠達到bcnf
規範化理論為資料庫設計提供了理論的指南和工具
也僅僅是指南和工具
並不是規範化程度越高,模式就越好
必須結合應用環境和現實世界的具體情況合理地選擇資料庫模式
資料庫資料依賴公理系統
資料依賴使關係規範化的基礎 定義 對於滿足一組函式依賴f的關係模式r,其任何乙個關係r,若函式依賴x y都成立,即r中任何裡任何個二元組t,s,若t x s x 則t y s y 則稱f邏輯蘊含x y 顯示的邏輯蘊含 直接的函式依賴 與隱式的邏輯蘊含 推導的函式依賴 自反律 若yy為f所蘊含 增廣律...
資料依賴的公理系統
在說公理系統前,要理解函式依賴的概念 可以看我部落格裡面講正規化的文章也有提到函式依賴的定義 理解是,我們在r裡面任意找乙個r關係,對於這個關係的元組s和t,當s和t在屬性 組 x上面相等,則s和t在y屬性 組 上也相等。這樣被稱為,x函式確定y函式或者說y函式依賴於x函式 x y 理解是,在r關係...
資料依賴的公理系統
學習資料依賴的公理系統是進行模式分解的演算法的理論基礎。而armstrong公理系統是乙個具有有效性和完備性的公理系統。u是屬性總體,f是函式依賴,對於r推理規則如下 a1 自反律 若y x u,則x y為f所蘊涵。a2 增廣律 若x y,且z u,則xz yz為f所蘊涵。a3 傳遞律 若x y以及...