MySQL關係規範化

2021-10-25 02:14:14 字數 2046 閱讀 1737

指導老師:桃群老師

1、函式依賴

什麼是函式依賴?比如學生管理系統資料庫,有學生姓名(sname)、學生系名(sdept)、學生學號(sno)等等。乙個學號只能唯一確定乙個學生,乙個學生只在乙個系學習。所以,當「學號」確定後,學生姓名和該學生所在系也被唯一確定了。

這時我們可以說

sno函式決定sname和sdept,或者說sname,sdept函式依賴於sno

可記作:sno->sname,sno->sdept

1.1 完全函式依賴
在r(u)中,若x->y,並且對於x的任意乙個真子集x』,都有y不依賴於x』,那麼稱y對x完全函式依賴

比如乙個學生的學號和課程號才能共同決定乙個學生該門課的成績,即(sno,cno)->grade,但x的真子集為sno或者cno,他們無法單獨決定該門課的成績,所以學號和課程號完全函式依賴成績

2.2 部分函式依賴

在r(u)中,若x->y,對於x的任意乙個真子集x』,有y依賴於x』 ,那麼稱y對x部分函式依賴。

比如(sno,cno)->sname,x的真子集sno和cn都能單獨決定學生姓名,所以學號和課程號部分函式依賴學生姓名。

2.3 傳遞函式依賴

在r(u)中,如果y依賴於x,x不依賴於y,z依賴於y,則稱z對x傳遞函式依賴;

比如:sno->sdept,sdept不依賴於sno,sdept->manager,則sno傳遞函式依賴於manager

2.4 直接函式依賴

在r(u)中,如果y依賴於x,x依賴於y,z依賴於y,則稱z對x直接函式依賴

比如:sno->sdept,sdept->sno,sdept->manager,則sno直接函式依賴於manager

正規化是衡量關係的規範化程度。

1、第一正規化 (1nf)

若乙個關係模式r的所有屬性都是不可再分項,則該關係屬於第一正規化學號

姓名班級

正班長副班長

2018029

成小白5班

龍龍豫豫

2018030

晨小美5班

龍龍豫豫

在上面這個**中,所有屬性都是不可再分項,所以該關係為1nf。

2、第二正規化(2nf)

1nf是關聯式資料庫中對關係最基本的要求,但不是理想的結構形式,仍然有大量的資料冗餘和操作異常。所以為了解決這些問題,就要消除模式中屬性之間存在的部分函式依賴,將其轉化成更高一級的第二正規化。

若關係模式r屬於1nf,且r中每個非主屬性都完全函式依賴於主關鍵字,則稱r是第二正規化(2nf)

也就是說當1nf消除了非主屬性對關鍵字的部分函式依賴,則稱為2nf

案例:

學生關係s(sno,sname,sdept,manager,cno,grade)

·關係s屬於第一正規化

·關係s不屬於第二正規化,存在非主屬性對(sno,cno)的部分函式依賴

·如果將該學生關係s分解成以下兩個關係s1和s2,

-s1(sno,cno,grade),這時grade完全依賴於主碼

沒有部分函式依賴,所以屬於第二正規化

-s2(sno,sname,sdept,manager)

主碼是sno,其他非主關鍵字都是完全函式依賴於主碼

屬於第二正規化

3、第三正規化(3nf)

當第二正規化消除了非主屬性對碼的傳遞函式依賴,則稱為第三正規化

舉例:4、bc正規化(bcnf)

當第三正規化消除了主屬性對碼的部分和傳遞函式依賴,稱為bcnf

從資料庫設計的角度看,在函式依賴的基礎上,分解最高正規化bcnf的模式中仍然勳在資料冗餘問題,這時就需要更高的正規化來解決這個問題,本篇文章先到這裡,後面再更新多值依賴,連線依賴和更高正規化喔~

關係模式規範化

關係模式 關係模式相當於一張二維表的框架,在這個框架下填入資料,稱為關係模式的乙個例項,或者叫關係 r r a1,a2,a3.ai r是關係名,ai是關係的屬性名。乙個關係名對應一張表,關係名對應表名,屬性對應表中的列名。關係模式的簡化表示法 r。未經規範化的資料庫一般都有下述缺點 較大的資料冗餘,...

關係模式規範化

3nf規範化 通過該演算法可以獲得乙個保持函式依賴性並滿足3nf的關係模式分解 先求出fmin 1 x a,xa r 那麼xa單獨構成乙個關係模式 2 如果關係模式r中的某些屬性與函式依賴集f的左右部屬性均無關的話,將他們單獨作為乙個模式 3 出現x a1,x a2 可以合併成乙個關係模式 x a1...

關係模式的規範化

原文路徑 了解關係模式規範化的作用 掌握第一正規化 重點 掌握第二正規化 重點 掌握第三正規化 重點 回顧關係模式 關係模式 關係模式相當於一張二維表的框架,在這個框架下填入資料,稱為關係模式的乙個例項,或者叫關係 r r a1,a2,a3.ai r是關係名,ai是關係的屬性名。乙個關係名對應一張表...