摘要:具體做法是在概念數據模型設計時遵守第三范式,降低范式標準的工作放到物理數據模型設計時考慮。金額這個字段的存在,表明該表的設計不滿足第三范式,因為金額可以由單價乘以數量得到,說明金額是冗余字段。
一、第一范式
1NF是對屬性的原子性,要求屬性具有原子性,不可再分解;
表:字段1、 字段2(字段2.1、字段2.2)、字段3 ......
如學生(學號,姓名,性別,出生年月日),如果認為最后一列還可以再分成(出生年,出生月,出生日),它就不是一范式了,否則就是;
二、第二范式2NF是對記錄的惟一性,要求記錄有惟一標識,即實體的惟一性,即不存在部分依賴;
表:學號、課程號、姓名、學分;
這個表明顯說明了兩個事務:學生信息, 課程信息;由于非主鍵字段必須依賴主鍵,這里學分依賴課程號,姓名依賴與學號,所以不符合二范式。
可能會存在問題:
數據冗余:,每條記錄都含有相同信息;
刪除異常:刪除所有學生成績,就把課程信息全刪除了;
插入異常:學生未選課,無法記錄進數據庫;
更新異常:調整課程學分,所有行都調整。
正確做法:
學生:Student(學號, 姓名);
課程:Course(課程號, 學分);
選課關系:StudentCourse(學號, 課程號, 成績)。
3NF是對字段的冗余性,要求任何字段不能由其他字段派生出來,它要求字段沒有冗余,即不存在傳遞依賴;
表: 學號, 姓名, 年齡, 學院名稱, 學院電話
因為存在依賴傳遞: (學號) → (學生)→(所在學院) → (學院電話) 。
可能會存在問題:
數據冗余:有重復值;
更新異常:有重復的冗余信息,修改時需要同時修改多條記錄,否則會出現數據不一致的情況 。
正確做法:
學生:(學號, 姓名, 年齡, 所在學院);
學院:(學院, 電話)。
四、反范式化一般說來,數據庫只需滿足第三范式(3NF)就行了。
沒有冗余的數據庫設計可以做到。但是,沒有冗余的數據庫未必是最好的數據庫,有時為了提高運行效率,就必須降低范式標準,適當保留冗余數據。具體做法是:在概念數據模型設計時遵守第三范式,降低范式標準的工作放到物理數據模型設計時考慮。降低范式就是增加字段,允許冗余,達到以空間換時間的目的。
〖例〗:有一張存放商品的基本表,如表1所示。“金額”這個字段的存在,表明該表的設計不滿足第三范式,因為“金額”可以由“單價”乘以“數量”得到,說明“金額”是冗余字段。但是,增加“金額”這個冗余字段,可以提高查詢統計的速度,這就是以空間換時間的作法。
在Rose 2002中,規定列有兩種類型:數據列和計算列。“金額”這樣的列被稱為“計算列”,而“單價”和“數量”這樣的列被稱為“數據列”。
五、范式化設計和反范式化設計的優缺點 5.1 范式化優點:
缺點:
5.2 反范式化優點:
缺點:
參考資料如下:
1、通俗地理解數據庫三個范式
2、數據庫模型設計,第一范式、第二范式、第三范式簡單例子理解
3、數據庫三大范式最簡單的解釋
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/17702.html
摘要:注意本文目的不在開發一個什么什么插件,只告訴你如何進行開發注下文并無太多代碼,代碼建議到你新建一個模版插件然后你就擁有了所有的代碼,然后根據下文加深自己的理解,相信你會看懂它。開始開發入口文件有個方法釋放資源的方法不要做其他事情。 atom高級用法???除了自定義功能基本沒啥好玩,抱著裝逼的想法,搜了一波atom插件入門,發現說得太迷糊(可能是我太菜),然后打開了官網的插件文檔,細細的...
摘要:暴露年齡了廣告詞飯后嚼兩粒大概,故事性很強,比較有意思同時直入主題,飯后吃益達口香糖有益健康。書里破繭成蝶說道,揣摩用戶的心思遠遠不夠,你不可能完整的想到別人在想什么,所以還需要去體驗用戶的生活。 用戶體驗(User Experience,簡稱UX 或是UE),它指用戶在使用一個產品、系統或者服務時建立起來的純主觀感受。 showImg(https://segmentfault.com...
摘要:暴露年齡了廣告詞飯后嚼兩粒大概,故事性很強,比較有意思同時直入主題,飯后吃益達口香糖有益健康。書里破繭成蝶說道,揣摩用戶的心思遠遠不夠,你不可能完整的想到別人在想什么,所以還需要去體驗用戶的生活。 用戶體驗(User Experience,簡稱UX 或是UE),它指用戶在使用一個產品、系統或者服務時建立起來的純主觀感受。 showImg(https://segmentfault.com...
閱讀 1582·2021-11-16 11:44
閱讀 7423·2021-09-22 15:00
閱讀 4462·2021-09-02 10:20
閱讀 1944·2021-08-27 16:20
閱讀 2385·2019-08-26 14:00
閱讀 2905·2019-08-26 11:44
閱讀 1627·2019-08-23 18:33
閱讀 1853·2019-08-22 17:28