數據庫范式


自己開發了一個股票軟件,功能很強大,需要的點擊下面的鏈接獲取:

https://www.cnblogs.com/bclshuai/p/11380657.html

數據庫范式

目錄

1      關鍵碼... 1

2      依賴... 1

3      范式... 2

 

 

1        關鍵碼

1) 超鍵:在關系中能唯一標識元組的屬性或屬性集稱為關鍵模式的超鍵。

2) 候選鍵:不含有多余屬性的超鍵稱為候選鍵。也就是在候選鍵中在刪除屬性就不是鍵了。

3) 主鍵:用戶選作元組標識的候選鍵稱為主鍵。一般不加說明,鍵就是指主鍵。

4) 外鍵:如果模式R中屬性K是其他模式的主鍵,那么K在模式R中稱為外鍵。

 

2        依賴

(1)部分函數依賴:設X,Y是關系R的兩個屬性集合,存在X→Y,若X’是X的真子集,存在X’→Y,則稱Y部分函數依賴於X。

舉個例子:學生基本信息表R中(學號,身份證號,姓名)當然學號屬性取值是唯一的,在R關系中,(學號,身份證號)->(姓名),(學號)->(姓名),(身份證號)->(姓名);所以姓名部分函數依賴與(學號,身份證號);

(2)完全函數依賴:設X,Y是關系R的兩個屬性集合,X’是X的真子集,存在X→Y,但對每一個X’都有X’!→Y,則稱Y完全函數依賴於X。

例子:學生基本信息表R(學號,班級,姓名)假設不同的班級學號有相同的,班級內學號不能相同,在R關系中,(學號,班級)->(姓名),但是(學號)->(姓名)不成立,(班級)->(姓名)不成立,所以姓名完全函數依賴與(學號,班級);

 

(3)傳遞函數依賴:設X,Y,Z是關系R中互不相同的屬性集合,存在X→Y(Y !→X),Y→Z,則稱Z傳遞函數依賴於X。

例子:在關系R(學號 ,學院號, 學院地址)中,(學號)->(學院號),學院號->學院地址,所以是傳遞函數依賴關系;

(4)多值依賴:屬性值之間存在多對多的關系,如下圖所示,一個課程,有多個老師上,一個課程,也有多個不同的年級要上,course多值依賴teacher,course多值依賴class。存在多對多或者一對多的關系。

 

 

 

3        范式

(1)第一范式(1NF):一個關系模式R的所有屬性都是不可分的基本數據項。例如學生表中高三2班,這是一個復合屬性,需要拆分為年級(高三)和班級(2班)之后,才滿足第一范式。

 

(2)第二范式(2NF):關系模式R屬於第一范式,存在唯一標識記錄的主鍵,不存在非關鍵字段對任一候選關鍵字段的部分函數依賴。例如學生表的(學號,身份證號)->(姓名),(學號)->(姓名),(身份證號)->(姓名);所以姓名部分函數依賴與(學號,身份證號);

 

(3)第三范式(3NF):關系模式R屬於第二范式,且每個非主屬性都不傳遞依賴於鍵碼。例如學生關系表為Student(學號,姓名,年齡,所在學院,學院地點,學院電話),(學號)->(學院號),學院號->學院地址,所以存在傳遞函數依賴關系。要符合第三范式,要消除傳遞依賴關系,拆分為兩個表格

學生:(學號,姓名,年齡,所在學院);

學院:(學院,地點,電話)。

(4) BC范式(BCNF):關系模式R屬於第三范式,不存在任何字段對任一候選關鍵字段的傳遞函數依賴,相對於第三范式,就是候選關鍵字之間不存在傳遞依賴。例如(倉庫ID,存儲物品ID,管理員ID,數量),且有一個管理員只在一個倉庫工作,一個倉庫可以存儲多種物品。這個數據庫表中存在如下決定關系:

(倉庫ID,存儲物品ID) →(管理員ID,數量)

(管理員ID,存儲物品ID) → (倉庫ID,數量)

所以(倉庫ID,存儲物品ID)和(管理員ID,存儲物品ID)都是StorehouseManage的候選關鍵字,表中的唯一非關鍵字段為數量,它是符合第三范式的。但是,由於存在如下決定關系,不滿足BCNF范式。

(倉庫ID) → (管理員ID)

(管理員ID) → (倉庫ID)

總結

第一范式:消除了復合屬性,例如高三2班;

第二范式:不存在非主屬性對主屬性的部分依賴。例如(學號,身份證號)->(姓名);

第三范式,消除了非候選主鍵屬性對候選主鍵屬性的傳遞依賴。

BCNF范式:消除候選主鍵之間的傳遞依賴關系。

 

消除決定因素 | 1NF

| ↓ 消除非主屬性對碼的部分函數依賴

函數依賴 | 2NF

| ↓ 消除非主屬性對碼的傳遞函數依賴

| 3NF

| ↓ 消除主屬性對碼的部分和傳遞函數依賴

| BCNF

| ↓ 消除非平凡且非函數依賴的多值依賴

| 4NF

| ↓消除不是由候選碼所蘊含的連接依賴

| 5NF


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM