第7章關聯式資料庫的規範化理論與資料庫的設計

2022-09-15 18:00:02 字數 4310 閱讀 4904

提出的資料庫規範化理論

1.1 「不好」的關係模式中存在的問題

可能存在的問題:

資料冗餘

更新異常

插入異常

刪除異常

資料依賴:是可以作為關係模式的取值的任何乙個關係所必須滿足的一種約束條件,是通過乙個關係中各個元組的某些屬性值之間的相等與否體現出來的相互關係。

資料依賴包括:函式依賴和多值依賴和其他

1.2 函式依賴

1.21函式依賴的定義

設r(a1,a2,……..an)是乙個關係模式,x,y是的子集,若只要關係r是關係模式r的可能取值,則r中不可能有兩個元組在x中的屬性值相等,而在y中的屬性值不相等,則稱」x函式決定y」或」y函式依賴於x」,記做xy。(ps:

一些屬性決定另一些屬性稱為函式決定)只能根據語義來判斷。

相關的屬性: 若x->y, 但y不屬於x, 則稱x->y為非平凡依賴,否則為平凡依賴。

若x->y, 則稱x為決定元素。

若x->y,y->x, 則記做x>y

若y不函式依賴於x, 記做x不函式決定y

在關係模式r中,如果x->y,並且對於x的任意乙個真子集x` 都有x` 不函式決定y,則稱y對x完全函式依賴,記做x__f__y

若x->y,但y不完全函式依賴於x,則稱y對x部分函式依賴,記做x__p___y

若x—>y(y不包含於x),y不函式決定x,y函式決定z,則稱z對x傳遞函式依賴。

把關係模式表示為r,其中u是一組屬性,f是屬性組u上的一組資料依賴,當且僅當u上的乙個關係r滿足f時,r稱為關係模式r的乙個關係。

1.22 函式依賴的邏輯蘊含

設r是乙個關係模式,x,y是u中的屬性組,若在r的任何乙個滿足f中函式依賴的關係r上,都有函式依賴x->y成立,則稱f邏輯蘊含x->y。(ps:即是函式依賴組隱含決定的其他函式依賴關係)

如關係模式r中為f所邏輯蘊含的函式依賴的全體稱作f的閉包,記做f+ .

1.23 碼

設k為關係模式r中的屬性或屬性組,若k->u在f閉包中,而找不到k的任何乙個真子集k` ,能使k`->u在f閉包中,則稱k為關係模式r的候選碼,當候選碼多於乙個時,選定其中乙個做主碼。

包含在任何乙個候選碼中的屬性叫做主屬性,不包含在任何候選碼中的屬性叫做非主屬性。整個屬性組是碼的時候,稱作全碼。

1.24 函式依賴的公理系統

為了從f推導出f閉包,或者至少判斷x->y是否在f閉包中,需要一套推理系統,稱作armstrong公理系統。

armstrong的推理規則為:

自反律:若y包含於x包含於u,則x->y為f所邏輯蘊含。(自反律所得的函式依賴是平凡的函式依賴,自反律只依賴u,不依賴f)

增廣律:若x->y為f所邏輯蘊含,且z包含於u,則xz->yz為f所邏輯蘊含。

傳遞律:若x->y及y->z為f所邏輯蘊含,則x->z為f所邏輯蘊含。

根據armstrong可以得到的推理規則為:

合併規則:由x->y,x->z,有x->yz

偽傳遞規則: 由x->y,wy->z,有xw->z

分解規則:由x->y及z包含於y,有x->z

1.3 1nf,2nf,3nf,bcnf

1.31第一正規化(1nf)及進一步規範化

第一正規化:元組的每乙個分量必須是不可分割的資料項,這叫做第一正規化,簡稱1nf。

後面的正規化是關係模式x->y中x不包含碼的情況。

1.32 第二正規化(2nf)

第二正規化:若關係模式r屬於第一正規化,且每乙個非主屬性完全函式依賴於碼,則r屬於第二正規化。(ps: 既不允許有非主屬性對碼的部分函式依賴或碼的子集不能函式決定非主屬性)

可以用分解的方法將不屬於第二正規化的關係模式分解成多個屬於第二正規化的關係模式。(碼的子集屬性和非主屬性分成新的關係模式)

1.33 第三正規化(3nf)

第三正規化:若關係模式r屬於第二正規化,且每乙個非主屬性都不傳遞依賴於碼,則r屬於第三正規化。(ps:碼以外的屬性或者屬性組不能函式決定非主屬性 。)

可以用分解的方法將不屬於第二正規化的關係模式分解成多個屬於第二正規化的關係模式。(碼以外的屬性或屬性組和非主屬性分成新的關係模式,原關係中只拿走乙個屬性)

1.34 boyce_codd正規化(bcnf

bcnf: 若關係模式r屬於第一正規化,且對於每乙個非平凡的函式依賴x->y,都有x包含碼,則r屬於bcnf。(ps:

判斷乙個關係模式是否屬於bcnf,只要考慮每個非平凡函式依賴x->y的決定因素x是否包含碼就行了)

在函式依賴的範疇內,bcnf達到了最高的規範化程度

1.4 多值依賴和4nf

1.41 多值依賴

多值依賴的直觀表達:對於每一對屬性,都有乙個屬性的一組值與之對應,這一組值只依賴於其中的乙個屬性,不依賴於另乙個屬性。

多隻依賴的定義為:設r是屬性集u上的乙個關係模式,x,y是u的子集,z=u-x-y

若在r的任一關係r中,只要存在元組t,s,使得t[x]=s[x],就必然存在元祖w,v(w,v可以與s,t相同),使得w[x]=v[x]=t[x]=s[x],而w[y]=t[y],w[z]=s[z],v[y]=s[y],v[z]=t[z],則稱y多值依賴於x,記做x->->y

若y多值依賴於x而z為空集,則稱x->->y為平凡的多值依賴。

多值依賴的屬性:

1) 若x->->y,則x->->z,其中z=u-x-y,即多值依賴具有對稱性。

2) 若x->y,則x->->y,即函式依賴可看作多值依賴的特殊情況。只是將y的一組值換成了乙個值。

3)設屬性集之間的包含關係是xy包含於w包含於u,那麼當x->->y在r(u)上成立時,x->->y也在r(w)上成立,反過來當x->->y 在r(w)上成立時,x->->y在r(u)上不一定成立。即函式依賴的有效性與屬性集的範圍有關。

一般的,在r(u)上若有x->->y在r(w)(w包含於u)上成立,則稱x->->y為r(u)的嵌入式多值依賴。

(4)若x->->y在r(u)上成立,且y』包含於y,不能斷言x->->y』在r(u)上成立。因為被考慮的屬性組z』數量增多時,多值依賴就不一定成立。

1.42 第四正規化(4nf)

若關係模式r屬於1nf,且對於每乙個非平凡的多值依賴x->->y(y不屬於x),都有x包含碼,則r屬於第4nf。

4nf就是限制關係模式的屬性之間不允許有非平凡且非函式依賴的多值依賴。

拆分:根據對稱性,將函式依賴的兩個屬性分開,與決定屬性構成兩個關係。

1.5 關係模式的分解

1.51 模式分解的等價標準

規範化過程中將乙個關係模式分解為若干個關係模式,應該保證分解後產生的模式與原來的模式等價。

常用的等價標準有兩種:要求分解是具有無損連線性的,並且要求分解是保持函式依賴的。

要求分解時候不丟失資訊,也就是說,希望能通過對關係r1,r2,….rn的自然連線運算重新得到關係r中的所有資訊。

無損連線性:設關係模式r分解為關係模式r1,r2,r3….rn,若對於r的任何乙個可能的r,都有r=r1自然鏈結r2自然連線r3…….

rn,即r在r1,r2,r3……rn上的投影的自然連線等於r,則稱關係模式r的這個分解具有無損連線性。

判斷無損連線性:將關係模式r分解為關係模式r1,r2,如果(u1交u2->u1)屬於f+,或者(u1交u2->u2)屬於f+,即u1交u2是u1的候選碼或者是u2 的候選碼,則這個分解一定是具有無損連線性的。

保持函式依賴性:設關係模式r分解為關係模式r1,r2…….rn,若f+=(f1交f2交f3…….

fn)+,即f所邏輯蘊含的函式依賴一定也由分解得到的幾個關係模式中的函式依賴所邏輯蘊含,則稱關係模式r的這個分解是保持函式依賴性的。

1.52 關於模式分解的幾個事實

(1)分解具有無損連線性和分解保持函式依賴性是連個相互獨立的標準,具有無損連線性的分解不一定保持函式依賴性;保持函式依賴性的分解不一定具有無損連線性。

(2)若要求分解具有無損連線性,那麼模式分解一定可以達到bcnf

(3)若要求分解保持函式依賴性,那麼模式分解可以達到3nf,但不一定達到bcnf

(4)若要求分解既具有無損連線性,又保持函式依賴性,則模式分解可以達到3nf,但不一定能達到bcnf 保持函式依賴性使正規化降低??

1.6 資料庫設計

1.61 設計過程概覽

資料庫設計工作量大而且過程比較複雜,既是一項資料庫工程,同時也是一項軟體工程。資料庫設計包括結果性設計和行為性設計。

結構性設計是指確定資料庫的資料模型。資料模型反映了現實世界的資料與資料間的聯絡,要求在滿足應用需要的前提下,盡可能減少冗餘,實現資料共享。

行為性設計是指確定資料庫應用的行為和動作,應用的行為體現在應用程式中,所以行為性設計主要是應用程式的設計。

資料庫設計一般分為六個階段:需求分析,概念結構設計,邏輯結構設計,物理結構設計,資料庫實施,資料庫執行和維護。資料庫設計的各階段可以和軟體工程的各階段對應起來,軟體工程的某些方法和工具同樣可以適用於資料庫工程。

第8章關係資料模式的規範化理論

1 請同學們分析此關係模式的函式依賴 函式依賴 2 舉例分析此關係模式所具有的 如冗餘 插入刪除異常等 缺點 資料冗餘 同乙個系的學生的所屬系 住處會有大量的重複。刪除異常 某個系的學生已畢業但還未招新生,系部存在,但會出現刪除畢業學生的記錄同時把系部的名稱也刪除的情況。更新異常 在更新某系學生住處...

2 5關聯式資料庫規範化思想 教案

1 課題名稱 2 教學目標 1 通過乙個例項分析,來理解為什麼要進行資料庫規範化 2 學習關係模式規範化的方法 3 了解關係模式規範化的原則。3 教學重點 1 通過例項分析,理解資料規範化的思想和意義 2 理解並掌握資料規範化的方法,理解資料規範化的第一 第二和第三正規化的定義,並能對給出的關係模式...

從SQL看關聯式資料庫的規範化及工作原理

課程計算機軟體技術及應用基礎 班級 08020904 學號 2009301971 姓名程立 關聯式資料庫是支援關係模型的資料庫系統。關係模型由關係資料結構 關係操作集合和完整性約束三部分組成。關係操作分為關係代數 關係演算 具有關係代數和關係演算雙重特點的語言 sql語言 完整性約束提供了豐富的完整...