專利名稱:基于跟蹤的數據庫模式演進方法及系統的制作方法
技術領域:
本發明涉及對數據庫的演進,具體來說,涉及一種基于跟蹤的數 據庫模式演進方法及系統。
背景技術:
在現今的商業服務應用領域中,隨著用戶需求的不斷變化,商業
服務的邏輯以及其數據庫模式(schema)也相應地進行演進。例如, SaaS (服務式軟件)系統可以通過一種系統設計來服務于不同的終端 用戶。在服務式軟件系統中,隨著用戶數量以及用戶類型的增加,對 于解決方案的靈活性和個性化的需求越重要。例如,可能由于功 能性設計和/或非功能性設計的原因,需要對商業服務的邏輯以及數據 庫模式進行改變。 一般來說,在商業服務的整個壽命周期期間,商業 服務系統需要不斷演進。
在商業服務系統的演進過程中,數據庫模式的演進和商業邏輯的 演進應當同步。另外,對于發生演進之后的商業服務系統而言,原商 業服務系統中的數據可能仍然是重要,因此,需要根據數據庫模式的 改變來正確地移植數據。
然而,在現有技術中,商業邏輯改變和數據庫模式演進是在沒有 集成工具支持的情況下被分開處理的。因此,在現有技術中,商業服 務系統的演進耗時、復雜且容易出錯,并且,在商業邏輯的模型設計 和數據庫模式演進的結果之間容易產生差異。
例如,圖1示意性地說明了現有技術中可能產生的問題。
現今,通常采用模型驅動的代碼產生技術來為商業邏輯產生代碼。 其中,首先由設計人員設計用于商業服務的設計模型,然后,開發人 員基于設計模型產生代碼并由此創建符合設計的商業邏輯。
4如圖1所示,當需求發生改變時,設計人員利用設計模型修改工
具101對設計模型進行修改,并將修改后的新設計模型分別提供給開
發人員和數據庫管理員。
一方面,開發人員將新設計模型導入模型驅動工具111。模型驅
動工具111對設計模型進行解析。接著,代碼生成器112根據解析結 果產生代碼。商業邏輯編譯器113利用產生的代碼創建相應的商業邏 輯。
另一方面,在與創建所述商業邏輯完全不同的環境中,數據庫管 理員(DBA)利用數據庫重構裝置121對新設計模型進行操作,以產 生重構點(Refactor Point)文件。然后,利用重構點文件,模式演進 腳本(script)生成裝置122可以生成模式演進腳本,以及數據移植腳 本生成工具123可以生成數據移植腳本。接著,利用測試數據庫124 對模式演進腳本和數據移植腳本進行測試。
在現有技術中,數據庫管理員需要手動地分析新設計模型來產生 重構點文件,因此,所產生的腳本和所產生的代碼之間很容易產生不 一致性。盡管在現有技術中數據庫管理員和開發人員可以通過其它方 式進行額外的溝通來消除這種不一致性,但是,這在一定程度上增加 了商業服務系統演進的復雜程度和成本。
另外,由于手動產生重構點文件,因此,不能夠確保重構點文件 完全正確反映對設計模型的修改。因此,在對模式演進腳本和數據移 植腳本的調試過程中還可能需要對重構點文件進行修改。這在某種程 度上還會增加數據庫演進的復雜程度和成本。
在De印ak S. Elandassery等人的申請曰為2003年9月25曰、申 請號為10/670,947、發明名稱為"Method for Automated Database Schema Evolution"的美國專利申請(以下稱為對比文件1)中公開了 一種自動數據庫模式演進的方法,該專利申請在此引入作為參考。在 對比文件1中,將新數據庫和舊數據庫的模式文件進行比較,以找到 二者之間的差別,并根據所述差別來進行數據庫模式演進。在對比文 件1中不涉及數據移植。在KangGe等人的申請日為2004年12月17、申請號為11/016,228、發明名稱為“DirrerentialManagementornatabaseschemachanges”的美國專利申請(以T稱為對比文件2)中公開T一種數據庫模式演進的方法,該專利申請在此引入作為參考。與對比文件1類似,在對比文件2中,將新數據庫和舊數據庫的模式文件進行比較,以找到二者之間的差別,并根據所述差別來進行數據庫模式演進.
在對比文件1和2的技術方案中同樣存在上面所述的問題。
另外,在對比文件1和2中,通過比較新數據庫和舊數據庫的模式文件來找到二者之間的差別,但是這種方式不能夠或者很難跟蹤數據庫模式改變時的語義信息。
因此,需要一種新的技術方案來解決上述現有技術中的問題。
發明內容
為了解決上述問題,本發明設計了一種基于跟蹤的數據庫模式演進方法及系統。
根據本發明的第一方面,提供了一種集成的基于跟蹤的數據庫模式演進方法,包括以下步驟導入原設計模型;在編輯原設計模型時,跟蹤并記錄對原設計模型的更改;以及根據所述對原設計模型的更改來生成模式演進腳本和數據移植腳本。
在本發明的第一方面的一個實施例中,利用可擴展操作集來跟蹤和記錄對原設計模型的更改;以及利用可擴展操作集來生成模式演進腳本和數據移植腳本。例如,所述可擴展操作集可以包括增加操作、刪除操作、更改名稱操作和移動操作等。
在本發明的第一方面的另一個實施例中,利用中間文件來跟蹤和記錄對設計模型的更改。
在本發明的第一方面的另一個實施例中,對原設計模型進行解析以生成中間文件。
在本發明的第一方面的另一個實施例中,基于中間文件來同源地生成模式演進腳本和數據移植腳本。
根據本發明的第二方面,提供了一種集成的基于跟蹤的數據庫模
式演進系統,包括模式編輯器,用于編輯原設計模型并同時跟蹤和
記錄對原設計模型的更改;以及腳本生成器,用于根據所述對原設計
模型的更改來生成模式演進腳本和數據移植腳本。
在本發明的第二方面的一個實施例中,所述系統還包括與模式 編輯器和腳本生成器耦合的可擴展操作集模塊,可擴展操作集模塊用
于維護可擴展操作集,其中,可擴展操作集包含能對設計模型執行的 操作類型以及相應的模式演進腳本模板和數據移植腳本模板。例如, 所述可擴展操作集可以包括增加操作、刪除操作、更改名稱操作和移 動操作等。
在本發明的第二方面的另一個實施例中,所述模型編輯器包含中 間文件,其中所述中間文件用于跟蹤和記錄對設計模型的更改。
在本發明的第二方面的另一個實施例中,所述系統還包括與模 型編輯器耦合的模型解析器,用于對原設計模型進行解析以生成中間 文件。
在本發明的第二方面的另一個實施例中,所述腳本生成器基于中 間文件來同源地生成模式演進腳本和數據移植腳本。
本發明的一個優點在于根據本發明,采用集成的方式來生成新 設計模型、模式演進腳本和數據移植腳本,從而能夠保證它們之間的 一致性并且減少了工作量。
本發明的另一個優點在于根據本發明,在編輯設計模型的同時 跟蹤和記錄對設計模型的更改,從而能夠保證對設計模型的修改以及 模式演進腳本和數據移植腳本之間的一致性。
根據本發明可以完整地記錄對設計模型進行更改時的語義信息, 這有利于簡化數據庫演進和數據移植時的操作。
根據本發明,采用可擴展操作集,其中,可擴展操作集可以是預 先定義的,或者可以由數據庫管理員根據需要進行修改,這提供了靈 活性。
7另外,采用可擴展操作集可以使對設計模型的操作標準化,從而 減少了設計時產生錯誤的可能性。
另外,可擴展操作集是可重復使用的,因此,減少了設計人員的 工作量。
根據本發明,中間文件記錄對設計模型的更改,而腳本模板被保 存在可擴展操作集中。因此,可以獨立于中間文件來對所述腳本進行 修改和調試,這增加了生成腳本的靈活性。
參照附圖,根據下面的詳細描述,可以更加清楚地理解本發明,
其中
圖l是示意性地示出了現有技術的用于商業邏輯以及數據庫演進 的系統。
圖2是示意性地示出根據本發明的集成的基于跟蹤的數據庫模式 演進系統的框圖。
圖3是示意性地示出根據本發明的集成的基于跟蹤的數據庫模式 演進方法的流程圖。
圖4示出了對根據本發明的集成的基于跟蹤的數據庫模式演進系 統的實際應用的例子。
具體事實方式
為了簡明和清楚起見,在不同附圖中,相同參考標記表示相同的 單元。此外,為了描述的簡明以及不會在不必要的方面使得本發明模 糊,而省略了關于公知步驟和單元的描述和細節。
本領域的普通技術人員應該明白,前面的一般描述和下面的詳細 描述是對發明進行舉例和說明的,而不是為了對本發明進行限制的。
下面通過例子來說明本發明的技術方案。
數據庫的演進可以包括但不限于以下幾種情況
-在數據庫的表中刪除列;-在數據庫的表中增加列; -更改數據庫的表中的列的名稱;以及
-將數據庫的表中的列移動到其它位置,例如,在表中將一個列 從一個位置移動到另 一個位置,或者將一個表中的列移動到另 一個表 中。
數據庫的演進還包括許多其它情況,上面所列舉的情況僅僅是示 例性的。
數據庫的演進包括模式演進和數據移植,其中,數據庫的模式是 指數據庫的表結構、索引、列信息等信息。
通常,數據庫管理員會利用模式演進腳本和數據移植腳本來對數 據庫進行演進。在數據庫演進過程中,可以利用模式演進腳本來改變 數據庫的模式。例如,數據庫管理員可以利用模式演進腳本在數據庫 的表中增加、刪除、更改或移動列。通過數據移植腳本,數據庫管理 員可以將原數據庫中的數據移植到演進之后的數據庫中。例如,將原 數據庫的列中的數據移植到演進后的數據庫中與該列對應的列中。
本發明的集成的基于跟蹤的數據庫模式演進系統包括模式編輯 器,用于編輯原設計模型并同時跟蹤和記錄對原設計模型的更改;以 及腳本生成器,用于根據所述對原設計模型的更改來生成模式演進腳 本和數據移植腳本。
下面參照圖2來說明本發明的基于跟蹤的數據庫模式演進系統的 結構。
例如,當商業需求發生改變時,設計人員可以利用根據本發明的 基于跟蹤的數據庫模式演進系統200來對原設計模型進行修改,以生 成新設計模型。
設計模型是用于描述數據對象關系的模型,其例如可以是類圖、 實體關系(ER)映射或對象關系(OR)映射等。當需求發生改變時, 設計人員可以對原設計模型進行修改,以反映和實現所述改變。
根據本發明的基于跟蹤的數據庫模式演進系統200為設計人員提 供了 一種用于生成設計模型、模式演進腳本和數據移植腳本的集成環境。如圖2所示,根據本發明的系統200包括模型編輯器210、模型 解析器220、可擴展操作集模塊230以及腳本生成器240。
原設計模型被導入根據本發明的基于跟蹤的數據庫模式演進系統 200。設計人員可以在模型編輯器210中對所導入的原設計模型進行編 輯。
根據本發明的集成的基于跟蹤的數據庫模式演進系統200還包括 與模式編輯器210和腳本生成器240耦合的可擴展操作集模塊230, 可擴展操作集模塊230用于維護可擴展操作集,其中,可擴展操作集 包含能對設計模型執行的操作類型以及相應的模式演進腳本模板和數 據移植腳本模板。
在一個實施例中,用戶可以預先定義對設計模型所進行的編輯操 作(編輯類型),其中,在可擴展操作集模塊230中預先定義所述編 輯類型。
下面描述了一個對設計模型進行編輯的例子,其中,設計人員使 用模型編輯器210將一個新的字段添加到設計模型的數據對象中。首 先,設計人員選中設計模型的設計對象并選擇所需的編輯類型(在此 為添加操作)。接著,設計人員將新的字段添加到數據對象中。可選 地,用戶還可以輸入所述字段的初始數據。
例如,所述編輯類型可以是更改實體名稱、更改屬性類型、更改 屬性名稱、更改屬性值、更改關系、刪除實體、刪除屬性、刪除關系 和移動實體等。本領域普通技術人員應當知道,所述編輯類型不限于 上面的例子。
在一個實施例中,所述可擴展操作集包括增加操作、刪除操作、 更改名稱操作和移動操作中的至少一種操作。
模型編輯器210還跟蹤對原設計模型的更改。
在一個實施例中,模型跟蹤器210維護一個中間文件211。中間 文件211用于記錄設計模型的信息以及對設計模型的更改的跟蹤信 息。具體來說,中間文件211可以包含但不限于組成設計模型的實 體;組成每個實體的屬性;各個屬性的類型;實體之間的關系等。例如,中間文件可以是XML文件形式的,但是,本領域普通技術人員應當知道,中間文件的形式不限于XML文件。下面示例性地示出了一個中間文件的例子
< xml ve廣sion-"1.0" encoding = "UTF-8" >
-<xsd:schema xmlns:dsmodel="http://EasyManLib"
xmlns:xsd = "http://www,w3,org/2001/XMLSchema''
targetl\lamespace="http://EasyManLib"><xsd:element name="Model" type-"dsmodel:ModelType" />
- <xsd:complexType name="ModelType">-<xsd:sequence>
<xsd:element name="entity" type-"dsmode,EntityType" min〇ccurs="0" />〈xsd:element name="relationship" type=''dsmodel:Re,aWonType" minOccurs-"O" /><xsd:element name="version" type="xsd:str〗ng" minOccurs-"O" /></xsd:sequence>
<xsd:attribute name-"name" type-"xsd:string" />
</xsd: complexType>-<xsd:complexType name="EntityType">
-<xsd:s6quenc6>
<xsd:element name-"property" type="dsmodel:PropertyType" minOccurs-T /><xsd:element name="primaryKey" type="xsd:string" minOccLirs-"0" /><xsd:element name="foreignkey" type="xsd:string" minOccurs="0" /><xsd:element name="operation" type-"dsmodehOperationType" nVmOccurs="0" /></xsd:sequence>
<xsd:attribute name="Name" type-"xsd:string" /><xsd:attribute name="DBName" type-"xsd:string" /></xsd:complexType>
- <xsd:complexType name="RelationType">
- <xsd:sequence>
<xsd:element name="src" type="xsd:string" minOccurs=T />
<xsd:element name="des" type="xsd:string" minOccurs=T />
<xsd:element name="operation" type-"dsmodel:OperationType" minOccurs-"O" />
</xsd:sequence>
<xsd:attribute name="Name" type="xsd:string" /></xsd:complexType>-〈xsd:complexType name="PropertyType">
-<xsd:sequence>
<xsd:element name="operation" type-"dsmodel:OperationType" minOccurs-"O" /></xsd:sequence>
<xsd:attribute name="Name" type="xsd:string" />
<xsd:attribute name="Type" type-"xsd:string" />
<xsd:attribute name=''defaultValue" type="xsd:string" />
</xsd:complexType>- <xsd:complexType name="OperationType">
-<xsd:choice>
<xsd:element name="oldent,tyName" type-"xsd:string" minOccurs-"O" /><xsd:element name="newentityvalue" type="xsd:string" minOccurs-"O" /><xsd:element name=''oldpropertyvalue" type="dsmodel:PropertyType"
min〇ccurs = "0" />
<xsd:element name="newpropertyvalue" type-"dsmodel:PropertyType"
mi門Occurs O'1 />
<xsd:element name-"oldRelationship" type-"dsmodel:RelationType" minOccurs-"O/>
<xsd:element name-"newRelationship" type="dsmodel:RelationType"
minOccurs="0" /></xsd:choice>
<xsd:attribute narne="Name" type-"xsd:string" />
</xsd:complexType></xsd:schema>
借助于中間文件211,模型編輯器210可以跟蹤對設計模型的更改。例如,每當模型編輯器210對設計模型進行編輯操作時,模型編輯器210都會在中間文件211中標記所操作的數據對象、記錄相應操作類型以及參數等。從而可以在中間文件中同步且準確地記錄對設計模型所作的任何更改。例如,根據本發明,設計人員可以將一個表中的列移動到另一個表中,并在中間文件211中記錄所述操作。
當完成對設計模型的編輯時,模型編輯器210可以輸出帶跟蹤標記的中間文件和新的設計模型。
在一個實施例中,根據本發明的基于跟蹤的數據庫模式演進系統200還包括模型解析器220。模型解析器220用于對設計模型進行解析,以生成中間文件供模型編輯器210使用。
腳本生成器240接收來自模型編輯器210的帶跟蹤標記的中間文件。利用所述帶跟蹤標記的中間文件,腳本生成器240可以生成同源的模式演進腳本和數據移植腳本。
在一個實施例中,所述腳本生成器240還可以包括基于跟蹤信息的智能發現模塊241。基于跟蹤的智能發現模塊241可以對帶跟蹤標記的中間文件進行分析并形成重構點文件。重構點文件是現有技術中公知的。腳本生成器241基于所述重構點文件中所標記的操作類型,在可擴展操作集中找到相應的模板,并由此生成模式演進腳本和數據 移植腳本。
可擴展操作集模塊230與所述模型編輯器210和腳本生成器240 相關聯并且用于維護可擴展操作集,其中,可擴展操作集包括一組操 作以及對應的數據庫演進腳本模板,所述模板包括數據庫模式演進腳 本模板和數據移植腳本模板。可以在根據本發明的基于跟蹤的數據庫 演進系統200中預先定義可擴展操作集。在一個實施例中,數據庫管 理員可以修改和擴展所述可擴展操作集,以滿足各種模式演進的需要。
可擴展操作集中的每個操作可以包括操作名稱、操作類型以及與 操作類型對應的數據庫模式演進腳本模板和數據移植腳本模板等。作 為非限制性的例子,在下面示意性地描述了可擴展操作集中的幾種操作。
1.用于移動列的操作 OperationType= Move, Object = Column, Template ={
-模式演進腳本為目標表建立一個列
ALTER TABLE SMoveTarget ADD COLUMN $ColumnName SType; -數據遷移準備腳本建立臨時表
CREATE TABLE $MoveSRC—BAK (SoldColu隨List);
-數據遷移準備腳本
INSERT INTO $MoveSRC_BAK (SELECT * FROM $MoveSRC ); Update $MoveTarget set $ColumnName = select $ColumnName from $MoveSRC_BAK;
--模式演進腳本
DROP TABLE $MoveSRC;
CREATE TABLE $MoveSRC (SnewColumnsList);
-數據遷移準備腳本INSERT INTO $MoveSRC (SELECT * FROM $MoveSRCJBAK ); -模式演進腳本刪除臨時表 DROP TABLE $MoveSRC_BAK;
2. 用于更改列名稱的操作 OperationType= AlterName(AlterType), Object = Column,
Template
-數據遷移準備腳本建立臨時表
CREATE TABLE $Table_BAK (SoldColumnsList);
-數據遷移準備腳本
INSERT INTO STable一BAK (SELECT * FROM $ Table);
-模式演進腳本
DROP TABLE $Table;
CREATE TABLE $Table ($newColumnsList(contain new Name)); -數據遷移準備腳本
INSERT INTO $Table (SELECT SnewColumnsList FROM$ Table
_BAK );
-模式演進腳本刪除臨時表 DROP TABLE $Table—BAK;
3. 用于添加新列的操作 OperationType- ADD Column, Object = Column,
Template ={
-模式演進腳本為目標建立一個列
ALTER TABLE $Table ADD COLUMN $ColumnName $Type;
14Update $ Table set $MoveTarget = $initialValue5
4.用于刪除表的操作 OperationType= Delete, Object = Table , Template
-模式演進腳本 Drop Table $Target
本領域普通技術人員應當理解,上面所描述的操作僅是示例性的, 并且根據本發明,可擴展操作集中的操作不限于上面作為示例所描述 的操作。
所述可擴展操作集可以由模型編輯器210使用。例如,當利用模 型編輯器210對設計模型進行編輯時,模型編輯器210參照操作名稱 或操作類型等將對設計模型的更改記錄到中間文件211中。
所述可擴展操作集還可以由腳本生成器240使用。例如,在完成 對設計模型的編輯之后,腳本生成器240利用可擴展操作集中的模式 演進腳本模板和/或數據移植腳本模板來生成模式演進腳本和/或數據 移植腳本。
在一個實施例中,根據本發明的系統還可以包括版本管理模塊 250。版本管理模塊250可以將版本信息插入到所生成的新設計模塊、 模式演進腳本和數據移植腳本中。所述版本信息可以用于保持模式演 進腳本、數據移植腳本和商業邏輯代碼之間的一致性。通過該版本信 息,設計人員和/或開發人員可以很容易地獲得商業邏輯代碼的基準以 及對應的模式演進腳本和數據移植腳本。
在另 一個實施例中,所述版本管理模塊250可以與版本儲存庫260 相連,其中,所述版本儲存庫260用于存儲設計模型以及相關模式演進腳本和數據移植腳本的歷史版本。借助于該版本儲存庫260,設計 人員可以容易地通過版本號找到相應的商業邏輯代碼、數據庫模式演 進腳本和數據移植腳本。
本發明的基于跟蹤的數據庫模式演進方法包括以下步驟導入原 設計模型;在編輯原設計模型時,跟蹤并記錄對原設計模型的更改; 以及根據所述對原設計模型的更改來生成模式演進腳本和數據移植腳 本。
圖3示出了根據本發明的實施例的基于跟蹤的數據庫模式演進方 法300的流程圖。
當需求發生改變時,設計人員需要對設計模塊進行更改。根據本 發明,設計人員可以在集成的環境中對設計模塊進行更改。
在步驟S301,設計人員將原設計模型導入根據本發明的基于跟蹤 的數據庫模式演進系統200。
在步驟S302,設計人員利用模型編輯器210對所導入的設計模型 進行編輯。
在一個實施例中,模型編輯器210可以調用模型解析器220來對 設計模型進行解析。模型解析器220輸入設計模型,并判斷該設計模 型是否可以被解析。如果該設計模型不能被解析,則模型解析器進行 報告并退出。否則,模型解析器220對設計模型進行解析,并輸出用 于描述設計模型的中間文件以供模型編輯器210使用。
在一個實施例中,可以利用可擴展操作集來跟蹤和記錄對原設計 模型的更改;以及利用可擴展操作集來生成模式演進腳本和數據移植 腳本。例如,設計人員通過可擴展操作集來對設計模型進行操作。在 可擴展操作集中定義可以對設計模型執行的操作。可擴展操作集可以 是預先定義的。另外,根據設計需要,數據庫管理員也可以定義其自 己的可擴展操作集。
在對設計模型進行編輯的同時,跟蹤和記錄對設計模型的更改。 在一個實施例中,設計人員從可擴展操作集中選擇操作類型,例如, 用于移動列的操作、用于增加新列的操作、用于更改列名稱的操作或
16用于刪除表的操作等。利用所述操作類型可以對設計模型進行操作,
并同時在中間文件211中記錄所述操作類型。在本發明中,由于同時 進行編輯和跟蹤,因此,能夠保證設計;f莫型與模式演進腳本和數據移 植腳本之間的一致性。
在一個實施例中,所述可擴展操作集包括增加操作、刪除操作、 更改名稱操作和移動操作中的至少 一種操作。
在一個實施例中,模型編輯器210利用中間文件來跟蹤和記錄對 設計模型的更改。
在一個實施例中,由模型解析器220對原設計模型進行解析來生 成中間文件。
在步驟S303,當設計人員完成對設計模型的編輯之后,模型編輯 器210輸出新設計模型以及帶跟蹤標記的中間文件。
在步驟S304,根據帶跟蹤標記的中間文件,腳本生成器240可以 同源地生成數據庫模式演進腳本和數據移植腳本。
在一個實施例中,可以首先采用智能發現程序(模塊)對帶跟蹤 標記的中間文件進行解析,找到其中所標記的操作類型。接著,根據 所述操作類型,在可擴展操作集中檢索相應的模式演進腳本模板和數 據移植腳本模板。利用所檢索到的模板,可以生成相應的模式演進腳 本和數據移植腳本。
在步驟S305,輸出生成的新設計模型、模式演進腳本和數據移植 腳本。開發人員可以利用所述新設計模型來產生商業邏輯代碼以及生 成相應的商業邏輯。另外,數據庫管理員可以利用模式演進腳本和數 據移植腳本來對數據庫進行演進。
在一個實施例中,還可以在新設計模型、模式演進腳本和數據移 植腳本中添加版本管理信息,并且將設計模型、模式演進腳本和數據
移植腳本存儲在版本儲存庫中。在需要恢復先前版本時,該實施例是 非常有用的。
圖4示出了將根據本發明的集成的基于跟蹤的數據庫模式演進系 統400應用于實際數據庫演進過程的例子。如圖4所示,當需求發生改變而需要對數據庫進行演進時,設計 人員將原設計模型導入根據本發明的集成的基于跟蹤的數據庫模式演 進系統400。接著,設計人員可以利用根據本發明的系統對設計模型 進行編輯。
當設計人員完成編輯時,根據本發明的系統同時生成新設計模型 以及模式演進腳本和/或數據移植腳本。
新設計模型被提供給開發人員。開發人員可以利用基于模型的代 碼生成技術來實現新的商業邏輯。
模式演進腳本和/或數據移植腳本被提供給數據庫管理員,以便對 數據進行演進。數據庫管理員還可以根據需要對可擴展操作集進行修 改。
可以通過各種方式來實現本發明的方法及系統。例如,可以通過 軟件、硬件、固件以及其任意組合來實現本發明的方法及系統。上面 描述方法步驟的順序僅是為了說明性的目的而采用的,除非明確的說 明,否則,本發明的方法的步驟不限于上面具體描述的順序。另外, 在某些實施例中,本發明還可以體現為在記錄介質上所記錄的程序, 其包括用于實現根據本發明的方法的機器可讀指令。
盡管上面已經通過例子對本發明的特定實施例進行了詳細描述, 但是,本領域的普通技術人員應當理解,上述例子僅是說明性的而并 非是對本發明的限制。本領域的普通技術人員應當明白,在不脫離本 發明的精神和范圍的情況下,可以對上述實施例做出修改。本發明的 范圍由所附的權利要求來限定。
權利要求
1. 一種集成的基于跟蹤的數據庫模式演進方法,包括以下步驟導入原設計模型(S301);在編輯原設計模型時,跟蹤并記錄對原設計模型的更改(S302);以及根據所述對原設計模型的更改來生成模式演進腳本和數據移植腳本(S304)。
2. 根據權利要求1所述的方法,還包括利用可擴展操作集來跟蹤和記錄對原設計模型的更改;以及利用可擴展操作集來生成模式演進腳本和數據移植腳本。
3. 根據權利要求2所述的方法,其中,所述可擴展操作集包括增加操作、刪除操作、更改名稱操作和移動操作中的至少一種操作。
4. 根據權利要求1所述的方法,還包括利用中間文件來跟蹤和記錄對設計模型的更改。
5. 根據權利要求4所述的方法,還包括對原設計模型進行解析以生成中間文件。
6. 根據權利要求4或5所述的方法,其中,基于中間文件來同源地生成模式演進腳本和數據移植腳本。
7. —種集成的基于跟蹤的數據庫模式演進系統(200),包括模式編輯器(210),用于編輯原設計模型并同時跟蹤和記錄對原設計模型的更改;以及腳本生成器(240),用于根據所述對原設計模型的更改來生成模式演進腳本和數據移植腳本。
8. 根據權利要求7所述的系統,還包括與模式編輯器(210)和腳本生成器(240)耦合的可擴展操作集模塊(230),可擴展操作集模塊(230)用于維護可擴展操作集,其中,可擴展操作集包含能對設計模型執行的操作類型以及相應的模式演進腳本模板和數據移植腳本模板。2
9. 根據權利要求8所述的系統,其中,所述可擴展操作集包括增加操作、刪除操作、更改名稱操作和移動操作中的至少一種操作。
10. 根據權利要求7所述的系統,其中,所述模型編輯器(210)包含中間文件(211),其中所述中間文件用于跟蹤和記錄對設計模型的更改。
11. 根據權利要求10所述的系統,還包括與模型編輯器(210)耦合的模型解析器(220 ),用于對原設計模型進行解析以生成中間文件。
12. 根據權利要求10或11所述的方法,其中,所述腳本生成器(240 )基于中間文件來同源地生成模式演進腳本和數據移植腳本。
全文摘要
本發明公開了一種集成的基于跟蹤的數據庫模式演進方法和系統。所述方法包括以下步驟導入原設計模型;在編輯原設計模型時,跟蹤和記錄對原設計模型的更改;以及生成新設計模型,并根據所述對原設計模型的更改來生成模式演進腳本和數據移植腳本。
文檔編號G06F17/30GK101499063SQ200810004968
公開日2009年8月5日 申請日期2008年1月31日 優先權日2008年1月31日
發明者沛 孫, 張劍鳴, 寧 段 申請人:國際商業機器公司