來源:MagicBiao 發(fā)布時(shí)間:2018-11-23 15:30:49 閱讀量:1061
屬性間的聯(lián)系
1.一對一聯(lián)系
2.一對多聯(lián)系
3.多對多聯(lián)系
數(shù)據(jù)依賴
是一個(gè)關(guān)系內(nèi)部屬性與屬性之間的一種約束關(guān)系
是現(xiàn)實(shí)世界屬性間相互聯(lián)系的抽象
是數(shù)據(jù)內(nèi)在的性質(zhì) 是語義的體現(xiàn)
1.函數(shù)依賴
2.多值依賴
例:描述一個(gè)學(xué)生關(guān)系,可以有學(xué)號、姓名、系名等屬性。
一個(gè)學(xué)號只對應(yīng)一個(gè)學(xué)生,一個(gè)學(xué)生只在一個(gè)系中學(xué)習(xí) “學(xué)號”值確定后,學(xué)生的姓名及所在系的值就被唯一確定。
現(xiàn)給出一個(gè)關(guān)系模式找出其問題:
U ={Sno, Sdept, Mname, Cno, Grade}
F={Sno→Sdept, Sdept→ Mname, (Sno, Cno)→ Grade}
(1)數(shù)據(jù)冗余
(2)更新異常
(3)插入異常
(4)刪除異常
把這個(gè)單一的模式分成三個(gè)關(guān)系模式:
S(Sno,Sdept,Sno → Sdept);
SC(Sno,Cno,Grade,(Sno,Cno) → Grade);
DEPT(Sdept,Mname,Sdept → Mname);
這三個(gè)模式都不會(huì)發(fā)生插入異常、刪除異常的問題,數(shù)據(jù)的冗余也得到了控制。
平凡函數(shù)依賴與非平凡函數(shù)依賴
X→Y,但Y?X則稱X→Y是非平凡的函數(shù)依賴。
X→Y,但Y?X 則稱X→Y是平凡的函數(shù)依賴。
例:在關(guān)系SC(Sno, Cno, Grade)中,
非平凡函數(shù)依賴: (Sno, Cno) → Grade
平凡函數(shù)依賴: (Sno, Cno) → Sno
(Sno, Cno) → Cno
完全函數(shù)依賴與部分函數(shù)依賴
在關(guān)系SC(Sno, Cno, Grade)中,有:
由于:Sno ?Grade,Cno ? Grade,
因此:(Sno, Cno) → Grade (Sno,Cno)→Sdept是部分函數(shù)依賴
因?yàn)镾no →Sdept成立,且Sno是(Sno,Cno)的真子集
傳遞函數(shù)依賴
在關(guān)系Std(Sno, Sdept, Mname)中,有:
Sno → Sdept,Sdept → Mname, Mname傳遞函數(shù)依賴于Sno。
范式
第一范式(1NF)
第二范式(2NF)
第三范式(3NF)
BC范式(BCNF)
第四范式(4NF)
第五范式(5NF)
2NF
若關(guān)系模式R∈1NF,并且每一個(gè)非主屬性都完全函數(shù)依賴于任何一個(gè)候選碼,則R∈2NF
例:
S-L-C(Sno,Sdept,Sloc,Cno,Grade)
(Sno,Cno)→Grade,Sno→Sdept,
(Sno,Cno)→Sdept,Sno→Sloc,
(Sno,Cno)→Sloc,Sdept→Sloc
S-L-C的碼為(Sno,Cno)
S-L-C滿足第一范式。
非主屬性Sdept、Sloc并不完全依賴于碼
關(guān)系模式S-L-C不屬于2NF
產(chǎn)生問題:
插入異常
刪除異常
修改復(fù)雜
3NF
設(shè)關(guān)系模式R<U,F>∈1NF,若R中不存在這樣的碼X、屬性組Y及非主屬性Z(Z ? Y), 使得X→Y,Y→Z成立,Y ? X不成立,則稱R<U,F> ∈ 3NF。
例:2NF關(guān)系模式S-L(Sno, Sdept, Sloc)中 函數(shù)依賴:
Sno→Sdept
Sdept → Sno
Sdept→Sloc
可得:Sno→Sloc,即S-L中存在非主屬性對碼的傳遞函數(shù)依賴,S-L 不屬于3NF
BCNF
設(shè)關(guān)系模式R<U,F>∈1NF,若X →Y且Y 不含于 X時(shí)X必含有碼,則R<U,F>∈BCNF。
換言之,在關(guān)系模式R<U,F>中,如果每一個(gè)決定屬性集都包含候選碼,則R∈BCNF。
例子:關(guān)系模式SJP(S,J,P)中,S是學(xué)生,J表示課程,P表示名次。
每一個(gè)學(xué)生選修每門課程的成績有一定的名次,每門課程中每一名次只有一 個(gè)學(xué)生(即沒有并列名次)。
由語義可得到函數(shù)依賴:
(S,J)→P;(J,P)→S
(S,J)與(J,P)都可以作為候選碼。
關(guān)系模式中沒有屬性對碼傳遞依賴或部分依賴,所以SJP∈3NF。
4NF
不允許有非平凡且非函數(shù)依賴的多值依賴。 允許的非平凡多值依賴實(shí)際上是函數(shù)依賴。
規(guī)范化小結(jié)
數(shù)據(jù)依賴的公理系統(tǒng)
閉包
在關(guān)系模式R<U,F>中為F所邏輯蘊(yùn)涵的函數(shù)依賴的全體叫作F的閉包,記為F +。
設(shè)F為屬性集U上的一組函數(shù)依賴,X、Y 屬于U, XF+={ A|X→A能由F根據(jù)Armstrong公理導(dǎo)出},XF+ 稱為屬性集X關(guān)于函數(shù)依賴集F的閉包。
例:已知關(guān)系模式R<U, F>,其中U={A, B, C, D, E};F={AB→C, B→D, C→E, EC→B, AC→B}。
求(AB)F+ 。
AB→C,B→D
得出ABCD
C→E,AC→B
得出ABCDE
所以閉包為ABCDE
模式的分解
若要求分解具有無損連接性,那么模式分解一定能夠達(dá)到4NF。
若要求分解保持函數(shù)依賴,那么模式分解一定能夠達(dá)到3NF,但不一定能夠達(dá)到BCNF。
若要求分解既具有無損連接性,又保持函數(shù)依賴,則模式分解一定能夠達(dá)到3NF,但不一定能夠達(dá)到BCNF。
A1
A2
…
An
U1
…
Cij
Uk
---------------------