數(shù)據(jù)庫的設(shè)計
一快集、多表之間的關(guān)系
1、多表之間的關(guān)系
1.一對一的關(guān)系:
如:人和身份證之間的關(guān)系
一個人只有一個身份證廉白,一個身份證只能對應(yīng)一個人
2.一對多个初、多對一:
如:部門和員工
一個部門有多個員工,一個員工只能對應(yīng)一個部門
3.多對多:
如:學(xué)生和課程
一個學(xué)生可以選擇很多課程猴蹂,一個課程也可以被很多學(xué)生選擇
需要借助中間表
2院溺、實現(xiàn)關(guān)系
1.一對多(多對一):
如:部門和員工
實現(xiàn)方式:在多的一方建立外鍵指向一的一方主鍵
2.多對多:
如:學(xué)生和課程
實現(xiàn)方式:多對多的關(guān)系實現(xiàn)需要借助第三張中間表。中間表至少包含兩個字段磅轻,這兩個字段作為第三張表的外鍵珍逸,分別指向兩張表的主鍵
2.一對一:
如:學(xué)生和身份證
實現(xiàn)方式:一對一的關(guān)系實現(xiàn),可以在任意一方添加唯一外鍵指向另一方的主鍵
3聋溜、案例
二谆膳、數(shù)據(jù)庫設(shè)計的范式
概念:設(shè)計數(shù)據(jù)庫時,需要遵循的一些規(guī)范撮躁,要遵循后邊的范式要求漱病,必須遵循前邊的所有范式的要求。
設(shè)計關(guān)系數(shù)據(jù)庫時馒胆,遵循不同的規(guī)范要求缨称,設(shè)計出合理的關(guān)系型數(shù)據(jù)庫,這些不同的規(guī)范要求被成為不同的范式祝迂,各種范式呈遞次規(guī)范睦尽,越高的范式數(shù)據(jù)庫冗余越小。
目前關(guān)系數(shù)據(jù)庫有六種范式型雳,第一范式(1NF)当凡、第二范式(2NF)、第三范式(3NF)纠俭、巴斯-科德范式(BCNF)沿量、第四范式(4NF)、第五范式(5NF冤荆,又稱完美范式)朴则。
-
分類:
第一范式(1NF):每一列都是不可分割的原子數(shù)據(jù)項
第二范式(2NF):在1NF的基礎(chǔ)上,非碼屬性必須完全依賴于候選碼(在1NF基礎(chǔ)上消除非主屬性對主碼的部分函數(shù)依賴)
* 幾個概念:
1钓简、函數(shù)依賴:A -->B 如果通過A屬性(屬性組)的值乌妒,可以確定唯一B屬性的值汹想,則稱B依賴于A
例如:學(xué)號被姓名所依賴 、(學(xué)號撤蚊,課程名稱)-->分數(shù)
2古掏、完全函數(shù)依賴:A -->B如果A是一個屬性組,則B屬性值的確定需要依賴于A屬性組中所有的屬性值
例如:(學(xué)號侦啸,課程名稱)-->分數(shù)
3槽唾、部分函數(shù)依賴:A -->B如果A是一個屬性組,則B屬性值的確定只需要依賴于A屬性組中某一些值即可光涂。
例如:(學(xué)號庞萍,課程名稱)---->姓名
4、傳遞函數(shù)依賴:A---> B ,B ----->C ,如果通過A屬性(屬性組)的值忘闻,可以確定唯一B屬性的值挂绰,再通過B屬性(屬性組)的值可以確定唯一屬性的值,則稱C傳遞函數(shù)依賴于A
5服赎、碼:如果在一張表中,一個屬性或?qū)傩越M交播,被其他所有屬性完全依賴重虑,則稱這個屬性為該表的碼
主屬性:碼屬性組中所有的屬性
非主屬性:除過碼屬性組中的屬性
相對第一范式,第二范式解決了存在數(shù)據(jù)冗余的問題(重復(fù)):姓名秦士、系名缺厉、系主任
第三范式(3NF):在2NF的基礎(chǔ)上,任何非主屬性不依賴于其他非主屬性(在2NF基礎(chǔ)上消除傳遞依賴)