一種可動態(tài)擴(kuò)展的數(shù)據(jù)庫設(shè)計方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于數(shù)據(jù)庫設(shè)計領(lǐng)域,尤其是涉及資源管理信息系統(tǒng)的可動態(tài)擴(kuò)展的數(shù)據(jù) 庫設(shè)計方法。
【背景技術(shù)】
[0002] 數(shù)據(jù)庫設(shè)計是管理信息系統(tǒng)(MIS)的核心,目前,數(shù)據(jù)庫設(shè)計普遍采用"需求驅(qū)動" 的數(shù)據(jù)庫設(shè)計模式。
[0003] 在管理信息系統(tǒng)的開發(fā)過程中,用戶很難精確完整地提出它的功能和性能要求, 一開始只能提出一個大概、模糊的功能,只有經(jīng)過長時間的反復(fù)認(rèn)識才逐步明確,有時進(jìn)入 到設(shè)計、編程階段才能明確,更有甚者,到開發(fā)后期還在提新的需求,這樣就經(jīng)常出現(xiàn)修改 數(shù)據(jù)庫表結(jié)構(gòu)的情況,有時甚至是在應(yīng)用系統(tǒng)上線運(yùn)行后還會提出修改數(shù)據(jù)庫表結(jié)構(gòu)的需 求。
[0004] 按照傳統(tǒng)的數(shù)據(jù)庫設(shè)計方法,一旦系統(tǒng)上線運(yùn)行后,提出增減某個數(shù)據(jù)庫表的字 段是非常困難的。除了可能會導(dǎo)致數(shù)據(jù)庫表結(jié)構(gòu)混亂外,還會可能大量地修改程序代碼,使 得軟件產(chǎn)品質(zhì)量下降。
[0005] 目前,為了實現(xiàn)數(shù)據(jù)庫應(yīng)用系統(tǒng)的動態(tài)可擴(kuò)展性,有兩種改進(jìn)的數(shù)據(jù)庫設(shè)計方法: 預(yù)留字段和使用復(fù)雜字段。
[0006] 第一種方法:預(yù)留字段。既然很難增加字段,就預(yù)先留好一些備用,但是這樣沒有 那么靈活,有一定的實用性,不過因為預(yù)先留的字段一般是沒有什么含義的,需要有額外的 信息來描述,這種方法在擴(kuò)展性要求不是太強(qiáng)的地方,可以在不影響性能的情況下提供一 定的擴(kuò)展性。
[0007] 第二種方法:使用復(fù)雜字段。在某些特殊要求下還是有用的,但是復(fù)雜字段里面的 內(nèi)容查詢比較困難,程序?qū)崿F(xiàn)和修改起來也更復(fù)雜。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明所要解決的技術(shù)問題是:
[0009] 針對數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)過程中遇到的動態(tài)可擴(kuò)展問題,本發(fā)明提出了一種可動 態(tài)擴(kuò)展的數(shù)據(jù)庫設(shè)計方法,它區(qū)分了應(yīng)用系統(tǒng)中不同資源對象的類型,通過設(shè)計資源類型, 提高了數(shù)據(jù)庫應(yīng)用系統(tǒng)中數(shù)據(jù)的可改變性和可擴(kuò)展型。
[0010] 為解決上述技術(shù)問題,本發(fā)明采用以下技術(shù)方案來實現(xiàn):一種可動態(tài)擴(kuò)展的數(shù)據(jù) 庫設(shè)計方法,包括需求分析、概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計、物理結(jié)構(gòu)設(shè)計和實施維護(hù),所述 的邏輯結(jié)構(gòu)設(shè)計,包括以下步驟:
[0011] S1:在管理信息系統(tǒng)需求分析和概念結(jié)構(gòu)設(shè)計的基礎(chǔ)上,分析系統(tǒng)中不同資源對 象實體集的類型,匯總出資源類型及其屬性,并且明確各資源類型屬性的取值約束、數(shù)據(jù)字 典及屬性類型,形成管理信息系統(tǒng)數(shù)據(jù)規(guī)范;
[0012] S2:創(chuàng)建枚舉字典數(shù)據(jù)庫表;所述的枚舉字典數(shù)據(jù)庫表包括枚舉ID、枚舉名稱、枚 舉父ID、是否分組和順序號字段;
[0013] S3:根據(jù)管理信息系統(tǒng)數(shù)據(jù)規(guī)范,將數(shù)據(jù)字典錄入到枚舉字典數(shù)據(jù)庫表中;
[0014] S4:創(chuàng)建資源屬性類型數(shù)據(jù)庫表;所述的資源屬性類型數(shù)據(jù)庫表包括屬性類型ID、 屬性類型名稱、基本類型、顯示控件類型和錄入控件類型字段;
[0015] S5:根據(jù)管理信息系統(tǒng)數(shù)據(jù)規(guī)范,將屬性類型錄入到資源屬性類型數(shù)據(jù)庫表中;
[0016] S6:創(chuàng)建資源類型數(shù)據(jù)庫表;所述的資源類型數(shù)據(jù)庫表包括資源類型ID和資源類 型名稱字段;
[0017] S7:根據(jù)管理信息系統(tǒng)數(shù)據(jù)規(guī)范,將所有資源類型的名稱錄入到資源類型數(shù)據(jù)庫 表中;
[0018] S8:創(chuàng)建資源屬性數(shù)據(jù)庫表;所述的資源屬性數(shù)據(jù)庫表包括資源屬性ID、資源屬性 名稱和屬性類型字段;
[0019] S9:分析管理信息系統(tǒng)數(shù)據(jù)規(guī)范中所有資源類型屬性,合并相同的資源類型屬性, 將所有資源類型屬性錄入到資源屬性數(shù)據(jù)庫表中;
[0020] S10:創(chuàng)建資源類型屬性映射表;所述的資源類型屬性映射表包括資源類型屬性映 射ID、資源類型ID、資源屬性ID和順序號字段;
[0021] S11:根據(jù)管理信息系統(tǒng)數(shù)據(jù)規(guī)范,并結(jié)合資源類型數(shù)據(jù)庫表和資源屬性數(shù)據(jù)庫 表,將資源類型和資源屬性的所屬關(guān)系錄入到資源類型屬性映射表中;
[0022] S12:創(chuàng)建資源類型屬性字典映射表;所述的資源類型屬性字典映射表包括資源類 型屬性字典映射ID、資源類型屬性映射ID、枚舉表達(dá)式、標(biāo)識、是否為空、屬性值最大值/長 度、屬性值最小值/長度和默認(rèn)值字段;
[0023] S13:根據(jù)管理信息系統(tǒng)數(shù)據(jù)規(guī)范,并結(jié)合枚舉字典數(shù)據(jù)庫表,將資源類型屬性的 取值約束錄入到資源類型屬性字典映射表中;
[0024] S14:創(chuàng)建資源對象數(shù)據(jù)庫表;所述的資源對象數(shù)據(jù)庫表包括資源對象ID、資源對 象名稱、父對象ID、資源類型ID和順序號字段;
[0025] S15:根據(jù)管理信息系統(tǒng)數(shù)據(jù)規(guī)范,將所有資源對象的名稱、資源類型錄入到資源 對象數(shù)據(jù)庫表中;
[0026] S16:創(chuàng)建資源對象屬性值數(shù)據(jù)庫表;所述的資源對象屬性值數(shù)據(jù)庫表包括資源對 象屬性值ID、資源對象ID、資源類型屬性映射ID和資源屬性值字段;
[0027] S17:根據(jù)管理信息系統(tǒng)數(shù)據(jù)規(guī)范,將所有資源對象的屬性值錄入到資源對象屬性 值數(shù)據(jù)庫表中;
[0028] S18:結(jié)合資源對象數(shù)據(jù)庫表、資源對象屬性值數(shù)據(jù)庫表、資源類型數(shù)據(jù)庫表、資源 屬性數(shù)據(jù)庫表及資源類型屬性映射表,創(chuàng)建各個資源類型對應(yīng)的資源對象視圖。
[0029] 其中,將權(quán)利要求1所述的各個數(shù)據(jù)庫表增加預(yù)置字段,該預(yù)置字段用于標(biāo)記記錄 數(shù)據(jù)是否為預(yù)置的。
[0030] 其中,所述的步驟S9中合并相同的資源類型屬性具體為:將屬性名稱及屬性類型 均相同的資源類型屬性認(rèn)為是相同屬性并進(jìn)行合并。
[0031] 其中,經(jīng)過步驟S18后,還需要創(chuàng)建觸發(fā)器,當(dāng)資源類型或其屬性發(fā)生變化時,觸發(fā) 更新資源類型對應(yīng)的資源對象視圖。
[0032] 其中,所述的資源對象包括名稱、資源類型、資源類型屬性和屬性值。
[0033] 本發(fā)明相比【背景技術(shù)】具有如下優(yōu)點(diǎn):
[0034] 本發(fā)明的可動態(tài)擴(kuò)展的數(shù)據(jù)庫設(shè)計方法,可以比較圓滿的解決設(shè)計之初提出的幾 個問題。本發(fā)明通過詳細(xì)分析具體的管理信息系統(tǒng)的資源對象,并嚴(yán)格按照數(shù)據(jù)庫設(shè)計的 一般流程,對傳統(tǒng)數(shù)據(jù)庫設(shè)計方法進(jìn)行了創(chuàng)新,發(fā)明了可動態(tài)擴(kuò)展的數(shù)據(jù)庫設(shè)計方法,實現(xiàn) 了管理信息系統(tǒng)的可動態(tài)擴(kuò)展,即使應(yīng)用系統(tǒng)部署實施后仍可以動態(tài)地維護(hù)資源對象、資 源類型、資源屬性等信息,很好地適應(yīng)了應(yīng)用系統(tǒng)業(yè)務(wù)的發(fā)展性、多變性,同時也極大地方 便了系統(tǒng)的后期維護(hù)。
【附圖說明】
[0035] 圖1為本發(fā)明的數(shù)據(jù)庫表實體關(guān)系圖。
【具體實施方式】
[0036]下面結(jié)合附圖對本發(fā)明做進(jìn)一步的詳細(xì)闡述。
[0037] -種可動態(tài)擴(kuò)展的數(shù)據(jù)庫設(shè)計方法,包括需求分析、概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè) 計、物理結(jié)構(gòu)設(shè)計和實施維護(hù),所述的邏輯結(jié)構(gòu)設(shè)計,包括以下步驟:
[0038] S1:在管理信息系統(tǒng)需求分析和概念結(jié)構(gòu)設(shè)計的基礎(chǔ)上,分析系統(tǒng)中不同資源對 象實體集的類型,匯總出資源類型及其屬性,并且明確各資源類型屬性的取值約束、數(shù)據(jù)字 典及屬性類型,形成管理信息系統(tǒng)數(shù)據(jù)規(guī)范;
[0039] S2:創(chuàng)建枚舉字典數(shù)據(jù)庫表;所述的枚舉字典數(shù)據(jù)庫表包括枚舉ID、枚舉名稱、枚 舉父ID、是否分組和順序號字段;
[0040] 所述的枚舉字典數(shù)據(jù)庫表字段詳細(xì)說明見表1。
[0041 ]所述的枚舉字典數(shù)據(jù)庫表完整性約束說明如下:
[0042] a.預(yù)置枚舉是系統(tǒng)預(yù)置的,不允許刪除;
[0043] b.分組節(jié)點(diǎn)不能作為資源屬性的取值;
[0044] c.刪除分組節(jié)點(diǎn)時,其子節(jié)點(diǎn)相應(yīng)的刪除;
[0045] d.分組字段用于標(biāo)記節(jié)點(diǎn)是否為分組節(jié)點(diǎn)。在枚舉層級樹中,有些節(jié)點(diǎn)僅是對枚 舉進(jìn)行分組。
[0046] S3:根據(jù)管理信息系統(tǒng)數(shù)據(jù)規(guī)范,將數(shù)據(jù)字典錄入到枚舉字典數(shù)據(jù)庫表中;
[0047] S4:創(chuàng)建資源屬性類型數(shù)據(jù)庫表;所述的資源屬性類型數(shù)據(jù)庫表包括屬性類型ID、 屬性類型名稱、基本類型、顯示控件類型和錄入控件類型字段;
[0048] 所述的資源屬性類型數(shù)據(jù)庫表字段詳細(xì)說明見表2。
[0049] 所述的資源屬性類型數(shù)據(jù)庫表完整性約束說明如下:
[0050] a.預(yù)置資源屬性類型是系統(tǒng)預(yù)置的,不允許刪除;
[0051] b.資源屬性類型直接決定了應(yīng)用系統(tǒng)的輸入、輸出顯示方式,因此,當(dāng)系統(tǒng)開發(fā)完 成后,不能再增減資源屬性類型;
[0052] c.基本類型、顯示控件類型、錄入控件類型都是系統(tǒng)在"資源屬性枚舉字典 ResAttrEnumDictionary"數(shù)據(jù)庫表中預(yù)置的。
[0053] S5:根據(jù)管理信息系統(tǒng)數(shù)據(jù)規(guī)范,將屬性類型錄入到資源屬性類型數(shù)據(jù)庫表中;
[0054] S6:創(chuàng)建資源類型數(shù)據(jù)庫表;所述的資源類型數(shù)據(jù)庫表包括資源類型ID和資源類 型名稱字段;
[0055] 所述的資源類型數(shù)據(jù)庫表字段詳細(xì)說明見表3。
[0056] 所述的資源類型數(shù)據(jù)庫表完整性約束說明如下:
[0057] a.資源類型必須至少具有一個資源屬性;
[0058] b.分組節(jié)點(diǎn)不具有資源屬性;
[0059] c.分組節(jié)點(diǎn)不能實例化;
[0060] d.刪除分組節(jié)點(diǎn)時,其子節(jié)點(diǎn)相應(yīng)的刪除;
[0061 ] e .預(yù)置資源類型是系統(tǒng)預(yù)置的,不允許刪除;
[0062] f.當(dāng)資源類型已經(jīng)被實例化后,即資源對象數(shù)據(jù)庫表中已經(jīng)含有該資源類型的資 源對象時,不允許刪除該資源類型,也不允許將資源類型節(jié)點(diǎn)改為分組節(jié)點(diǎn);
[0063] g.分組字段用于標(biāo)記節(jié)點(diǎn)是否為分組節(jié)點(diǎn)。在資源類型層級樹中,有些節(jié)點(diǎn)僅是 對資源類型進(jìn)行分組。
[0064] S7:根據(jù)管理信息系統(tǒng)數(shù)據(jù)規(guī)范,將所有資源類型的名稱錄入到資源類型數(shù)據(jù)庫 表中;
[0065] S8:創(chuàng)建資源屬性數(shù)據(jù)庫表;所述的資源屬性數(shù)據(jù)庫表包括資源屬性ID、資源屬性 名稱和屬性類型字段;
[0066] 所述的資源屬性數(shù)據(jù)庫表字段詳細(xì)說明見表4。
[0067] 所述的資源屬性數(shù)據(jù)庫表完整性約束說明如下:
[0068] a.預(yù)置資源屬性是系統(tǒng)預(yù)置的,不允許刪除;
[