在資料庫中,關係模式中的屬性值之間會發生聯絡。譬如每個學生只有乙個姓名,每門課程只能有乙個任課老師。這類聯絡就稱為函式依賴(functional dependency,簡記為fd)。x→y,讀作x函式決定y,即知道了x的值就可以確定y的值了,比如說:你知道了乙個學生的學號,那麼就可以確定他的姓名了。
定義:在關係模式r(u)中,x和y是屬性集u的子集,所有的元組都滿足x→ y,那麼x→ y在關係模式r(u)中成立,這種聯絡就是函式依賴。
傳遞依賴:在r(u)中,如果x→y,y⊈x,y→z,則稱z對x傳遞依賴。
候選碼:設k為r(u)中屬性的組合,若k→ u,即關係模式r中所有的屬性都函式依賴於k,且對於k的任何乙個真子集k』都有k'不能決定u,則k為r的候選碼。它通常也稱為候選關鍵字。若有多個候選碼,則選乙個作為主碼。
主屬性和非主屬性:包含在任何乙個候選碼中的屬性稱為主屬性,否則稱為非主屬性。
完全函式依賴:在r(u)中,如果x→ y,且對於x的任何乙個真子集x』都有x』不能決定y,稱y對x完全函式依賴。
部分函式依賴:如果x→ y,但y不完全函式依賴於x,則稱y對x部分函式依賴,也成為區域性函式依賴。
關聯式資料庫設計的方法之一就是設計滿足適當正規化的模式,通常可以通過判斷分解後的模式達到幾正規化來評價模式規範化的程度。正規化有1nf、2nf、3nf、bcnf、4nf、5nf,其中1nf的級別最低,如果乙個關係模式是高的正規化,那麼它一定滿足低正規化的條件。如:r(u)是3正規化,那麼它一定是2nf,1nf。規範化就是將低一些的正規化轉化為高一些的正規化的過程。
若關係模式r的每乙個分量是不可再分的資料項,則關係模式r屬於第一正規化。
例如:r(欄位1,欄位2,欄位3),此關係模式就符合第一正規化。
r(欄位1,欄位2,欄位3,欄位3.1)這就不符合第一正規化。
我們一般很少有不符合第一正規化的資料庫,因為dbms不允許你把資料庫表中的列再一分為二或多列的。第一正規化容易造成冗餘度大,修改操作易引起不一致性,插入異常,刪除異常等問題,所以引入了2nf。
若關係模式r∈1nf,且每個非主屬性完全依賴於候選碼,則關係模式r∈2nf。也就是說,當1nf消除了非主屬性對候選碼的部分函式依賴,則成為2nf。
若關係模式r(u)中若不存在這樣的候選碼x,屬性組y及非主屬性z(z⊈y)使得x→ y(反過來不行),y→ z成立,則關係模式r∈3nf。即當2nf消除了非主屬性對候選碼的傳遞函式依賴,則稱為3nf。
可以證明,3nf模式必是2nf模式。產生冗餘和異常的兩個重要原因是部分依賴和傳遞依賴。因為3nf模式中不存在非主屬性對候選碼的部分函式依賴和傳遞依賴,所以具有較好的效能。對於1nf,2nf,其效能弱,一般不宜作為資料庫模式,通常要將它們變換成為3nf或更高階別的正規化,這個變換過程稱為「關係模式的規範化處理」。
在第三正規化的基礎上,資料庫表中的每個屬性都不傳遞依賴於r的候選鍵,那麼稱r是bcnf的模式。即在第三正規化的基礎上排除主屬性對候選鍵的傳遞依賴。
設有關係模式r(e,n,m,l,q),其函式依賴集為f=。則關係模式r達到了1nf;該關係模式需要進行分解,因為存在冗餘,修改操作的不一致性、插入和刪除異常。
解析:依題意,關係模式r中的屬性em可決定該關係的所有屬性,因此em是關係模式r的主鍵。又因為em→ q,而e→ n、m→ l,可知非主屬性n,l都部分依賴於候選碼,所以r僅達到了第一正規化。而1nf存在冗餘度大、修改操作的不一致性、插入和刪除異常4個問題,因此需要對r進行分解。「分解」是解決冗餘的主要辦法,也是規範化的一條原則:「關係模式有冗餘問題,就分解它」。
資料庫技術
建立乙個資料庫的一般步驟 建立connection物件,諒解資料庫。建立command物件,這行sql命令。建立dataadapter物件,提供資料來源與記錄集之間的資料交換,資料庫與記憶體中的資料交換。建立dataset物件,將從資料來源中得到的資料儲存在記憶體中,並對資料進行各種操作等。資料庫連...
資料庫技術
關係元組 多個屬性的集合 屬性屬性的域 屬性的取值範圍 候選碼 若關係中的某一屬性組的值能唯一地標識乙個元組,則稱該屬性組為候選碼 主碼 若乙個關係中由多個候選碼,則選定其中乙個為主碼 如果關係模式r地每個關係r的屬性值都是不可分的原子值,那麼稱r是第一正規化的模式,r是規範化的關係。如下 關係模式...
資料庫 資料庫恢復技術
1.事務 使用者定義的乙個資料庫操作序列,這些操作要麼全做要麼全部不做,是乙個不可分割的工作單位 2.事務的特性 原子性 atomicity 一致性 consistency 隔離性 isolation 持續性 durability 原子性 要麼全做,要麼全不做 一致性 事務的執行結果必須是使資料庫從...