專利名稱:一種動態(tài)數(shù)據(jù)庫構(gòu)建方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種動態(tài)數(shù)據(jù)庫構(gòu)建方法,具體來說,是一種基于微軟公司SQL SERVER 軟件的數(shù)據(jù)庫構(gòu)建方法。
技術(shù)背景傳統(tǒng)的關(guān)系數(shù)據(jù)庫構(gòu)建方法一般是通過E-R模型來進(jìn)行的。構(gòu)建者首先通過識別各 個存儲對象,并且發(fā)掘其相互關(guān)系后,建立相應(yīng)的描述這些存儲對象及其相互關(guān)系的E-R 模型,然后轉(zhuǎn)換為關(guān)系模型,再通過創(chuàng)建相應(yīng)的數(shù)據(jù)表來完成整個數(shù)據(jù)庫的構(gòu)建工作。 這種構(gòu)建數(shù)據(jù)庫的方法準(zhǔn)確清晰,是目前最常用的一種數(shù)據(jù)庫構(gòu)建方法。但是,這種方 法的缺點在于缺乏對動態(tài)建模的支持,所構(gòu)建的數(shù)據(jù)庫結(jié)構(gòu)固定,只能反映靜態(tài)的、事 先確定的存儲對象及其相互關(guān)系,從而導(dǎo)致必須針對不同的數(shù)據(jù)庫應(yīng)用設(shè)計不同的數(shù)據(jù) 庫結(jié)構(gòu),而當(dāng)一個數(shù)據(jù)庫系統(tǒng)的存儲對象或描述屬性發(fā)生變化時,就不得不對該數(shù)據(jù)庫 的結(jié)構(gòu)重新設(shè)計(數(shù)據(jù)庫重構(gòu))才能適應(yīng)這種變化。然而,隨著現(xiàn)代的信息系統(tǒng)應(yīng)用領(lǐng) 域的不斷拓展,動態(tài)建模的需求對傳統(tǒng)的關(guān)系數(shù)據(jù)庫構(gòu)建方法提出了挑戰(zhàn)。許多特定領(lǐng) 域都要求數(shù)據(jù)庫系統(tǒng)能夠管理不斷變化的存儲對象,描述動態(tài)變化的管理對象和屬性信 息。發(fā)明內(nèi)容本發(fā)明的目的在于針對已有技術(shù)存在的問題,提供一種動態(tài)數(shù)據(jù)庫構(gòu)建方法。利 用這種方法,可以在數(shù)據(jù)庫系統(tǒng)運(yùn)行過程中根據(jù)實際應(yīng)用需求動態(tài)地構(gòu)建數(shù)據(jù)庫,從而 提高數(shù)據(jù)庫系統(tǒng)的使用效率、靈活性和兼容性,降低信息管理系統(tǒng)開發(fā)的周期和費用。本發(fā)明提出的動態(tài)數(shù)據(jù)庫構(gòu)建方法的核心是運(yùn)用面向?qū)ο蟮乃枷?,實現(xiàn)動態(tài)地建立數(shù)據(jù)庫和動態(tài)維護(hù)數(shù)據(jù)庫結(jié)構(gòu)。操作步驟如下1) 生成類別表、屬性表、層次關(guān)系表、對象表和屬性值表;2) 識別存儲對象;3) 將存儲對象抽象為類,確定出類名和類的屬性,向類別表填入類名,向?qū)傩员?填入類的屬性名;4) 確定類之間的層次關(guān)系,向?qū)哟侮P(guān)系表中填入類的層次關(guān)系數(shù)據(jù);5) 實例化類,將抽象出來的類名和類的屬性名分別賦于對應(yīng)的值,存入對象表和 屬性值表;6) 確定類實例間的層次關(guān)系,向?qū)哟侮P(guān)系表中存入相應(yīng)的層次關(guān)系值;7) 生成目標(biāo)數(shù)據(jù)庫在按照本方法構(gòu)建數(shù)據(jù)庫的方法中,所述的類別表包括有5個字段,所述的屬性表 有4個字段,所述的層次關(guān)系表有5個字段,所述的對象表有4個字段,所述的屬性值表 有5個字段。在按照本方法構(gòu)建數(shù)據(jù)庫的方法中,所述的數(shù)據(jù)表還可以包括日志表、用戶表和權(quán) 限表等。在按照本方法構(gòu)建數(shù)據(jù)庫的方法中,所述的類的屬性是描述存儲對象的各種特征。在按照本方法構(gòu)建數(shù)據(jù)庫的方法中,所述的類是從存儲對象中抽取的屬性組成的集 合,或者根據(jù)用戶的需要設(shè)置的屬性集合。在按照本方法構(gòu)建數(shù)據(jù)庫的方法中,所述的數(shù)據(jù)表和數(shù)據(jù)庫存放在運(yùn)行應(yīng)用系統(tǒng)的 計算機(jī)內(nèi)部存儲器或外部磁盤中。實施本發(fā)明所提供的數(shù)據(jù)庫構(gòu)建方法,既能夠提供一種以面向?qū)ο蟮囊暯强创鎯?對象的方法,從而更方便地將現(xiàn)實世界中的存儲對象轉(zhuǎn)換為計算機(jī)所能表示的數(shù)據(jù)模 型,又能夠通過類的的動態(tài)特性描述、對象標(biāo)識符、類的普化和特化、類的聚合與分解 等模式,使用參數(shù)化的方法提取這些對象的共同特征從而統(tǒng)一地對這些對象建模。當(dāng)對 產(chǎn)品對象進(jìn)行一致的建模后,就自然地形成了統(tǒng)一的數(shù)據(jù)庫系統(tǒng),即所有的產(chǎn)品都具有 相同的結(jié)構(gòu),再按照系統(tǒng)需求將這些產(chǎn)品對象聯(lián)系起來形成數(shù)據(jù)表及目標(biāo)數(shù)據(jù)庫。同時, 產(chǎn)品數(shù)據(jù)的一致性處理也使得系統(tǒng)用戶能夠根據(jù)自身的需要來自由的修改產(chǎn)品,產(chǎn)品的 聯(lián)系以及產(chǎn)品的數(shù)據(jù)結(jié)構(gòu)。提高了應(yīng)用系統(tǒng)的靈活性和實用性,大大減少了應(yīng)用于的重 復(fù)工作量,降低了數(shù)據(jù)庫系統(tǒng)開發(fā)的周期和費用。
圖l是本發(fā)明一個實施例的動態(tài)數(shù)據(jù)庫構(gòu)建實施步驟示意圖。
具體實施方式
以下結(jié)合具體實施方式
和附圖對本發(fā)明作進(jìn)一步解釋說明。 實施例一車輛管理數(shù)據(jù)庫,參見圖l。1)在SQL SERVER的Enterprise Manager中創(chuàng)建類別表、屬性表、層次關(guān)系表、對 象表和屬性值表;2)根據(jù)管理需求,識別出存儲對象汽車、卡車、發(fā)動機(jī)、輪胎等; 3)將這些存儲對象抽象為類,并確定相應(yīng)的類名和類的屬性。如汽車類、卡車類等,卡車的屬性價格、載重量、型號和顏色等。然后,將各個類名作為一個表目填入類別表;將每一個屬性名作為一個表目填入屬性表;4)確立類之間的層次關(guān)系,比如汽車 分成卡車、轎車、公共汽車等,卡車由發(fā)動機(jī)、輪胎等組成。然后將這些層次關(guān)系數(shù)據(jù) 填入層次關(guān)系表中;5)根據(jù)要管理的具體對象進(jìn)行類實例化,如將抽象出來的卡車實 例化為東風(fēng)DF6、解放JF6,并將東風(fēng)DF6和解放JF6及其價格、載重量、型號和顏色 的值分別存入對象表和屬性值表;6)確定類實例間的層次關(guān)系,如東風(fēng)DF6和發(fā)動機(jī) 通用TY6的組成關(guān)系存入相應(yīng)的層次關(guān)系表中;7)所有的數(shù)據(jù)輸入后即生成目標(biāo)數(shù)據(jù) 庫。實施例二電腦的管理,也參見圖l。 1)在SQL SERVER的Enterprise Manager中創(chuàng)建類別表、屬性表、層次關(guān)系表、對象 表和屬性值表;2)根據(jù)管理需求,識別出存儲對象電腦、臺式機(jī)、手提電腦、顯示 器、鍵盤、主板、機(jī)箱等;3)將這些存儲對象抽象為類,并確定相應(yīng)的類名和類的屬 性。如電腦類、臺式機(jī)類等,臺式機(jī)的屬性價格、型號、顏色、生產(chǎn)日期等。然后, 將各個類名作為一個表目填入類別表;將每一個屬性名作為一個表目填入屬性表;4) 確立類之間的層次關(guān)系,比如電腦分成臺式機(jī)、手提電腦等,臺式機(jī)由顯示器、鍵盤、 主板、機(jī)箱等組成。然后將這些層次關(guān)系數(shù)據(jù)填入層次關(guān)系表中;5)根據(jù)要管理的具 體對象進(jìn)行類實例化,如將抽象出來的臺式機(jī)實例化為聯(lián)想旭日1412、 DELL 760m,并 將聯(lián)想旭日1412和DELL 760m及其價格、型號、顏色、生產(chǎn)日期的值分別存入對象表 和屬性值表;6)確定類實例間的層次關(guān)系,如聯(lián)想旭日1412和鍵盤多彩辦公高手2代 的組成關(guān)系存入相應(yīng)的層次關(guān)系表中;7)所有的數(shù)據(jù)輸入后即生成目標(biāo)數(shù)據(jù)庫。
權(quán)利要求
1.一種動態(tài)數(shù)據(jù)庫構(gòu)建方法,其特征在于操作步驟如下a.生成類別表、屬性表、層次關(guān)系表、對象表和屬性值表;b.識別存儲對象;c.將存儲對象抽象為類,確定出類名和類的屬性,向類別表填入類名,向?qū)傩员硖钊腩惖膶傩悦?;d.確定類之間的層次關(guān)系,向?qū)哟侮P(guān)系表中填入類的層次關(guān)系數(shù)據(jù);e.實例化類,將抽象出來的類名和類的屬性名分別賦于對應(yīng)的值,存入對象表和屬性值表;f.確定類實例間的層次關(guān)系,向?qū)哟侮P(guān)系表中存入相應(yīng)的層次關(guān)系值;g.生成目標(biāo)數(shù)據(jù)庫。
2. 如權(quán)利要求1所述的動態(tài)數(shù)據(jù)庫構(gòu)建方法,其特征在于所述的類別表包括有5個字 段,所述的屬性表有4個字段,所述的層次關(guān)系表有5個字段,所述的對象表有4 個字段,所述的屬性值表有5個字段。
3. 如權(quán)利要求1所述的動態(tài)數(shù)據(jù)庫構(gòu)建方法,其特征在于所述的類的屬性是描述存儲 對象的各種特征。
4. 如權(quán)利要求1所述的動態(tài)數(shù)據(jù)庫構(gòu)建方法,其特征在于所述的數(shù)據(jù)表存放在運(yùn)行應(yīng) 用系統(tǒng)的計算機(jī)內(nèi)部存儲器或外部磁盤中。
5. 如權(quán)利要求1所述的動態(tài)數(shù)據(jù)庫構(gòu)建方法,其特征在于所述的數(shù)據(jù)庫存放在運(yùn)行應(yīng) 用系統(tǒng)的計算機(jī)內(nèi)部存儲器或外部磁盤中。
6. 如權(quán)利要求1所述的動態(tài)數(shù)據(jù)庫構(gòu)建方法,其特征在于所述的數(shù)據(jù)庫還包括日志表、 用戶表和權(quán)限表。
全文摘要
本發(fā)明涉及一種動態(tài)數(shù)據(jù)庫構(gòu)建方法。它的操作步驟如下1)生成類別表、屬性表、層次關(guān)系表、對象表和屬性值表;2)識別存儲對象;3)將存儲對象抽象為類,確定出類名和類的屬性,向類別表填入類名,向?qū)傩员硖钊腩惖膶傩悦?)確定類之間的層次關(guān)系,向?qū)哟侮P(guān)系表中填入類的層次關(guān)系數(shù)據(jù);5)實例化類,將抽象出來的類名和類的屬性名分別賦予對應(yīng)的值,存入對象表和屬性值表;6)確定類實例間的層次關(guān)系,向?qū)哟侮P(guān)系表中存入相應(yīng)的層次關(guān)系值;7)生成目標(biāo)數(shù)據(jù)庫。該方法借助面向?qū)ο蟮姆椒▌討B(tài)地生成數(shù)據(jù)庫,使所有的產(chǎn)品都具有一致的數(shù)據(jù)描述形式,提高了應(yīng)用系統(tǒng)的靈活性和兼容性,大大降低了數(shù)據(jù)庫系統(tǒng)開發(fā)的周期和費用。
文檔編號G06F17/30GK101236568SQ20081003408
公開日2008年8月6日 申請日期2008年2月29日 優(yōu)先權(quán)日2008年2月29日
發(fā)明者劉耀華, 吳紹春, 方敏夫, 平 易, 穎 朱, 李寅寅, 盛春健, 懿 錢, 俊 陳 申請人:上海大學(xué)