異種數(shù)據(jù)庫集成的主要技術(shù)有哪些?

字號:

CIMS是一個綜合的計算機(jī)應(yīng)用系統(tǒng),由多個不同的功能系統(tǒng)組成,如ERP、PDMS等,這些系統(tǒng)因數(shù)據(jù)對象的不同有可能使用了不同的數(shù)據(jù)庫系統(tǒng)。另外,企業(yè)實施CIMS工程一般都要經(jīng)歷幾個發(fā)展階段,由于技術(shù)或市場等原因,在不同時期配置的數(shù)據(jù)庫系統(tǒng)可能會不一樣。這樣,在一個企業(yè)的CIMS中,難免會包含幾種不同的數(shù)據(jù)庫系統(tǒng)。這里所說的不同,可能是基于不同數(shù)據(jù)模型的DBMS,如關(guān)系型的或?qū)ο笮偷摹R部赡茈m然都是關(guān)系型的,但不同商家的產(chǎn)品其SQL API不盡相同。這些就是CIMS中面臨的異種數(shù)據(jù)庫的集成問題。異種數(shù)據(jù)庫集成的主要技術(shù)有以下幾種:
    1)數(shù)據(jù)的遷移和轉(zhuǎn)換
    利用數(shù)據(jù)轉(zhuǎn)換程序,對數(shù)據(jù)格式進(jìn)行轉(zhuǎn)換,從而能被其它的系統(tǒng)接收。這種方法處理簡單,已為大多數(shù)用戶理解和接受。許多數(shù)據(jù)庫管理系統(tǒng)DBMS都自帶有一些數(shù)據(jù)轉(zhuǎn)換程序,也為用戶提供了方便。但這種方式當(dāng)數(shù)據(jù)更新時會帶來不同步的問題,即使人工定時運(yùn)行轉(zhuǎn)換程序也只能達(dá)到短期同步,這對于數(shù)據(jù)更新頻繁而實時性要求很高的場合是不太適用。
    2)使用中間件
    中間件(middleware)是位于Client與Server之間的中介接口軟件,是異構(gòu)系統(tǒng)集成所需的粘接劑?,F(xiàn)有的數(shù)據(jù)庫中間件允許Client在異構(gòu)數(shù)據(jù)庫上調(diào)用SQL服務(wù),解決異構(gòu)數(shù)據(jù)庫的互操作性問題。功能完善的數(shù)據(jù)庫中間件,可以對用戶屏蔽數(shù)據(jù)的分布地點、DBMS平臺、SQL方言/擴(kuò)展、特殊的本地API等等差異。
    使用中間件的異種數(shù)據(jù)庫集成有以下幾種方法:
    (1)通用SQL API 即在Client端的所有應(yīng)用程序都采用通用的SQL API訪問數(shù)據(jù)庫,而由不同的DBMS Server提供不同的數(shù)據(jù)庫驅(qū)動程序,解決連接問題。通用的SQL API又可分為嵌入式SQL(ESQL——Embedded SQL)和調(diào)用級SQL(CLI——Call Layer Interface)。ESQL是將SQL嵌入到C、Pascal、COBOL等程序設(shè)計語言中,通過預(yù)編譯程序進(jìn)行處理,因而SQL的所有功能及其非過程性的特點得到繼承。CLI則采用一個可調(diào)用的SQL API作為數(shù)據(jù)存取接口,它不需要預(yù)編譯過程,允許在運(yùn)行時產(chǎn)生并執(zhí)行SQL語句。由于CLI更為靈活,現(xiàn)在應(yīng)用較廣,如Microsoft的ODBC、IBM的DRDA、Borland的IDAPI、Sybase的Open Client / Open Server等等。 來源:www.examda.com
    (2)通用網(wǎng)關(guān) 網(wǎng)關(guān)(gateway)是當(dāng)前流行的中間件方案。在Client端有一個公共的客戶機(jī)驅(qū)動程序(Gateway Driver);在Server端有一個網(wǎng)關(guān)接受程序,它捕獲進(jìn)來的格式和規(guī)程(Format and Protocol,F(xiàn)AP)信息,然后進(jìn)行轉(zhuǎn)換,送至本地的SQL接口。
    (3)通用協(xié)議 通用協(xié)議是指公共的FAP和公共的API,并且有一個單一的數(shù)據(jù)庫管理接口。公共FAP支持適用于所有的SQL方言的超級設(shè)置或容忍全部本地SQL方言通過。
    (4)基于組件技術(shù)的一致數(shù)據(jù)訪問接口 例如,Microsoft推出的UDA(Universal Data Access)技術(shù),分別提供了底層的系統(tǒng)級編程接口和高層的應(yīng)用級編程接口。前者定義了一組COM(組件對象模型)接口,建立了抽象數(shù)據(jù)源的概念,封裝了對關(guān)系型及非關(guān)系型各種數(shù)據(jù)源的訪問操作,為數(shù)據(jù)的使用方和提供方建立了標(biāo)準(zhǔn);后者是建立在前者基礎(chǔ)上的,它提供了一組可編程的自動化對象,更適合于各種客戶機(jī)/服務(wù)器應(yīng)用系統(tǒng),尤其適用于在一些腳本語言中訪問各種數(shù)據(jù)源。
    3)多數(shù)據(jù)庫系統(tǒng)
    在CIMS環(huán)境下,從系統(tǒng)和規(guī)模上來解決異種數(shù)據(jù)庫集成的方法為多數(shù)據(jù)庫系統(tǒng)。所謂多數(shù)據(jù)庫系統(tǒng)就是一種能夠接受和容納多個異構(gòu)數(shù)據(jù)庫的系統(tǒng),對外呈現(xiàn)出一種集成結(jié)構(gòu),而對內(nèi)又允許各個異構(gòu)數(shù)據(jù)庫的“自治性”。來源:www.examda.com
    這種多數(shù)據(jù)庫系統(tǒng)和分布式數(shù)據(jù)庫系統(tǒng)有所不同。多數(shù)據(jù)庫系統(tǒng)不存在一個統(tǒng)一的數(shù)據(jù)庫管理系統(tǒng)軟件,而分布式數(shù)據(jù)庫系統(tǒng)是在一個統(tǒng)一的數(shù)據(jù)庫管理系統(tǒng)軟件的管理與控制之下運(yùn)行的。多數(shù)據(jù)庫系統(tǒng)主要采用自下而上的數(shù)據(jù)集成方法,因為異構(gòu)情況在前而集成要求在后,而分布式數(shù)據(jù)庫系統(tǒng)主要采用自上而下的數(shù)據(jù)集成方法,全局?jǐn)?shù)據(jù)庫是各個子庫的并集。多數(shù)據(jù)庫系統(tǒng)主要解決異種數(shù)據(jù)庫集成問題,可以保護(hù)原有的數(shù)據(jù)資源,使各局部數(shù)據(jù)庫享有高度“自治性”,而分布式數(shù)據(jù)庫系統(tǒng)是在數(shù)據(jù)的統(tǒng)一規(guī)劃下,著重解決數(shù)據(jù)的合理分布和對用戶透明的問題。當(dāng)然,兩者之間在技術(shù)上有很多交叉,可以互相借鑒。 多數(shù)據(jù)庫系統(tǒng)一般分為兩類:
    (1)有全局統(tǒng)一模式的多數(shù)據(jù)庫系統(tǒng)。多個異構(gòu)數(shù)據(jù)庫集成時有一個全局統(tǒng)一的概念模式,它是通過映射各異構(gòu)的局部數(shù)據(jù)庫的概念模式而得到。
    (2)聯(lián)邦式數(shù)據(jù)庫系統(tǒng)。各個異構(gòu)的局部數(shù)據(jù)庫之間僅存在著松散的聯(lián)邦式耦合關(guān)系,沒有全局統(tǒng)一模式,各局部庫通過定義輸入、輸出模式進(jìn)行彼此之間的數(shù)據(jù)訪問。 到目前為止,沒有商品化的多數(shù)據(jù)庫系統(tǒng),在CIMS環(huán)境中實施有一定難度。