資料庫之關係資料理論

2021-09-29 21:15:22 字數 3420 閱讀 9810

常用正規化

關聯式資料庫知道了,再來理解正規化。正規化是關聯式資料庫關係模式規範化的標準,從規範化的寬鬆到嚴格,分為不同的正規化,通常使用的有第一正規化。第二正規化、第三正規化及bc正規化。正規化是建立在函式依賴基礎上的。

函式依賴

如果乙個表中某乙個欄位y的值是由另外乙個欄位或一組欄位x的值來確定的,就稱為y函式依賴於x。

函式依賴

定義設x,y是關係r的兩個屬性集合,當任何時刻r中的任意兩個元組中的x屬性值相同時,則它們的y屬性值也相同,則稱x函式決定y,或y函式依賴於x。

1.平凡函式依賴

當關係中屬性集合y是屬性集合x的子集時(y⊆x),存在函式依賴x→y,即一組屬性函式決定它的所有子集,這種函式依賴稱為平凡函式依賴。

2.非平凡函式依賴

當關係中屬性集合y不是屬性集合x的子集時,存在函式依賴x→y,則稱這種函式依賴為非平凡函式依賴。

3.完全函式依賴

設x,y是關係r的兩個屬性集合,x』是x的真子集,存在x→y,但對每乙個x』都有x』!→y,則稱y完全函式依賴於x。

4.部分函式依賴

設x,y是關係r的兩個屬性集合,存在x→y,若x』是x的真子集,存在x』→y,則稱y部分函式依賴於x。

5.傳遞函式依賴

設x,y,z是關係r中互不相同的屬性集合,存在x→y(y !→x),y→z,則稱z傳遞函式依賴於x。

屬性關係

屬性之間有三種關係,但並不是每一種關係都存在函式依賴。設r(u)是屬性集u上的關係模式,x、y是u的子集:

● 如果x和y之間是1:1關係(一對一關係),如學校和校長之間就是1:1關係,則存在函式依賴x → y和y →x。

● 如果x和y之間是1:n關係(一對多關係),如年齡和姓名之間就是1:n關係,則存在函式依賴y → x。

●如果x和y之間是m:n關係(多對多關係),如學生和課程之間就是m:n關係,則x和y之間不存在函式依賴。

案例分析

編輯

例:

student

(sno, sname, s***, sage, sdept)

假設不允許重名,則有:

sno → s***, sno → sage , sno → sdept,

sno ←→ sname, sname → s***, sname → sage

sname → sdept

但s*** -\→ sage

若 x → y,並且 y → x, 則記為 x ←→ y。

若 y 不函式依賴於 x, 則記為 x -\→ y。

在關係模式r

(u)中,對於u的子集x和y,

1.如果 x → y,但 y 不為 x 的子集,則稱 x → y 是非平凡的函式依賴

例:在關係sc

(sno, cno, grade)中,

非平凡函式依賴: (sno, cno) → grade。

2.若 x → y,但 y 為 x 的子集, 則稱 x → y 是平凡的函式依賴

平凡函式依賴: (sno, cno) → sno ,(sno, cno) → cno。

3.若 x → y 並且,存在 x 的真子集 x1,使得 x1 → y, 則 y 部分依賴於 x。

例:學生表(學號,姓名,性別,班級,年齡)關係中,

部分函式依賴:(學號,姓名)→ 性別,學號 → 性別,所以(學號,姓名)→ 性別 是部分函式依賴。

4.若 x → y 並且,對於 x 的任何乙個真子集 x1,都不存在 x1 → y 則稱y完全依賴於x。

例:成績表(學號,課程號,成績)關係中,

完全函式依賴:(學號,課程號)→ 成績,學號 -\→ 成績,課程號 -\→ 成績,所以(學號,課程號)→ 成績 是完全函式依賴。

5.若x → y並且y → z,而y -\→ x,則有x → z,稱這種函式依賴為傳遞函式依賴。

例:關係s1(學號,系名,系主任),

學號 → 系名,系名 → 系主任,並且系名 -\→ 學號,系主任 -\→ 系名,所以學號 → 系主任為傳遞函式依賴。

具體的函式依賴應該是通過理解資料項和該企業的內部規則來決定的(不同企業間有差異),根據表的內容得出的函式依賴可能是不正確的。

正規化間的關係

關聯式資料庫有六種,一、二、三、四、五和bc。滿足最低要求的正規化是第一正規化。在第一正規化的基礎上進一步滿足更多要求的稱為第二正規化,其餘正規化以此類推。一般情況的資料庫只需滿足第三正規化即可。

1nf如果關係模式r是第一正規化的模式,那麼,r的每乙個關係r的屬性都是原子項,不可分割。

1nf是關係模式應具備的最起碼的條件,如果資料庫設計不能滿足第一正規化,就不能稱為關係型資料庫。關聯式資料庫設計研究的關係規範化是在1nf之上進行的。

2nf如果關係模式r是1nf,且每乙個非主屬性完全依賴於候選建,那麼就稱r是第二正規化。

第二正規化要滿足的條件:首先要滿足第一正規化,其次每乙個非主屬性要完全函式依賴於候選鍵,或者是主鍵。也就是說,每個非主屬性是由整個主鍵函式決定的,而不能有主鍵的一部分來決定。

第二正規化(2nf):符合1nf,並且,非主屬性完全依賴於碼。(乙個候選碼中的主屬性也可能是好幾個。如果乙個主屬性,它不能單獨做為乙個候選碼,那麼它也不能確定任何乙個非主屬性。

什麼樣的例項不符合第二正規化?

舉乙個教務管理系統的例子。

學生上課指定乙個老師,一本教材,乙個教室,乙個時間,學生去上課,怎麼設計資料庫?

有如下關係成立:

(學生,課程)——>教室;

(學生,課程)——>老師;

(學生,課程)——>老師職稱;

(學生,課程)——>教材;

(學生,課程)——>上課時間;

可以得出(學生,課程)是乙個碼。

又:課程——>教材;

(學生,課程)是乙個碼,課程卻決定了教材,這就叫做不完全依賴,或者說部分依賴。

出現了這種情況,就不滿足第二正規化了。

解決辦法:分解。進行投影分解:

3nf如果關係模式r是2nf,且關係模式r(u,f)中的所有非主屬性對任何候選關鍵字都不存在傳遞依賴,則稱關係r是屬於第三正規化。

第三正規化(3nf);符合2nf,並且,消除傳遞依賴。

上圖中符合2nf ,但存在傳遞依賴(老師——>老師職稱。乙個老師一定能確定乙個老師職稱)。

解決辦法:分解。投影分解:

其他正規化

第四正規化:要求把同一表內的多對多關係刪除。

第五正規化:從最終結構重新建立原始結構。

bc正規化(bcnf):符合3nf,並且,主屬性不依賴於主屬性。若關係模式r屬於第一正規化,且每個屬性都不傳遞依賴於鍵碼,則r屬於bc正規化。

資料庫 四 關係資料理論

關係內部屬性與屬性之間的一種約束關係,通過屬性間值的相等與否體現。好的模式應 避免插入 刪除 更新異常,資料冗餘盡量少。r u 是屬性集u上的關係模式,x y是u的子集,在r中任意乙個可能的關係r中,不可能存在兩個元組,其在x上的屬性值相等,而在y上的屬性值不等,則稱函式x確定y 或y函式依賴於x記...

資料庫六(關係資料理論)

一 資料依賴 乙個關係內部屬性與屬性之間的約束關係 型別 函式依賴 fd 和多值依賴 mvd 資料依賴對關係模式的影響 資料冗餘太大 更新異常 插入異常 刪除異常 二 規範化 乙個低一級正規化的關係模式可以通過模式分解轉為若干高階正規化的模式集合。函式依賴 乙個關係表中屬性之間的聯絡 設有乙個關係模...

關係資料理論

關係資料模式可能存在的問題是 1.資料冗餘 2.更新異常 3.插入異常 4.刪除異常乙個好的關係模式應當不會發生插入異常 刪除異常和更新異常,資料冗餘應該盡可能的少。函式依賴和別的資料依賴一樣是語義範疇的概念,只能根據語義來確定乙個函式依賴。若r屬於1nf,且每乙個非主屬性完全函式依賴於任何乙個候選...