教你輕松掌握“異構數據庫”的基本概念
——
計算機體系結構的異構
各個參與的數據庫可以分別運行在大型機、小型機、工作站、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服務廠商及應用程序編制者所支持。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論