集成數據庫框架的制作方法
【技術領域】
[0001]本發明涉及用于創建不同數據庫之間的鏈接的方法。一般目的是實現不同數據庫之間信息的集成,使得對信息的集中訪問可以被提供用于包括在集成框架中的任何類型的數據庫。
[0002]發明背景
[0003]在許多組織中,由個人用戶使用的信息被存儲在多個數據庫中。對此可能有幾個原因,而使用許多不同的計算機工具非常經常地導致在不同數據庫中的存儲。
[0004]其中特別相關的一個環境是產品或系統開發。目前有許多不同的計算機系統開發工具;每個在具體的開發任務或領域中被專門化。這樣的示例是需求管理/工程設計工具、系統架構工具、自動化測試工具、UML工具以僅舉幾例。
[0005]為了使開發高效,由工具存儲在不同數據庫中的信息需要進行管理。這種管理包括尋找在不同工具中的相關的信息、可追溯的任務,生成從不同工具收集信息的報告,從另一個工具獲取一個工具中的信息,等等。
[0006]在歷史上,集成開發工具已集中在用于工具之間的信息傳送的信息格式,或者用于特定工具的完整集成解決方案。這種方法一直不太成功,主要是因為集成的限制和成本,相反市面上已經出現了用于信息的普遍交換的標準,其更深入到各種工具中的信息的解釋和管理。這種標準的示例包括需求交換格式(RIF)(如參見http://en.wikipedia.0rg/wiki/Requirements Interchange Format)和 XMI (如參見 http: //www.0mq.0rg/spec/XMI/) o
[0007]這些方法的限制在于它們局限于從一個工具到另一個工具的離散和專門的信息傳送。它們沒有對信息被存儲在不同數據庫中的問題提供更系統的解決方案。
[0008]具有其數據項的標識的任何數據庫可以通過對使用該標識的數據項的引用來集成到另一個數據庫中,從而形成“鏈接”。圖1示出從第一數據庫2中的主要項I至第二數據庫4中的輔助項3的鏈接5。為了使鏈接有效,還必須有訪問使用該標識的輔助項3的方式。這種簡單的鏈接,比如在HTTP中使用的超鏈接,支持對數據的訪問并且支持結構中從一個數據元素到另一個數據元素的可能的導航或瀏覽。然而,使用這種方法,不可能跟蹤反向鏈接,即在數據庫4中檢測到實際上有對數據項3的引用。這樣的結果是,數據的完整性不能在一個數據庫中得到保持;如果項3被刪除,鏈接“被破壞”。此外,不可能對多個數據源中的數據執行集合運算。這樣的集合運算的實例是在SQL數據庫中可用的“聯合”運算。
[0009]為了克服這些限制,來自一個數據庫的數據元素可以代替被復制到另一個數據庫中。這示于圖2。這里,輔助項的拷貝(副本)6被存儲在第一數據庫2中。該副本6可以從主數據項I被訪問,并使得對數據的訪問更快,因為只有一個數據庫被涉及,并且還可以使能集合運算。
[0010]但是,這種方法也有其他限制。首先,沒有系統方式來實現集成(復制),所以其必須從每個數據庫到另一個數據庫來執行。此外,一旦已進行復制,第一數據庫及其管理系統不能確定該項是副本,更不用說確定原始項被存儲在何處。為了處理這樣的問題,利用通過復制的集成的常規數據庫,需要額外的應用軟件來跟蹤哪些項實際上是副本,并處理這些副本和原始項之間的關系。
[0011]具有上述缺點中的至少一些的、用于管理和更新來自不同源的數據的系統的一個示例由W02008151423公開。
【發明內容】
[0012]本發明的一個目的是克服這個問題以及其他問題,并提供不同數據庫之間的鏈接,其提供對分布在幾個數據庫中的信息的系統集成。
[0013]根據本發明的第一方面,這個目的以及其他目的通過包括第一數據庫和第二數據庫的數據庫系統來實現,第一數據庫包括數據庫管理器和具有使數據庫管理器能夠存儲和訪問第一數據庫中的數據項的規則集合的模式,第二數據庫存儲多個數據項,該模式還包括使數據庫管理器能夠訪問第二數據庫中的數據項的至少一個子集的規則。此外,該模式包括多個數據項類型,數據項類型每個包括指示數據項是否是第二數據庫中的輔助項的副本的標記字段。第一數據庫還包括第一數據庫中的主要項和第二數據庫中的輔助項之間的鏈接,該鏈接包括從主要項指向存儲在第一數據庫中的輔助項的副本的第一鏈接,和從副本指向第二數據庫中的輔助項的第二鏈接。
[0014]根據本發明的第二方面,這個目的以及其他目的通過用于創建第一數據庫和第二數據庫之間的鏈接的方法來實現,第一數據庫包括數據庫管理器和包括使數據庫管理器能夠存儲和訪問第一數據庫中的主數據項的規則集合的模式,且第二數據庫存儲多個輔助數據項。該方法包括擴展該模式以包括使數據庫管理器能夠訪問在第二數據庫中的項的至少一個子集的規則,該模式包括多個數據項類型,數據項類型每個包括指示數據項是否是在第二數據庫中的輔助項的副本的標記字段;接收對建立從第一數據庫中的主要項到第二數據庫中的輔助項的鏈接的請求;驗證該模式包括使數據庫管理器能夠訪問輔助項的訪問規貝IJ ;由數據庫管理器訪問輔助項;以及在第一數據庫中存儲輔助項的副本,創建從副本到輔助項的鏈接并且創建從主要項到副本的鏈接。
[0015]表述“數據庫”這里是用在廣義上,表示根據確定的原理提供數據項的存儲的任何數據源。這樣的數據源的示例是關系型數據庫和對象數據庫,但也可以是支持包括在文件(像 GUID,UUID,例如參見 http: //en.wikipedia.0rg/wiki/GUID, http: //en.wikipedia.0rR/wiki/UUIP)中的數據項的某種ID的任何計算機文件。
[0016]數據庫模式定義存儲在數據庫中的數據項,包括數據項的類型,以及不同數據項之間的可能關聯。該模式還可以創建允許數據庫項的創建的基礎數據結構。例如,在關系型數據庫中,由關系模式定義的表格結構是存儲表中的關系所必需的。在對象數據庫中,該模式定義存儲在數據庫中的所有對象類型和對象鏈接。
[0017]根據本發明,特定數據庫(第一數據庫)的模式被擴展到不僅覆蓋該特定數據庫中的數據項,而且還覆蓋潛在地存儲在其他外部數據庫中的數據項。換句話說,一個單一的模式將包括與一個以上的數據庫有關的數據項類型、關聯、存儲結構等的定義。公共模式額外描述信息以增強對與存儲在第二數據庫中的、未在第一數據庫中被表示的數據相關的信息的訪問(縮短的延遲時間,提高的可用性)。這通過指示數據項僅存儲在第二數據庫中的特定類型或者標記來實現。第一數據庫將因此僅存儲指向該數據項的指針或“句柄(handle)”。
[0018]擴展模式包括用于數據項的集成和訪問所需的所有信息。這樣的擴展模式從而使第二數據庫中的內容可從第一數據庫訪問,以允許一種新型的鏈接。這樣的鏈接將包括兩個部分;從主要項指向副本的第一部分,和從副本指向第二數據庫中的輔助項本身的第二部分。
[0019]根據本發明,有可能使用復制以便實現集成,這與僅僅為了允許訪問或實現減小的訪問延遲的目的而進行的常規的復制形成對比。
[0020]使用根據本發明的數據庫項之間的鏈接,存儲在不同數據庫中信息的集成成為可能,