1. 程式人生 > >什麼是異構系統?

什麼是異構系統?

異構資料庫系統是相關的多個數據庫系統的集合,可以實現資料的共享和透明訪問,每個資料庫系統在加入異構資料庫系統之前本身就已經存在,擁有自己的DMBS。異構資料庫的各個組成部分具有自身的自治性,實現資料共享的同時,每個資料庫系統仍保有自己的應用特性、完整性控制和安全性控制。異構資料庫系統的異構性主要體現在以下幾個方面:

計算機體系結構的異構:

各個參與的資料庫可以分別執行在大型機、小型機、工作站、PC或嵌入式系統中。

基礎作業系統的異構:

各個資料庫系統的基礎作業系統可以是Unix、Windows NT、 Linux等。

DMBS本身的異構:

可以是同為關係型資料庫系統的Oracle、 SQL Server等,也可以是不同資料模型的資料庫,如關係、模式、層次、網路、面向物件,函式型資料庫共同組成一個異構資料庫系統。

----異構資料庫系統的目標在於實現不同資料庫之間的資料資訊資源、硬體裝置資源和人力資源的合併和共享。其中關鍵的一點就是以區域性資料庫模式為基礎,建立全域性的資料模式或全域性外檢視。這種全域性模式對於建立高階的決策支援系統尤為重要。

----大型機構在許多地點都有分支機構,每個子機構的資料庫中都有著自己的資訊資料,而決策制訂人員一般只關心巨集觀的、為全域性模式所描述的資訊。建立在資料倉庫技術基礎上的異構資料庫全域性模式的描述是一種好的解決方案。資料倉庫可以從異構資料庫系統中的多個數據庫中收集資訊,並建立統一的全域性模式,同時收集的資料還支援對歷史資料的訪問,使用者通過資料倉庫提供的統一的資料介面進行決策支援的查詢。

資料庫轉換

----對於異構資料庫系統,實現資料共享應當達到兩點:一是實現資料庫轉換;二是實現資料的透明訪問。由華中科技大學開發的,擁有自主版權的商品化資料庫管理系統DM3系統,通過所提供的資料庫轉換工具和API介面實現了這兩點。

----DM3提供了資料庫轉換工具,可以將一種資料庫系統中定義的模型轉化為另一種資料庫中的模型,然後根據需要再裝入資料,這時使用者就可以利用自己熟悉的資料庫系統和熟悉的查詢語言,實現資料共享的目標。資料庫轉換工具首先進行型別轉換,訪問源資料庫系統,將源資料庫的資料定義模型轉換為目標資料庫的資料定義模型,然後進行資料重組,即將源資料庫系統中的資料裝入到目的資料庫中。

----在轉換的過程中,有時要想實現嚴格的等價轉換是比較困難的。首先要確定兩種模型中所存在的各種語法和語義上的衝突,這些衝突可能包括:

命名衝突:即源模型中的識別符號可能是目的模型中的保留字,這時就需要重新命名。
格式衝突:同一種資料型別可能有不同的表示方法和語義差異,這時需要定義兩種模型之間的變換函式。
結構衝突:如果兩種資料庫系統之間的資料定義模型不同,如分別為關係模型和層次模型,那麼需要重新定義實體屬性和聯絡,以防止屬性或聯絡資訊的丟失。

----總之,在進行資料轉換後,一方面源資料庫模式中所有需要共享的資訊都轉換到目的資料庫中,另一方面這種轉換又不能包含冗餘的關聯資訊。

----資料庫轉換工具可以實現不同資料庫系統之間的資料模型轉換,需要進一步研究的問題是:如果資料庫轉換同時進行資料定義模式轉換和資料轉換,就可能引起同一資料集合在異構資料庫系統中存在多個副本,因此需要引入新的訪問控制機制。在保證各個參與資料庫自治,維護其完整性、安全性的基礎上,對於異構資料庫系統提供全域性的訪問控制、併發機制和安全控制。

----如果資料庫轉換隻進行資料定義轉換,不產生資料的副本,那麼在新的目的資料庫定義模型的框架下訪問資料,實現上仍是對源資料庫系統中資料的訪問。這時利用新的資料庫系統中的資料處理語言實現的事務,不能直接訪問源資料庫,必須進行事務級的翻譯才可以執行。

資料的透明訪問

----在異構資料系統中實現了資料的透明訪問,使用者就可以將異構分散式資料庫系統看成普通的分散式資料庫系統,用自己熟悉的資料處理語言去訪問資料庫,如同訪問一個數據庫系統一樣。但目前還沒有一種廣泛使用的資料定義模型和資料查詢語言,實現資料的透明訪問可以採用多對一轉換、雙向的中介軟體等技術。開放式資料庫互連(Open DataBase Connectivity,簡稱ODBC)是一種用來在相關或不相關的資料庫管理系統中存取資料的標準應用程式介面(API)。ODBC為應用程式提供了一套高層呼叫介面規範和基於動態連結庫的執行支援環境。目前,常用的資料庫應用開發的前端工具如Power Builder、 Delphi等都通過開放資料庫互聯(ODBC)介面來連線各種資料庫系統。而多數資料庫管理系統(如:Oracle、Sybase、SQL Server等)都提供了相應的ODBC驅動程式,使資料庫系統具有很好的開放性。ODBC介面的最大優點是其互操作能力,理想情況下,每個驅動程式和資料來源應支援完全相同的ODBC函式呼叫和SQL語句,使得ODBC應用程式可以操作所有的資料庫系統。然而,實際上不同的資料庫對SQL語法的支援程度各不相同,因此,ODBC規範定義了驅動程式的一致性級別,ODBC API的一致性確定了應用程式所能呼叫的ODBC函式種類,ODBC 2.0規定了三個級別的函式,目前 DM3 ODBC API支援 ODBC 2.0規範中第二級擴充套件的所有函式。

----隨著Internet應用的不斷普及,Internet的異構分散式資訊系統正在迅速發展,Java以其平臺無關性、移植性強,安全性高、穩定性好、分散式、面向物件等優點而成為Internet應用開發的首選語言。在Internet環境下,實現基於異種系統平臺的資料庫應用,必須提供一個獨立於特定資料庫管理系統的統一程式設計介面和一個基於 SQL的通用的資料庫訪問方法。Java與資料庫介面規範JDBC(Java Database Connectivity)是支援基本SQL功能的一個通用的應用程式程式設計介面,它在不同的資料庫功能模組的層次上提供了一個統一的使用者介面,為對異構資料庫進行直接的Web訪問提供了新的解決方案。 JDBC已被越來越多的資料庫廠商、連線廠商、Internet服務廠商及應用程式編制者所支援。