一:爲何會提出範式?數據庫
爲了保證數據庫設計的合理性(由於數據庫設計關係整個系統的架構和後序開發效率和運行效率)架構
二:什麼是合理的數據庫呢?數據庫設計
結構合理、冗餘較小、儘可能避免DML操做異常函數
三:提出範式概念性能
在關係型數據庫中遵循的規則稱爲 範式(NF:Normal Form)學習
四:範式分類設計
學習範式遵循的基本原則:大前提下遵循範式、細節上能夠靈活使用它orm
1.第一範式blog
數據庫表每一列是不可分割的基本數據項(確保每列都保持原子性)開發
eg:反例
所以,將來在作設計的時候須要考慮 某一列是否會反覆用,此時是否須要考慮是否符合範式。
2.第二範式(限制多對多關係)--》經過外鍵+聯合主鍵關聯表
非主屬性徹底函數依賴於碼(在一個數據庫表中只能保存一種數據,不可能把多種數據保存到一張表中)
eg:
ps:能夠發現課程名稱列出現了數據冗餘,爲避免數據冗餘——》須要知足第二範式拆分此表
3.第三範式(限制一對多關係的)--》在從表中創建外鍵,從而利用主表信息
在2NF基礎上,不含有非主屬性對碼的傳遞函數依賴
eg1:
eg2:
5、範式缺點
性能下降(多表查詢比單表查詢慢)
6、如何表示數據庫表之間關係
使用外鍵
7、數據庫外鍵關係表示的實際上是一種一對多關係
1.一對一 :外鍵+惟一性約束
2.多對多:轉化爲兩個一對多