SQL--數(shù)據(jù)庫(kù)的設(shè)計(jì)(范式)
博客說(shuō)明
文章所涉及的資料來(lái)自互聯(lián)網(wǎng)整理和個(gè)人總結(jié)乓梨,意在于個(gè)人學(xué)習(xí)和經(jīng)驗(yàn)匯總牲剃,如有什么地方侵權(quán)遣疯,請(qǐng)聯(lián)系本人刪除,謝謝凿傅!
概念
設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí)另锋,需要遵循的一些規(guī)范。要遵循后邊的范式要求狭归,必須先遵循前邊的所有范式要求
定義
設(shè)計(jì)關(guān)系數(shù)據(jù)庫(kù)時(shí)夭坪,遵從不同的規(guī)范要求,設(shè)計(jì)出合理的關(guān)系型數(shù)據(jù)庫(kù)过椎,這些不同的規(guī)范要求被稱(chēng)為不同的范式室梅,各種范式呈遞次規(guī)范,越高的范式數(shù)據(jù)庫(kù)冗余越小疚宇。
目前關(guān)系數(shù)據(jù)庫(kù)有六種范式:第一范式(1NF)亡鼠、第二范式(2NF)、第三范式(3NF)敷待、巴斯-科德范式(BCNF)间涵、第四范式(4NF)和第五范式(5NF,又稱(chēng)完美范式)榜揖。
分類(lèi)
第一范式(1NF)
每一列都是不可分割的原子數(shù)據(jù)項(xiàng)
第二范式(2NF
在1NF的基礎(chǔ)上勾哩,非碼屬性必須完全依賴(lài)于碼(在1NF基礎(chǔ)上消除非主屬性對(duì)主碼的部分函數(shù)依賴(lài))
- 幾個(gè)概念:
- 函數(shù)依賴(lài):A-->B,如果通過(guò)A屬性(屬性組)的值,可以確定唯一B屬性的值举哟。則稱(chēng)B依賴(lài)于A
例如:學(xué)號(hào)-->姓名思劳。 (學(xué)號(hào),課程名稱(chēng)) --> 分?jǐn)?shù) - 完全函數(shù)依賴(lài):A-->B妨猩, 如果A是一個(gè)屬性組潜叛,則B屬性值得確定需要依賴(lài)于A屬性組中所有的屬性值。
例如:(學(xué)號(hào),課程名稱(chēng)) --> 分?jǐn)?shù) - 部分函數(shù)依賴(lài):A-->B威兜, 如果A是一個(gè)屬性組销斟,則B屬性值得確定只需要依賴(lài)于A屬性組中某一些值即可。
例如:(學(xué)號(hào)椒舵,課程名稱(chēng)) -- > 姓名 - 傳遞函數(shù)依賴(lài):A-->B, B -- >C . 如果通過(guò)A屬性(屬性組)的值票堵,可以確定唯一B屬性的值,在通過(guò)B屬性(屬性組)的值可以確定唯一C屬性的值逮栅,則稱(chēng) C 傳遞函數(shù)依賴(lài)于A
例如:學(xué)號(hào)-->系名,系名-->系主任 - 碼:如果在一張表中窗宇,一個(gè)屬性或?qū)傩越M措伐,被其他所有屬性所完全依賴(lài),則稱(chēng)這個(gè)屬性(屬性組)為該表的碼
例如:該表中碼為:(學(xué)號(hào)军俊,課程名稱(chēng))- 主屬性:碼屬性組中的所有屬性
- 非主屬性:除過(guò)碼屬性組的屬性
- 函數(shù)依賴(lài):A-->B,如果通過(guò)A屬性(屬性組)的值,可以確定唯一B屬性的值举哟。則稱(chēng)B依賴(lài)于A
第三范式(3NF)
在2NF基礎(chǔ)上侥加,任何非主屬性不依賴(lài)于其它非主屬性(在2NF基礎(chǔ)上消除傳遞依賴(lài))
感謝
黑馬程序員
以及勤勞的自己