數據庫的3個范式之間的區別(圖文)
作為一個數據庫的學習者,搞懂關系數據庫三大范式是很有用的。很多人對數據庫的3個范式之間的區別是什么都不太了解,今天整理了數據庫的3個范式之間的區別,大家可以了解下:
數據庫的3個范式之間的區別?
第一范式(1NF):屬性不可拆分或無重復的列 。
這個簡單,就是一個屬性不允許再分成多個屬性來建立列。事實上,在目前的DBMS中是不可能拆分屬性的,因為他們不允許這么做。
第二范式(2NF):完全函數依賴 。
先講講什么是部分函數依賴。
部分函數依賴,就是多個屬性決定另一個屬性,但事實上,這多個屬性是有冗余的。例如,(學號,班級)->姓名,事實上,只需要學號就能決定姓名,因此班級是冗余的,應該去掉。
滿足第二范式的數據庫設計必須先滿足第一范式。
因此第二范式的目標就是消除函數依賴關系中左邊存在的冗余屬性。
3.第三范式(3NF):消除傳遞依賴不依賴于其他非主屬性(消除傳遞依賴)。
滿足第三范式的數據庫必須先滿足第二范式。
也就是,數據庫中的屬性依賴僅能依賴于主屬性,不存在于其他非主屬性的關聯。
例如,圖書,圖書室的關系。圖書包括編號、出版商、頁碼等信息,圖書室包括圖書室編號、所存圖書(外鍵)。其中,圖書室的表中不應該存儲任何圖書的具體信息,而只能通過主鍵圖書編號來獲得對應圖書的信息。
4.BC范式(BCNF):
(1)所有非主屬性對每一個碼都是完全函數依賴。
(2)所有的主屬性對于每一個不包含它的碼,也是完全函數依賴。
(3)沒有任何屬性完全函數依賴于非碼的任意一個組合。
R屬于3NF,不一定屬于BCNF,如果R屬于BCNF,一定屬于3NF。
5.第四范式(4NF):
對于每一個X->Y,X都能找到一個候選碼( 若關系中的某一屬性組的值能唯一地表示一個元組,而其真子集不行,則稱該屬性組為候選碼)。
數據庫的3個范式之間的區別?以上就是詳細的介紹內容。通過以上的介紹,大家應該對數據庫的3個范式有了一定的了解。
更多相關
相關文章
- linux的目錄結構;Linux系統各個目錄的作用介紹
- mssql2000數據庫通過附加數據庫轉到SQL2008(圖文)
- Win2012配置asp網站(圖文教程)
- win2008 r2系統iis7中如何設置ip限制(圖文)
- IIS7 支持html頁面包含(include)html頁面 IIS設置與代碼編寫
- Win2003+IIS6.0+php5.2.2+MySQL 5.0.41+phpMyAdmin 2.10.1環境配置安裝
- 網站采集入庫502 Bad Gateway錯誤時,修改PHP 配置修改參考
- 出錯了,[騰訊云COSFS]運行時發生錯誤!qcloud_cos.cos_exception.CosClientError: SecretId and SecretKey is Required!
- 騰訊Linux云主機快速掛載云盤命令,設置開機自動掛載詳細圖文教程
- 騰訊輕量云主機win2012系統掛載SSD云硬盤操作步驟(圖文)