SQL--數據庫的設計(范式)


SQL--數據庫的設計(范式)

博客說明

文章所涉及的資料來自互聯網整理和個人總結,意在於個人學習和經驗匯總,如有什么地方侵權,請聯系本人刪除,謝謝!

概念

設計數據庫時,需要遵循的一些規范。要遵循后邊的范式要求,必須先遵循前邊的所有范式要求

定義

設計關系數據庫時,遵從不同的規范要求,設計出合理的關系型數據庫,這些不同的規范要求被稱為不同的范式,各種范式呈遞次規范,越高的范式數據庫冗余越小。

目前關系數據庫有六種范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又稱完美范式)。

分類

第一范式(1NF)

每一列都是不可分割的原子數據項

第二范式(2NF

在1NF的基礎上,非碼屬性必須完全依賴於碼(在1NF基礎上消除非主屬性對主碼的部分函數依賴)

  • 幾個概念:
    1. 函數依賴:A-->B,如果通過A屬性(屬性組)的值,可以確定唯一B屬性的值。則稱B依賴於A
      例如:學號-->姓名。 (學號,課程名稱) --> 分數
    2. 完全函數依賴:A-->B, 如果A是一個屬性組,則B屬性值得確定需要依賴於A屬性組中所有的屬性值。
      例如:(學號,課程名稱) --> 分數
    3. 部分函數依賴:A-->B, 如果A是一個屬性組,則B屬性值得確定只需要依賴於A屬性組中某一些值即可。
      例如:(學號,課程名稱) -- > 姓名
    4. 傳遞函數依賴:A-->B, B -- >C . 如果通過A屬性(屬性組)的值,可以確定唯一B屬性的值,在通過B屬性(屬性組)的值可以確定唯一C屬性的值,則稱 C 傳遞函數依賴於A
      例如:學號-->系名,系名-->系主任
    5. 碼:如果在一張表中,一個屬性或屬性組,被其他所有屬性所完全依賴,則稱這個屬性(屬性組)為該表的碼
      例如:該表中碼為:(學號,課程名稱)
      • 主屬性:碼屬性組中的所有屬性
      • 非主屬性:除過碼屬性組的屬性
第三范式(3NF)

在2NF基礎上,任何非主屬性不依賴於其它非主屬性(在2NF基礎上消除傳遞依賴)

感謝

黑馬程序員

以及勤勞的自己
關注公眾號: 歸子莫,獲取更多的資料,還有更長的學習計划


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM