數據庫三範式通俗說法,書上說的太蛋疼

簡單來說三句話:

1NF、列不可分;

2NF、不存在部分依賴;

3NF、不存在傳遞依賴。


解釋:

1NF:原子性,即字段不可以再分。



2NF:唯一性,不可以把多種數據保存在同一張表中,即一張表只能保存“一種”數據。

不符合第二範式的表:學號, 姓名, 年齡, 課程名稱, 成績, 學分; 

可能會存在問題:

數據冗餘,每條記錄都含有相同信息; 
刪除異常:刪除所有學生成績,就把課程信息全刪除了; 
插入異常:學生未選課,無法記錄進數據庫; 
更新異常:調整課程學分,所有行都調整。 

正確做法: 
學生:Student(學號, 姓名, 年齡); 
課程:Course(課程名稱, 學分); 
選課關係:StudentCourse(學號, 課程名稱, 成績)。 

3NF:直接性,每一列都和主鍵直接相關,而不能間接相關。(依賴不準傳遞)

不符合第三範式的表: 學號, 姓名, 年齡, 學院名稱, 學院電話,因爲存在依賴傳遞: (學號) → (學生)(所在學院) → (學院電話) 。

可能會存在問題:

數據冗餘:有重複值; 
更新異常:有重複的冗餘信息,修改時需要同時修改多條記錄,否則會出現數據不一致的情況 

正確做法:

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

學院:(學院, 電話)。


發佈了23 篇原創文章 · 獲贊 63 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章