一.什么是范式?
1.范式是一種離散數學的知識,是為了解決數據存儲和優化的問題,保存數據的存儲之后,凡是能通過關系尋找出來的數據,堅決不再重復存儲:終極目標是減少數據的冗余(以最少的數據完成最大的存儲)
2.范式是一種分層結構的規范
分為6層,1NF,2NF..6NF(6NF最高層,最嚴格)
每一層都比上一層更加嚴格,若要滿足下一層范式,前提是要滿足上一層范式.
范式只是為了解決空間問題,而數據庫不單是要解決空間問題,還要解決效率問題,所以數據庫的設計不能完全按照范式要求實現,一般情況下只有前三種范式要滿足
三.前三種范式 (1).第一范式(1NF)第一范式:第一范式要求數據具有原子性
如上表中的代課時間,當需要取代課的開始時間,需要將字段拆分,不滿足第一范式。解決方案是多帶帶兩個字段存儲開始時間和結束時間
(2).第二范式(2NF)第二范式:表中不允許出現部分依賴
出現部分依賴的原因是因為出現了復合主鍵,如下表中的講師和班級才能組合成一個主鍵,但性別只依賴于講師,教室只依賴于班級,出現了部分依賴
解決方案是使用邏輯主鍵(增加一個id做主鍵)
第三范式:不允許出現傳遞依賴
下表中性別依賴講師,講師依賴主鍵。教室依賴班級,班級依賴主鍵。所以,教室和性別都存在傳遞依賴
解決方案:將存在依賴的字段取出,形成一個多帶帶的表
注意:
永遠不要將邏輯主鍵看作是真正的主鍵,比如講師表中,真正的主鍵是講師,如果把id當成真正的主鍵,永遠會有依賴傳遞
而上面存在依賴傳遞的表中,真正的主鍵是(講師+班級),所以才會存在性別依賴講師,講師依賴主鍵(id=講師+班級)這種傳遞依賴
規范化程度較高的時候,我們可能需要做很多的關聯查詢,這樣勢必會導致效率的降低。所以有時設計表時,直接存儲想要的信息,而不去存儲id進行關聯查詢。這是一種磁盤利用率于效率的對抗
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/17764.html
摘要:具體做法是在概念數據模型設計時遵守第三范式,降低范式標準的工作放到物理數據模型設計時考慮。金額這個字段的存在,表明該表的設計不滿足第三范式,因為金額可以由單價乘以數量得到,說明金額是冗余字段。 一、第一范式 1NF是對屬性的原子性,要求屬性具有原子性,不可再分解; 表:字段1、 字段2(字段2.1、字段2.2)、字段3 ...... 如學生(學號,姓名,性別,出生年月日),如果認為最后...
閱讀 3915·2021-11-16 11:50
閱讀 927·2021-11-11 16:55
閱讀 3659·2021-10-26 09:51
閱讀 856·2021-09-22 15:03
閱讀 3409·2019-08-30 15:54
閱讀 3260·2019-08-30 15:54
閱讀 2468·2019-08-30 14:04
閱讀 919·2019-08-30 13:53