資料庫之正規化

2022-09-15 22:51:22 字數 1170 閱讀 8764

1. 第一正規化(1nf):屬性不可拆分 或 無重複的列

這個簡單,就是乙個屬性不允許再分成多個屬性來建立列。事實上,在目前的dbms中是不可能拆分屬性的,因為他們不允許這麼做。

2. 第二正規化(2nf):完全函式依賴

先講講什麼是部分函式依賴。

部分函式依賴,就是多個屬性決定另乙個屬性,但事實上,這多個屬性是有冗餘的。例如,(學號,班級)->姓名,事實上,只需要學號就能決定姓名,因此班級是冗餘的,應該去掉。

滿足第二正規化的資料庫設計必須先滿足第一正規化。

因此第二正規化的目標就是消除函式依賴關係中左邊存在的冗餘屬性。

3.第三正規化(3nf):消除傳遞依賴

不依賴於其他非主屬性(消除傳遞依賴)。

滿足第三正規化的資料庫必須先滿足第二正規化。

也就是,資料庫中的屬性依賴僅能依賴於主屬性,不存在於其他非主屬性的關聯。

例如,圖書,圖書室的關係。圖書包括編號、出版商、頁碼等資訊,圖書室包括圖書室編號、所存圖書(外來鍵)。其中,圖書室的表中不應該儲存任何圖書的具體資訊(例如,出版商。。),而只能通過主鍵圖書編號來獲得對應圖書的資訊。

4.bc正規化(bcnf):

(1)所有非主屬性對每乙個碼都是完全函式依賴;

(2)所有的主屬性對於每乙個不包含它的碼,也是完全函式依賴;

(3)沒有任何屬性完全函式依賴於非碼的任意乙個組合。

r屬於3nf,不一定屬於bcnf,如果r屬於bcnf,一定屬於3nf。

5.第四正規化(4nf):

對於每乙個x->y,x都能找到乙個候選碼( 若關係中的某一屬性組的值能唯一地表示乙個元組,而其真子集不行,則稱該屬性組為候選碼)。

最後舉個例子(網上的):

學生表

學號姓名

教師學生關係編號

系編號愛好編號

一正規化,就是表裡的字段不能在劃分屬性了。

二正規化,滿足一正規化基礎,表裡不存在與學號沒關係的資訊

三正規化,滿足二正規化的基礎上,表裡不存在其他欄位的關聯,

bc正規化,滿足三正規化的基礎上,就是學生表裡的每行都不存在重複的資訊

第四正規化,滿足bc正規化,就是連愛好這樣字段,也不能出現 」籃球,足球「;要建立乙個愛好編號表,

資料庫之正規化

第一正規化 資料庫表中的字段都是單一屬性的,不可再分。這個單一屬性由基本型別構成,包括整型 實數 字元型 邏輯型 日期型等 第二正規化 資料庫表中不存在非關鍵字段對任意候選關鍵字段的部分函式依賴 部分函式依賴指的是存在組合關鍵字中的某些字段決定非關鍵字段的情況 也即所有非關鍵字段都完全依賴於任意一組...

資料庫之正規化 !

第一正規化 1nf 在任何乙個關聯式資料庫中,第一正規化 1nf 是對關係模式的基本要求,不滿足第一正規化 1nf 的資料庫就不是關聯式資料庫。所謂第一正規化 1nf 是指資料庫表的每一列都是不可分割的基本資料項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重複的屬性。如果出現重複...

資料庫理論之正規化

完全函式依賴 y完全函式依賴x,就是y依賴x的所有屬性,即x中少一項都推不出y 部分函式依賴 y部分函式依賴x,就是y依賴x的一部分屬性,即x的真子集也可能推出y 第一正規化 每個屬性都不可再分 第二正規化 第一正規化 每個非主屬性都完全函式依賴主碼 第三正規化 第二正規化 消除傳遞依賴 候選碼 能...