數(shù)據(jù)庫(kù)表的結(jié)構(gòu)設(shè)計(jì)有什么方法原則是怎樣的
資料介紹
在目前的企業(yè)信息系統(tǒng)中,數(shù)據(jù)庫(kù)還是最佳的數(shù)據(jù)存儲(chǔ)方式,雖然已經(jīng)有很多的書(shū)籍在指導(dǎo)我們進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì),但應(yīng)該那種方式是設(shè)計(jì)數(shù)據(jù)庫(kù)的表結(jié)構(gòu)的最好方法、設(shè)計(jì)時(shí)應(yīng)遵從什么樣的原則、四個(gè)范式如何能夠用一種方式達(dá)到順暢的應(yīng)用等是我一直在思考和總結(jié)的問(wèn)題,下文是我針對(duì)這幾個(gè)問(wèn)題根據(jù)自己的設(shè)計(jì)經(jīng)歷準(zhǔn)備總結(jié)的一篇文章的提綱,歡迎大家一塊進(jìn)行探討,集思廣益。其中提到了領(lǐng)域建模的概念,但未作詳細(xì)解釋,希望以后能夠有時(shí)間我們針對(duì)這個(gè)命題進(jìn)行深入探討。
1)不應(yīng)該針對(duì)整個(gè)系統(tǒng)進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì),而應(yīng)該根據(jù)系統(tǒng)架構(gòu)中的組件劃分,針對(duì)每個(gè)組件所處理的業(yè)務(wù)進(jìn)行組件單元的數(shù)據(jù)庫(kù)設(shè)計(jì);不同組件間所對(duì)應(yīng)的數(shù)據(jù)庫(kù)表之間的關(guān)聯(lián)應(yīng)盡可能減少,如果不同組件間的表需要外鍵關(guān)聯(lián)也盡量不要?jiǎng)?chuàng)建外鍵關(guān)聯(lián),而只是記錄關(guān)聯(lián)表的一個(gè)主鍵,確保組件對(duì)應(yīng)的表之間的獨(dú)立性,為系統(tǒng)或表結(jié)構(gòu)的重構(gòu)提供可能性。
2)采用領(lǐng)域模型驅(qū)動(dòng)的方式和自頂向下的思路進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì),首先分析系統(tǒng)業(yè)務(wù),根據(jù)職責(zé)定義對(duì)象。對(duì)象要符合封裝的特性,確保與職責(zé)相關(guān)的數(shù)據(jù)項(xiàng)被定義在一個(gè)對(duì)象之內(nèi),這些數(shù)據(jù)項(xiàng)能夠完整描述該職責(zé),不會(huì)出現(xiàn)職責(zé)描述缺失。并且一個(gè)對(duì)象有且只有一項(xiàng)職責(zé),如果一個(gè)對(duì)象要負(fù)責(zé)兩個(gè)或兩個(gè)以上的職責(zé),應(yīng)進(jìn)行分拆。
3)根據(jù)建立的領(lǐng)域模型進(jìn)行數(shù)據(jù)庫(kù)表的映射,此時(shí)應(yīng)參考數(shù)據(jù)庫(kù)設(shè)計(jì)第二范式:一個(gè)表中的所有非關(guān)鍵字屬性都依賴于整個(gè)關(guān)鍵字。關(guān)鍵字可以是一個(gè)屬性,也可以是多個(gè)屬性的集合,不論那種方式,都應(yīng)確保關(guān)鍵字能夠保證唯一性。在確定關(guān)鍵字時(shí),應(yīng)保證關(guān)鍵字不會(huì)參與業(yè)務(wù)且不會(huì)出現(xiàn)更新異常,這時(shí),最優(yōu)解決方案為采用一個(gè)自增數(shù)值型屬性或一個(gè)隨機(jī)字符串作為表的關(guān)鍵字。
4)由于第一點(diǎn)所述的領(lǐng)域模型驅(qū)動(dòng)的方式設(shè)計(jì)數(shù)據(jù)庫(kù)表結(jié)構(gòu),領(lǐng)域模型中的每一個(gè)對(duì)象只有一項(xiàng)職責(zé),所以對(duì)象中的數(shù)據(jù)項(xiàng)不存在傳遞依賴,所以,這種思路的數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)從一開(kāi)始即滿足第三范式:一個(gè)表應(yīng)滿足第二范式,且屬性間不存在傳遞依賴。
5)同樣,由于對(duì)象職責(zé)的單一性以及對(duì)象之間的關(guān)系反映的是業(yè)務(wù)邏輯之間的關(guān)系,所以在領(lǐng)域模型中的對(duì)象存在主對(duì)象和從對(duì)象之分,從對(duì)象是從1-N或N-N的角度進(jìn)一步主對(duì)象的業(yè)務(wù)邏輯,所以從對(duì)象及對(duì)象關(guān)系映射為的表及表關(guān)聯(lián)關(guān)系不存在刪除和插入異常。
6)在映射后得出的數(shù)據(jù)庫(kù)表結(jié)構(gòu)中,應(yīng)再根據(jù)第四范式進(jìn)行進(jìn)一步修改,確保不存在多值依賴。這時(shí),應(yīng)根據(jù)反向工程的思路反饋給領(lǐng)域模型。如果表結(jié)構(gòu)中存在多值依賴,則證明領(lǐng)域模型中的對(duì)象具有至少兩個(gè)以上的職責(zé),應(yīng)根據(jù)第一條進(jìn)行設(shè)計(jì)修正。第四范式:一個(gè)表如果滿足BCNF,不應(yīng)存在多值依賴。
?
- 《抑制開(kāi)關(guān)磁阻電機(jī)振動(dòng)的結(jié)構(gòu)設(shè)計(jì)研究》pdf 3次下載
- 數(shù)據(jù)庫(kù)教程之數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)課件的資料免費(fèi)下載 17次下載
- 數(shù)據(jù)庫(kù)設(shè)計(jì)開(kāi)發(fā)案例教程之數(shù)據(jù)庫(kù)設(shè)計(jì)的資料介紹 17次下載
- 數(shù)據(jù)庫(kù)的設(shè)計(jì)概念總結(jié) 13次下載
- 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)是如何設(shè)計(jì)的概念結(jié)構(gòu)設(shè)計(jì)資料概述 22次下載
- 數(shù)據(jù)庫(kù)學(xué)習(xí)入門(mén)資料之數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)詳細(xì)資料概述 0次下載
- 數(shù)據(jù)庫(kù)設(shè)計(jì)的七大知識(shí)點(diǎn)總結(jié)詳細(xì)資料免費(fèi)下載 0次下載
- 數(shù)據(jù)庫(kù)教程之如何進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì) 21次下載
- 關(guān)系型數(shù)據(jù)庫(kù)表結(jié)構(gòu)的設(shè)計(jì)有什么技巧??jī)蓚€(gè)設(shè)計(jì)技巧詳細(xì)說(shuō)明 13次下載
- 數(shù)據(jù)庫(kù)靜態(tài)結(jié)構(gòu)如何設(shè)計(jì)?詳細(xì)資料任務(wù)和方法說(shuō)明 1次下載
- 數(shù)據(jù)庫(kù)系統(tǒng)如何進(jìn)行設(shè)計(jì)?詳細(xì)方法資料概述 12次下載
- 如何進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)?數(shù)據(jù)庫(kù)設(shè)計(jì)介紹和需求分析及結(jié)構(gòu)設(shè)計(jì)資料概述 0次下載
- 如何使用PowerDesigner進(jìn)行數(shù)據(jù)庫(kù)靜態(tài)結(jié)構(gòu)設(shè)計(jì)?詳細(xì)資料概述 0次下載
- 數(shù)據(jù)庫(kù)系統(tǒng)是什么?數(shù)據(jù)庫(kù)系統(tǒng)概念之數(shù)據(jù)庫(kù)設(shè)計(jì)資料免費(fèi)下載 1次下載
- 在線考試系統(tǒng)數(shù)據(jù)庫(kù)如何設(shè)計(jì)?和通用權(quán)限管理方案的設(shè)計(jì)方案2篇論文 5次下載
- 數(shù)據(jù)庫(kù)優(yōu)化那些事 462次閱讀
- 數(shù)據(jù)庫(kù)分區(qū)、分庫(kù)和分表 1955次閱讀
- 機(jī)械結(jié)構(gòu)設(shè)計(jì)解決方案 1034次閱讀
- 基于ML的異構(gòu)金屬材料結(jié)構(gòu)設(shè)計(jì)及性能預(yù)測(cè) 1139次閱讀
- Tesla充電口結(jié)構(gòu)設(shè)計(jì)的變化 879次閱讀
- Python-mysql數(shù)據(jù)庫(kù)基礎(chǔ) 614次閱讀
- MongoDB開(kāi)源文檔數(shù)據(jù)庫(kù)的安裝 965次閱讀
- 云數(shù)據(jù)庫(kù)和自建數(shù)據(jù)庫(kù)的區(qū)別及應(yīng)用 4412次閱讀
- 干貨:20個(gè)MySQL開(kāi)源數(shù)據(jù)庫(kù)架構(gòu)設(shè)計(jì)原則 3278次閱讀
- 變頻電動(dòng)機(jī)結(jié)構(gòu)設(shè)計(jì)注意事項(xiàng) 4098次閱讀
- 數(shù)據(jù)庫(kù)和區(qū)塊鏈之間有何區(qū)別? 5361次閱讀
- 一文看懂數(shù)據(jù)庫(kù)原理與應(yīng)用 11.7w次閱讀
- 基于COM技術(shù)的SCADA系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì) 2343次閱讀
- SQL Server數(shù)據(jù)庫(kù)學(xué)習(xí)總結(jié) 4577次閱讀
- ADSS光纜結(jié)構(gòu)設(shè)計(jì)與施工問(wèn)題的探討 2498次閱讀
下載排行
本周
- 1TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 2開(kāi)關(guān)電源基礎(chǔ)知識(shí)
- 5.73 MB | 11次下載 | 免費(fèi)
- 3嵌入式linux-聊天程序設(shè)計(jì)
- 0.60 MB | 3次下載 | 免費(fèi)
- 4DIY動(dòng)手組裝LED電子顯示屏
- 0.98 MB | 3次下載 | 免費(fèi)
- 5基于FPGA的C8051F單片機(jī)開(kāi)發(fā)板設(shè)計(jì)
- 0.70 MB | 2次下載 | 免費(fèi)
- 651單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費(fèi)
- 751單片機(jī)大棚環(huán)境控制器仿真程序
- 1.10 MB | 2次下載 | 免費(fèi)
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191186次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多