對數據庫三大範式及BC範式的理解

1.第一範式:數據庫的字段是單一屬性,不可再分
不能是複合屬性,如果存在,應該拆分爲多個屬性 

不能是多值屬性,如果存在,應該建立一個實體,而讓此屬性與其存在1對多的關係) 

不能是重複屬性

2.第二範式:任何非關鍵字段不能部分依賴任一侯選關鍵字(即必須完全依賴)
表中必須存在侯選關鍵字,即每一行不同於其他任一行,是惟一區分的 

任何非關鍵字段不能依賴於侯選關鍵字的一部分

3.第三範式:任何非關鍵字段不能傳遞依賴任一侯選關鍵字
非關鍵字字段必須直接依賴任一侯選關鍵字 

非關鍵字段C不能依賴非侯選關鍵字B,因爲樣會形成傳遞依賴:侯選關鍵字A=>B=>C,因爲這時的B往往是外鍵,即其他表的主鍵,也就是說表 中不能含有其他表的非主屬性

4.BC範式:任何字段都不能傳遞依賴任一侯選關鍵字
與第三範式相比,一個是“任何非關鍵字段不能”,一個是“任何字段不能”,顯然更嚴格了 

侯選關鍵字或其部分字段不能傳遞依賴其他的侯選關關鍵字

註釋:
侯選關鍵字:又叫侯選碼,惟一標識一行數據,其真子集不能是侯選關鍵字,一個表可以存在多個侯選關鍵字,如用戶表的username,userid
主關鍵字:又叫主鍵,主碼,被選中的用來區分其它行的侯選關鍵字,一個表只有一個主關鍵字
部分依賴:(A,B)->C,D,如A->C,則C部分依賴A
傳遞依賴:A->B->C,則C傳遞依賴A
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章