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