欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
循序漸進(jìn)講解數據表的十二個(gè)設計原則 — IT技術(shù)
循序漸進(jìn)講解數據表的十二個(gè)設計原則
發(fā)布時(shí)間:2008.05.04 04:55     來(lái)源:賽迪網(wǎng)    作者:Alice
【賽迪網(wǎng)-IT技術(shù)報道】數據表的設計原則:
(1)不應針對整個(gè)系統進(jìn)行數據庫設計,而應該根據系統架構中的組件劃分,針對每個(gè) 組件所處理的業(yè)務(wù)進(jìn)行組件單元的數據庫設計;不同組件間所對應的數據庫表之間的關(guān)聯(lián)應盡可能減少,如果不同組件間的表需要外鍵關(guān)聯(lián)也盡量不要創(chuàng )建外鍵關(guān) 聯(lián),而只是記錄關(guān)聯(lián)表的一個(gè)主鍵,確保組件對應的表之間的獨立性,為系統或表結構的重構提供可能性。
(2)采用領(lǐng)域模型驅動(dòng)的方式和自頂向下的思路進(jìn)行數據庫設計,首先分析系統業(yè)務(wù), 根據職責定義對象。對象要符合封裝的特性,確保與職責相關(guān)的數據項被定義在一個(gè)對象之內,這些數據項能夠完整描述該職責,不會(huì )出現職責描述缺失。并且一個(gè) 對象有且只有一項職責,如果一個(gè)對象要負責兩個(gè)或兩個(gè)以上的職責,應進(jìn)行分拆。
(3)根據建立的領(lǐng)域模型進(jìn)行數據庫表的映射,此時(shí)應參考數據庫設計第二范式:一個(gè) 表中的所有非關(guān)鍵字屬性都依賴(lài)于整個(gè)關(guān)鍵字。關(guān)鍵字可以是一個(gè)屬性,也可以是多個(gè)屬性的集合,不論那種方式,都應確保關(guān)鍵字能夠保證唯一性。在確定關(guān)鍵字 時(shí),應保證關(guān)鍵字不會(huì )參與業(yè)務(wù)且不會(huì )出現更新異常,這時(shí),最優(yōu)解決方案為采用一個(gè)自增數值型屬性或一個(gè)隨機字符串作為表的關(guān)鍵字。
(4)由于第一點(diǎn)所述的領(lǐng)域模型驅動(dòng)的方式設計數據庫表結構,領(lǐng)域模型中的每一個(gè)對象只有一項職責,所以對象中的數據項不存在傳遞依賴(lài),所以,這種思路的數據庫表結構設計從一開(kāi)始即滿(mǎn)足第三范式:一個(gè)表應滿(mǎn)足第二范式,且屬性間不存在傳遞依賴(lài)。
(5)同樣,由于對象職責的單一性以及對象之間的關(guān)系反映的是業(yè)務(wù)邏輯之間的關(guān)系,所以在領(lǐng)域模型中的對象存在主對象和從對象之分,從對象是從1-N或N-N的角度進(jìn)一步主對象的業(yè)務(wù)邏輯,所以從對象及對象關(guān)系映射為的表及表關(guān)聯(lián)關(guān)系不存在刪除和插入異常。
(6)在映射后得出的數據庫表結構中,應再根據第四范式進(jìn)行進(jìn)一步修改,確保不存在 多值依賴(lài)。這時(shí),應根據反向工程的思路反饋給領(lǐng)域模型。如果表結構中存在多值依賴(lài),則證明領(lǐng)域模型中的對象具有至少兩個(gè)以上的職責,應根據第一條進(jìn)行設計 修正。第四范式:一個(gè)表如果滿(mǎn)足BCNF,不應存在多值依賴(lài)。
(7)在經(jīng)過(guò)分析后確認所有的表都滿(mǎn)足二、三、四范式的情況下,表和表之間的關(guān)聯(lián)盡 量采用弱關(guān)聯(lián)以便于對表字段和表結構的調整和重構。并且,我認為數據庫中的表是用來(lái)持久化一個(gè)對象實(shí)例在特定時(shí)間及特定條件下的狀態(tài)的,只是一個(gè)存儲介 質(zhì),所以,表和表之間也不應用強關(guān)聯(lián)來(lái)表述業(yè)務(wù)(數據間的一致性),這一職責應由系統的邏輯層來(lái)保證,這種方式也確保了系統對于不正確數據(臟數據)的兼 容性。當然,從整個(gè)系統的角度來(lái)說(shuō)我們還是要盡最大努力確保系統不會(huì )產(chǎn)生臟數據,單從另一個(gè)角度來(lái)說(shuō),臟數據的產(chǎn)生在一定程度上也是不可避免的,我們也要 保證系統對這種情況的容錯性。這是一個(gè)折中的方案。
(8)應針對所有表的主鍵和外鍵建立索引,有針對性的(針對一些大數據量和常用檢索 方式)建立組合屬性的索引,提高檢索效率。雖然建立索引會(huì )消耗部分系統資源,但比較起在檢索時(shí)搜索整張表中的數據尤其時(shí)表中的數據量較大時(shí)所帶來(lái)的性能影 響,以及無(wú)索引時(shí)的排序操作所帶來(lái)的性能影響,這種方式仍然是值得提倡的。
(9)盡量少采用存儲過(guò)程,目前已經(jīng)有很多技術(shù)可以替代存儲過(guò)程的功能如“對象/關(guān) 系映射”等,將數據一致性的保證放在數據庫中,無(wú)論對于版本控制、開(kāi)發(fā)和部署、以及數據庫的遷移都會(huì )帶來(lái)很大的影響。但不可否認,存儲過(guò)程具有性能上的優(yōu) 勢,所以,當系統可使用的硬件不會(huì )得到提升而性能又是非常重要的質(zhì)量屬性時(shí),可經(jīng)過(guò)平衡考慮選用存儲過(guò)程。
(10)當處理表間的關(guān)聯(lián)約束所付出的代價(jià)(常常是使用性上的代價(jià))超過(guò)了保證不會(huì ) 出現修改、刪除、更改異常所付出的代價(jià),并且數據冗余也不是主要的問(wèn)題時(shí),表設計可以不符合四個(gè)范式。四個(gè)范式確保了不會(huì )出現異常,但也可能由此導致過(guò)于 純潔的設計,使得表結構難于使用,所以在設計時(shí)需要進(jìn)行綜合判斷,但首先確保符合四個(gè)范式,然后再進(jìn)行精化修正是剛剛進(jìn)入數據庫設計領(lǐng)域時(shí)可以采用的最好 辦法。
(11)設計出的表要具有較好的使用性,主要體現在查詢(xún)時(shí)是否需要關(guān)聯(lián)多張表且還需使用復雜的SQL技巧。
(12)設計出的表要盡可能減少數據冗余,確保數據的準確性,有效的控制冗余有助于提高數據庫的性能。(責任編輯:盧兆林)
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Access教程 第一章 Access數據庫基礎
輸入關(guān)鍵字后數據表對應行自動(dòng)上色
數據庫表結構設計方法及原則(li)
yii中數據模型的使用
Oracle 9i的數據表類(lèi)型
數據庫入門(mén)必看-----數據庫范式1NF 2NF 3NF_「Access新手學(xué)堂」_Off...
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久