資料庫設計 正規化

2021-10-08 18:18:02 字數 1684 閱讀 9983

超鍵(super key):在關係中能唯一標識元組的屬性集稱為關係模式的超鍵

候選鍵(candidate key):不含有多餘屬性的超鍵稱為候選鍵

主鍵(primary key):使用者選作元組標識的乙個候選鍵程式主鍵

外來鍵(foreign key)如果關係模式r1中的某屬性集不是r1的主鍵,而是另乙個關係r2的主鍵則該屬性集是關係模式r1的外來鍵。

在關係模型中,候選鍵或候選碼(英語:candidate key)是某個關係變數的一組屬性所組成的集合,它需要同時滿足下列兩個條件:  

1.這個屬性集合始終能夠確保在關係中能唯一標識元組  

2.在這個屬性集合中找不出合適的子集能夠滿足條件  

滿足第乙個條件的屬性集合稱為超鍵,因此我們也可以把候選鍵定義為"最小超鍵",即不含有多餘屬性的超鍵。

完全函式依賴:

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

比如通過學號->姓名

部分函式依賴:

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

傳遞函式依賴:

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

多值依賴

它說的就是設r(u)是乙個屬性集u上的乙個關係模式, x、 y和z是u的子集,並且z=u-x-y。關係模式r(u)中多值依賴 x→→y成立,當且僅當對r(u)的任一關係r,給定的一對(x,z)值,有一組y的值,這組值僅僅決定於x值而與z值無關

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

第一正規化(1nf):強調的是列的原子性,即列不能夠再分成其他幾列。

第二正規化(2nf):首先是 1nf,另外包含兩部分內容,一是表必須有乙個主鍵;二是沒有包含在主鍵中的列必須完全依賴於主鍵,而不能只依賴於主鍵的一部分。

第二正規化建立在第一正規化的基礎上,非主屬性完全依賴於碼。

簡單說:消除部分依賴。

第三正規化(3nf):首先是 2nf,另外非主鍵列必須直接依賴於主鍵,不能存在傳遞依賴。即不能存在:非主鍵列 a 依賴於非主鍵列 b,非主鍵列 b 依賴於主鍵的情況。(如果存在非主屬性對於碼的傳遞函式依賴,則不符合3nf的要求)

第二正規化(2nf)和第三正規化(3nf)的概念很容易混淆,區分它們的關鍵點在於,2nf:非主鍵列是否完全依賴於主鍵,還是依賴於主鍵的一部分;3nf:非主鍵列是直接依賴於主鍵,還是直接依賴於非主鍵列。

bcnf:

1、是平凡依賴

2、函式依賴的左邊是超鍵

4nf:

1、不允許有非平凡且非函式依賴的多值依賴

2、允許的非平凡多值依賴是函式依賴

3、平凡的多值依賴屬於第四正規化

一二三正規化

依賴一二三bcnf

4nf

資料庫設計正規化

目前關聯式資料庫有六種正規化 第一正規化 1nf 第二正規化 2nf 第三正規化 3nf 第四正規化 4nf 第五正規化 5nf 和第六正規化 6nf 滿足最低要求的正規化是第一正規化 1nf 在第一正規化的基礎上進一步滿足更多要求的稱為第二正規化 2nf 其餘正規化以次類推。一般說來,資料庫只需滿...

資料庫設計正規化

前言 為什麼要寫這篇文章呢,從去年年底開始,就和很多做技術的朋友交流過,從資料庫設計到資料庫架構各個方面的內容。有一些朋友執著於orm,執著於所謂的資料庫設計,卻忘記了一切技術是要為業務服務這個基石。當然這文章裡也有一些自己的理解,想向大家表達。正規化是什麼 正規化是符合某一種級別的關係模式的集合。...

資料庫正規化設計

在軟體開發過程中,資料庫的設計是非常重要的。可以說,良好的資料庫設計,是對使用者需求的理解的精準定位。它不僅能夠使得軟體開發起來非常便捷,而且還能夠使軟體系統高效執行,同時,為日後的維護或者更換資料庫提供便利。在最近開發系統的過程中,感覺收穫最大的也是關於資料庫的操作。最初開發機房收費系統的時候,由...