1.7關系數據庫規(guī)范化理論
為了使數據庫設計的方法走向完備,人們研究了規(guī)范化理論,指導我們設計規(guī)范的數據庫模式。按屬性間依賴情況來區(qū)分,關系規(guī)范化的程度為第一范式、第二范式、第三范式、BCNF范式和第四范式等。
函數依賴
數據依賴是現實世界中屬性間聯系和約束的抽象,是數據的內在性質。
函數依賴(functional dependency,FD )是一種最重要、最基本的數據依賴。其具體定義如下:
設有關系模式R(U),X和Y是屬性集U的子集,FD是行為X→Y的一個命題,只要r是R的關系,對r中任意兩個元組都有“X值相等蘊涵Y值相等”,那么函數依賴X→Y在關系模式R(U)中成立。
FD與侯選鍵之間的關系:若存在X->U,并且不存在X的任意真子集X1,使得X1->U成立,那么就稱X為關系的一個侯選鍵。
函數依賴還有幾條推理規(guī)則:
自反性;增廣性;傳遞性;并規(guī)則;分解規(guī)則;偽傳遞規(guī)則;
◆模式分解:目的是消除冗余和操作異常問題
模式分解的三個定義:
l 分解具有“無損連接性”
l 分解要“保持函數依賴”
l 分解既要“保持函數依賴”,又要具有“無損連接性”。
關系模式分解的兩個特性實際涉及到兩個數據庫模式的等價性問題。包括數據等價和依賴等價兩個方面:
數據等價:兩個數據庫實例應表示同樣的信息內容,用“無損聯接”衡量。
依賴等價:兩個數據庫模式應有相互邏輯關系的函數依賴集,此時數據的語義是不會出現差錯的。
例:關系模式 S-L-C(SNO,SDEPT,SLOC,CNO,G)中,SLOC為學生的住處,并且每個系的學生住在同一個地方。
這里碼為(SNO,CNO)。函數依賴有:
用投影分解把關系模式S-L-C分解為3NF范式,且保持函數依賴。
解法:
�、� 對R〈U,F〉中的函數依賴集F進行“極小化處理”。
F= { SNO,CNO→G,SNO→SDEPT,SDEPT→SLOC }。
⑵ R中沒有不在F中出現的屬性。
�、� 不存在X→AÎF,且XA=U,接著做第 = 4 \* GB2 ⑷步。
�、� 對F按具有相同左部的原則分組。
r={SC{ SNO,CNO,G },SNO,CNO→G},S-D〈{ SNO,SDEPT }, SNO→SDEPT〉,
D-L〈{ SDEPT,SLOC }, SDEPT→SLOC〉}
◆范式
范式(normal form,NF)是衡量關系模式的優(yōu)劣的標準。范式有很多種,與數據依賴有著直接的聯系。
第一范式1NF
如果關系模式R中,每個分量是不可分的數據項,就稱R屬于第一范式。
第二范式2NF
若關系模式R屬于1NF,且每個非主屬性完全函數依賴于候選關鍵字,則稱R屬于第二范式。
第三范式3NF
若關系模式R屬于1NF,且每個非主屬性都不傳遞依賴于R的候選關鍵字,則稱R屬于第三范式。
這里的主屬性是指鍵的屬性,而不是任何鍵的屬性就是非主屬性
BC范式BCNF
若關系模式R屬于1NF,且每個屬性都不傳遞依賴于R的候選關鍵字,則稱R屬于BC范式。
由上可知,4種范式之間的關系:BCNF<3NF<2NF<1NF
相關推薦:推薦:2010年計算機軟件水平考試必備完美攻略北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |