可動(dòng)態(tài)擴(kuò)展的數(shù)據(jù)庫設(shè)計(jì)_第1頁
可動(dòng)態(tài)擴(kuò)展的數(shù)據(jù)庫設(shè)計(jì)_第2頁
可動(dòng)態(tài)擴(kuò)展的數(shù)據(jù)庫設(shè)計(jì)_第3頁
可動(dòng)態(tài)擴(kuò)展的數(shù)據(jù)庫設(shè)計(jì)_第4頁
可動(dòng)態(tài)擴(kuò)展的數(shù)據(jù)庫設(shè)計(jì)_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、可動(dòng)態(tài)擴(kuò)展的數(shù)據(jù)庫設(shè)計(jì)摘要:數(shù)據(jù)庫設(shè)計(jì)的核心問題是建立模型。對(duì)于信息系統(tǒng)中出現(xiàn)的數(shù)據(jù)結(jié)構(gòu)改變和擴(kuò)展的需求,采用了一種基于鍵值對(duì)的對(duì)象屬性可擴(kuò)展模型。關(guān)鍵詞:數(shù)據(jù)庫設(shè)計(jì);可擴(kuò)展;對(duì)象;關(guān)系數(shù)據(jù)庫0引言數(shù)據(jù)庫設(shè)計(jì)是建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng)的技術(shù),是信息系統(tǒng)開發(fā)和建設(shè)的核心。數(shù)據(jù)庫設(shè)計(jì)是指對(duì)于給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能夠有效地存儲(chǔ)數(shù)據(jù),滿足各種用戶的應(yīng)用要求(信息要求和處理要求)。數(shù)據(jù)庫設(shè)計(jì)的核心問題是建立模型。一般而言這個(gè)模型要滿足兩類準(zhǔn)則:結(jié)構(gòu)準(zhǔn)則和性能準(zhǔn)則。前者主要考慮如何保持?jǐn)?shù)據(jù)的特性,后者主要考慮資源的合理使用和數(shù)據(jù)庫的存儲(chǔ)效率。在所有數(shù)據(jù)庫設(shè)計(jì)準(zhǔn)則

2、中最重要的原則是:最終產(chǎn)品必須滿足用戶的最終要求。但是,首先需要存儲(chǔ)的信息是動(dòng)態(tài)的,應(yīng)用自身的發(fā)展也會(huì)產(chǎn)生新的和擴(kuò)展的信息需求;其次,信息化是分步進(jìn)行的,用戶很難一次提出完整的需求;第三,用戶和設(shè)計(jì)人員之間存在理解上的差異。因此,數(shù)據(jù)庫應(yīng)用系統(tǒng)在完成以后,系統(tǒng)功能很可能不能完全滿足用戶需求,而且隨著時(shí)間的發(fā)展系統(tǒng)功能會(huì)逐漸偏離用戶或企業(yè)的需求。所以,數(shù)據(jù)庫應(yīng)用系統(tǒng)必須要不斷地改進(jìn)和擴(kuò)展以適應(yīng)環(huán)境的變化以及組織自身的發(fā)展需求。目前數(shù)據(jù)庫設(shè)計(jì)普遍采用“需求驅(qū)動(dòng)”的數(shù)據(jù)庫設(shè)計(jì)模式。但是,如果在數(shù)據(jù)庫設(shè)計(jì)階段,建立數(shù)據(jù)庫模型時(shí)沒有充分考慮到數(shù)據(jù)庫應(yīng)用系統(tǒng)以后可能的改變及擴(kuò)展,將使系統(tǒng)以后的維護(hù)工作變得

3、極其困難,甚至必須重新開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng)。本文針對(duì)數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)過程中遇到的動(dòng)態(tài)可擴(kuò)展問題提出了一種數(shù)據(jù)庫設(shè)計(jì)模型基于鍵值對(duì)的對(duì)象屬性可擴(kuò)展模型,它區(qū)分了應(yīng)用中的不同對(duì)象的類型,通過設(shè)計(jì)屬性分類提高了數(shù)據(jù)庫應(yīng)用系統(tǒng)中數(shù)據(jù)的可改變性和可擴(kuò)展性。1信息系統(tǒng)中的傳統(tǒng)數(shù)據(jù)庫設(shè)計(jì)模型通常,在傳統(tǒng)數(shù)據(jù)庫設(shè)計(jì)模型中,設(shè)計(jì)人員在設(shè)計(jì)階段總是將數(shù)據(jù)信息表達(dá)的盡可能豐富,使其不僅滿足所有需求分析階段得到的用戶需求,而且還要盡可能考慮到應(yīng)用以后可能的改變以及擴(kuò)展。采用這種方式設(shè)計(jì)的數(shù)據(jù)庫應(yīng)用不僅數(shù)據(jù)表過于“臃腫”,而且對(duì)于未來的應(yīng)用難于改變或者擴(kuò)展。例如,在某校園建筑管理信息系統(tǒng)中,系統(tǒng)成立初期,只要求該系統(tǒng)能

4、夠展示建筑的基本信息,如名稱、簡述等。設(shè)計(jì)人員有可能將數(shù)據(jù)表格設(shè)計(jì)成,我們稱之為方案1。包括編號(hào)、建筑名稱、建筑描述是建筑的最基本屬性,此外設(shè)計(jì)人員也考慮到了系統(tǒng)將來的擴(kuò)展,加入了諸如建設(shè)日期,高度,等屬性。由于設(shè)計(jì)人員不可能完全預(yù)見學(xué)校未來發(fā)展?fàn)顩r,所以對(duì)于系統(tǒng)現(xiàn)階段的需求來說,盡管建筑信息表已經(jīng)非常詳盡了,但是隨著時(shí)間的推移系統(tǒng)仍有可能不適應(yīng)實(shí)際需求。隨著需求的發(fā)展,建筑的信息需求有可能發(fā)生變化。例如:為了獲取建筑質(zhì)量,有可能對(duì)該建筑的施工文件等信息保存;隨著校園信息系統(tǒng)的建立,可能有更多的不同類型的建筑需要存入系統(tǒng),比如管道信息,一些標(biāo)志性雕塑,或者植被信息;隨著系統(tǒng)的擴(kuò)展,原有數(shù)據(jù)表可

5、能不能滿足日益增多的該類建筑所有信息的存儲(chǔ),所以需要建立新的數(shù)據(jù)表擴(kuò)展其屬性;對(duì)于一些簡單的建筑或者物體比如一棵樹一個(gè)石凳,存儲(chǔ)的信息明顯和一座教學(xué)樓不同,需要按照類型的不同,設(shè)計(jì)多個(gè)不同的數(shù)據(jù)表分別存儲(chǔ)不同類型的物體信息。2數(shù)據(jù)庫設(shè)計(jì)中的擴(kuò)展性需求在應(yīng)用中,類似這樣的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)改變以及應(yīng)用擴(kuò)展的情況還有很多。如果用傳統(tǒng)數(shù)據(jù)庫設(shè)計(jì)模型,那么在設(shè)計(jì)初始階段就必須考慮到應(yīng)用未來所有的改變及擴(kuò)展,盡可能使表格的信息詳盡,否則當(dāng)應(yīng)用發(fā)生改變或擴(kuò)展時(shí),必須重新設(shè)計(jì)表結(jié)構(gòu),并對(duì)應(yīng)用程序中相關(guān)片段全部重寫。如果同一變化出現(xiàn)在不同部位,由于不同的原因,出現(xiàn)在不同的階段,那么現(xiàn)有表結(jié)構(gòu)不能滿足要求;如果需要增

6、加過多的對(duì)象屬性信息,那么表結(jié)構(gòu)將必須修改。但是,如果我們將數(shù)據(jù)對(duì)象化,并采用定義其屬性和值的設(shè)計(jì)模型,上述問題將迎刃而解。作為開發(fā)人員,總會(huì)面對(duì)業(yè)務(wù)方提出的數(shù)據(jù)結(jié)構(gòu)變化的需求,字段的增加,數(shù)據(jù)表的修改總是隨時(shí)可能根據(jù)需求發(fā)生。因?yàn)闃I(yè)務(wù)在發(fā)展,或者需求就有可能需要一個(gè)完全動(dòng)態(tài)的可擴(kuò)展的數(shù)據(jù)庫設(shè)計(jì)方案,但是以目前的關(guān)系數(shù)據(jù)庫實(shí)現(xiàn)這種動(dòng)態(tài)擴(kuò)展的特性,在系統(tǒng)一定規(guī)模之后所付出的代價(jià)是昂貴的,也是不安全的。為了這種動(dòng)態(tài)擴(kuò)展性,有這樣三種常用的方法:第一種方法:預(yù)留字段。既然很難加字段,就預(yù)先留好一些備用,但是這樣沒那么靈活,有一定的實(shí)用性,不過因?yàn)轭A(yù)先留的字段一般是沒什么含義的,需要有額外的信息來描述

