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