摘要:由于歷史及技術等原因,在資源建設的過程中產生了異構數據庫,數據庫互操作問題也一直是數據庫研究領域的熱門課題。主要闡述了異構數據庫互操作的概念、實現途徑中的關鍵技術。
關鍵詞:資源整合 異構數據庫 互操作 聯邦式數據庫
1 引言
異構數據庫互操作問題作為數據庫領域的研究熱點和難點課題,在國內外的學術界和工業界都引起了廣泛的關注。自20世紀80年代以來,國外許多公司和科研單位對異構數據庫的集成進行了大量研究,取得了不少成果,但國內對異構數據庫集成的研究還處于開始階段。
2 異構數據庫互操作的概念
異構數據庫(Heterogeneous Database)集成是數據庫技術從完全集中到邏輯集中、物理分布(傳統分布式數據庫)乃至邏輯分布、物理分布(異構數據庫)這一發展過程的結果,也是兼顧已有系統自治性并實現新的數據共享這一現實需求的有效手段。
異構數據庫的異構特征包括兩個級別:系統一級的異構和語言一級的異構,主要體現在以下幾個方面。
(1) 計算機體系結構的異構:各個參與的數據庫可以分別運行在大型機、小型機、工作站、PC或嵌入式系統中。
(2) 操作系統的異構:各個數據庫系統的基礎操作系統可以是Unix, Windows NT,Linux等。
3 實現異構數據庫互操作的途徑
面對異構數據庫的互操作需求,主要從兩個方面同時進行努力:一是建立標準,即建立統一的數據庫規范,消除由于標準的不完善而造成的各數據庫系統間的差異;二是構建異構數據庫互操作平臺,實現對多個異構數據庫的透明訪問。
隨著對數據庫互操作問題的深入研究,基于不同角度,許多研究者提出了可行的異構數據庫互操作途徑,這些途徑在實現互操作的深度、廣度和高度上各不相同,都有各自所適應的特定 環境 和需求。從異構數據庫的核心思想出發,把實現互操作的途徑歸納為兩大類。
3.1 系統級異構互操作
對于DBMS系統一級異構的網絡環境下的數據庫互操作,主要有四種實現途徑。
(1)數據庫網關(Database Gateway)
數據庫網關是一種中繼器,它能提供應用級的異構數據庫集成的手段。網關的主要作用是轉換和通信。
數據庫網關可以建立比較穩定和透明的數據庫互操作,但是其缺點也較為明顯。諸如不關心如何屏蔽數據庫之間的異構性,不支持事務處理,資源冗余,用戶受限于數據庫廠商,不能任意選擇客戶機平臺及目標數據庫等問題。
(2)公共協議/數據轉換協議技術
公共協議是異構數據庫進行通信時采用的公認的數據協議,即公認的系統間傳遞SQL請求和結果的形式。最常見的協議是ANSI/ISO的關系數據存取(RDA)標準、SGA(SQL Access Group)規范和IBM的分布式關系數據庫結構(DRDA)。
(3)公共編程接口
公共編程接口包括客戶應用編程界面(CAPI)和服務器應
用編程界面(SAPI)。CAPI是一組過程庫,通常駐留在客戶端,通過裝載后端專用的驅動程序訪問不同的數據庫。SAPI提供一個應用編程界面,控制服務器與客戶應用請求和目標數據庫之間的交互。如Microsoft 的ODBC、Oracle的SQL*NET 以及IDAPI。
(4)中間件技術(Middle Ware)
中間件是處于應用程序及應用程序所在系統的內部工作方式之間的軟件,它的基本思想是在各后端數據源和前端應用程序之間建立一個抽象層。把應用程序與系統所依附軟件的較低層細節和復雜性隔離開來,使應用程序開發者只處理某種類型的單個API,而其他細節則可以由中間件處理。這樣就使系統對每個不同數據源的操作變成對單一的中間件的操作,而后再對中間件進行異構處理。使用中間件技術解決異構數據庫集成的問題,將會給系統集成帶來很多的好處。
3.2 數據結構與語義級異構互操作
目前,對于數據結構和語義一級異構的數據庫互操作的研究有緊密耦合和松散耦合兩種思想,具體體現于多數據庫系統、聯邦數據庫系統和分布式數據庫系統三種方法。
(1)多數據庫系統
所謂多數據庫系統就是一種能夠接受和容納多個異構數據庫的系統,允許各個異構數據庫的“自治性”。多數據庫系統是一個廣義的概念,是相對于如集中式數據庫系統或分布式數據庫系統那種邏輯上具有同一管理系統而言的,它以多元和分布為主要特征。
(2)分布式數據庫(Distributed Database)
分布式數據庫的基本思想是拋棄原有的數據庫系統,在 網絡環境下建立分布的數據庫系統,在體系結構、事務處理模型等方面重新設計從而解決信息共享與互操作問題。分布式數據庫系統分為同質分布式數據庫和異質分布式數據庫。像 Oracle、Sybase、Informix等都是同質分布式數據庫系統,這類系統的實現相對來說比較容易一些。異質分布式數據庫 管理 系統大多是在已有的一些數據庫 管理 系統的基礎上實現的。
(3)聯邦式數據庫(Federated Database)
聯邦式數據庫系統是網絡技術和分布式數據庫技術發展的必然結果,它是由一組能協調工作,又可以獨立自治的部件數據庫組成。它可以是原先不分布的,又可以是分布的,具有分布性、自治性、異構性三大特性。
聯邦式數據庫與分布式數據庫系統的區別在于:分布式數據庫系統雖然在物理上是分散的,但因為有統一的數據模型及全局數據模式,所以它在邏輯上卻是集中的,因此用戶感覺到的是一個完整的數據庫。顯然,這種系統可用于某個專用領域的系統,但不適于不同領域間的異構系統的集成。相反地,聯邦式數據庫系統是由在不同結點上松散耦合分布的異構成員數據庫構成,各聯邦成員間的一種松散結合。
參考文獻:
[1] 薩師煊,王珊.數據庫系統概論.北京:高等 教育 出版社,2000.2.
[2] 張水平, 萬映輝等.異構數據庫的集成與互操作. 計算 機應用研究, 2000(1).