7、,這種方法在擴(kuò)展性要求不是太強(qiáng)的地方可以不影響性能的前提下提供一定的擴(kuò)展性。第二種方法:使用復(fù)雜字段。在某些特殊要求下還是很有用的,比如,某個(gè)業(yè)務(wù)實(shí)體(某張表),有一些標(biāo)記位,都是true/false的標(biāo)記,可以理解為這個(gè)實(shí)體的一些屬性,經(jīng)常需要添加,這種情況,在生產(chǎn)中我們使用過用一個(gè)數(shù)字,按位來表示這些標(biāo)記的,比如第三位表示他是不是付費(fèi)用戶,第四位表示他是合作方來的用戶還是自己注冊(cè)的,等等。還有一種情況,需要更復(fù)雜的屬性列表,屬性個(gè)數(shù)經(jīng)常變,可以考慮使用一個(gè)文本字段,保存結(jié)構(gòu)化的數(shù)據(jù),然后在使用時(shí)需要?jiǎng)討B(tài)解析該字段。使用復(fù)雜字段的好處就在于比較靈活,同一類型的數(shù)據(jù)可以放在一起(實(shí)際上相當(dāng)于把

8、應(yīng)該是一個(gè)關(guān)聯(lián)表的數(shù)據(jù)放一個(gè)字段里了),操作的性能也不錯(cuò),但是復(fù)雜字段里面的內(nèi)容查詢比較困難,程序?qū)崿F(xiàn)和修改起來也更復(fù)雜。第三種方法:將數(shù)據(jù)的存儲(chǔ)和索引(需要查詢的內(nèi)容)分開存放,相當(dāng)于主表就一個(gè)keyvalue,把需要查詢的字段放到其他單獨(dú)的表里去,這種方法對(duì)數(shù)據(jù)的實(shí)時(shí)查詢的效率有一定的影響,但是針對(duì)實(shí)時(shí)性的要求并不是所有系統(tǒng)都有要求的,在有些地方是很好的解決方案。3基于鍵值對(duì)的對(duì)象屬性可擴(kuò)展模型本文的基于鍵值對(duì)的對(duì)象屬性可擴(kuò)展模型就是結(jié)合上面提到的第三種方法,使用數(shù)據(jù)表分別單獨(dú)存儲(chǔ)對(duì)象分類和分類的屬性信息的定義,并且實(shí)現(xiàn)了分類屬性之間的樹形的可擴(kuò)展結(jié)構(gòu),對(duì)象信息的存儲(chǔ)用過一張表用來存儲(chǔ)所有

9、對(duì)象公有的可快速查詢的數(shù)據(jù)信息,另一張屬性值表存儲(chǔ)所有的對(duì)象的特有屬性的keyvalue。通過這樣的設(shè)計(jì)可以在不修改原數(shù)據(jù)表結(jié)構(gòu)的前提下,實(shí)現(xiàn)所有存儲(chǔ)對(duì)象的動(dòng)態(tài)可擴(kuò)展,如圖1所示。圖1對(duì)象屬性信息結(jié)構(gòu)模型由圖1所示,表t_class保存對(duì)象的分類信息如建筑,管道,雕塑等;t_attibute_def保存的是每個(gè)分類所對(duì)應(yīng)對(duì)象的屬性信息如建筑的高度,施工單位等;t_entity保存的是分類對(duì)象的公共信息,是具體的物體如1號(hào)教學(xué)樓;t_entity_content保存每個(gè)具體的對(duì)象所有屬性的信息值;t?倕_file表用來保存一些擴(kuò)展的文件信息。通過這樣一個(gè)模型我們可以在需要是動(dòng)態(tài)定義一個(gè)大的分類并

10、且可以動(dòng)態(tài)的設(shè)置每個(gè)已有分類擁有哪些屬性,所有對(duì)象的的具體內(nèi)容分別存儲(chǔ)在對(duì)象公共信息表,對(duì)象屬性信息表和文件信息表中。在實(shí)際應(yīng)用中,還涉及到屬性冗余,查詢,修改等方面的問題,通過在校園管理系統(tǒng)中應(yīng)用的結(jié)果來看,這些都可以實(shí)現(xiàn),并能獲得較好的效率。4結(jié)束語綜上所述,傳統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)適用于簡單的、業(yè)務(wù)數(shù)據(jù)固定或變化極少的集中式數(shù)據(jù)庫應(yīng)用。在應(yīng)用范圍更廣需要更靈活數(shù)據(jù)結(jié)構(gòu)的系統(tǒng)中,顯然面向?qū)ο髮傩缘臄U(kuò)展設(shè)計(jì)更加適宜。隨著網(wǎng)絡(luò)環(huán)境的日益普及,新的應(yīng)用呈現(xiàn)出來的開放性與分布性特點(diǎn),Web應(yīng)用系統(tǒng)也由簡單的數(shù)據(jù)庫系統(tǒng)逐具有了更靈活多變應(yīng)用環(huán)境,在這種環(huán)境下,能夠滿足擴(kuò)展和動(dòng)態(tài)改變的需求,將有更廣闊的應(yīng)用前景。參考文獻(xiàn):薩師煊,王珊數(shù)據(jù)庫系統(tǒng)概論(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論