登錄

異構(gòu)數(shù)據(jù)庫(kù)

百科 > 信息管理系統(tǒng) > 異構(gòu)數(shù)據(jù)庫(kù)

1.什么是異構(gòu)數(shù)據(jù)庫(kù)

  異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)相關(guān)的多個(gè)數(shù)據(jù)庫(kù)系統(tǒng)的集合,可以實(shí)現(xiàn)數(shù)據(jù)的共享和透明訪問,每個(gè)數(shù)據(jù)庫(kù)系統(tǒng)在加入異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)之前本身就已經(jīng)存在,擁有自己的DMBS。異構(gòu)數(shù)據(jù)庫(kù)的各個(gè)組成部分具有自身的自治性,實(shí)現(xiàn)數(shù)據(jù)共享的同時(shí),每個(gè)數(shù)據(jù)庫(kù)系統(tǒng)仍保有自己的應(yīng)用特性、完整性控制和安全性控制。

2.異構(gòu)數(shù)據(jù)庫(kù)的異構(gòu)性

  計(jì)算機(jī)體系結(jié)構(gòu)的異構(gòu):各個(gè)參與的數(shù)據(jù)庫(kù)可以分別運(yùn)行在大型機(jī)、小型機(jī)、工作站、PC嵌入式系統(tǒng)中。

  基礎(chǔ)操作系統(tǒng)的異構(gòu):各個(gè)數(shù)據(jù)庫(kù)系統(tǒng)的基礎(chǔ)操作系統(tǒng)可以是Unix、Windows NT、 Linux等。

  關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)的Oracle、 SQL Server等,也可以是不同數(shù)據(jù)模型數(shù)據(jù)庫(kù),如關(guān)系、模式、層次、網(wǎng)絡(luò)、面向?qū)ο螅瘮?shù)型數(shù)據(jù)庫(kù)共同組成一個(gè)異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)。

  異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)的目標(biāo)在于實(shí)現(xiàn)不同數(shù)據(jù)庫(kù)之間的數(shù)據(jù)信息資源、硬件設(shè)備資源和人力資源合并和共享。其中關(guān)鍵的一點(diǎn)就是以局部數(shù)據(jù)庫(kù)模式為基礎(chǔ),建立全局的數(shù)據(jù)模式或全局外視圖。這種全局模式對(duì)于建立高級(jí)的決策支持系統(tǒng)尤為重要。

  大型機(jī)構(gòu)在許多地點(diǎn)都有分支機(jī)構(gòu),每個(gè)子機(jī)構(gòu)的數(shù)據(jù)庫(kù)中都有著自己的信息數(shù)據(jù),而決策制訂人員一般只關(guān)心宏觀的、為全局模式所描述的信息。建立在數(shù)據(jù)倉(cāng)庫(kù)技術(shù)基礎(chǔ)上的異構(gòu)數(shù)據(jù)庫(kù)全局模式的描述是一種好的解決方案。數(shù)據(jù)倉(cāng)庫(kù)可以從異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)中的多個(gè)數(shù)據(jù)庫(kù)中收集信息,并建立統(tǒng)一的全局模式,同時(shí)收集的數(shù)據(jù)還支持對(duì)歷史數(shù)據(jù)的訪問,用戶通過數(shù)據(jù)倉(cāng)庫(kù)提供的統(tǒng)一的數(shù)據(jù)接口進(jìn)行決策支持的查詢。

3.異構(gòu)數(shù)據(jù)庫(kù)的結(jié)構(gòu)及共享

  對(duì)于異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng),實(shí)現(xiàn)數(shù)據(jù)共享應(yīng)當(dāng)達(dá)到兩點(diǎn):一是實(shí)現(xiàn)數(shù)據(jù)庫(kù)轉(zhuǎn)換;二是實(shí)現(xiàn)數(shù)據(jù)的透明訪問。

  數(shù)據(jù)庫(kù)系統(tǒng)之間的數(shù)據(jù)定義模型不同,如分別為關(guān)系模型層次模型,那么需要重新定義實(shí)體屬性和聯(lián)系,以防止屬性或聯(lián)系信息的丟失。

  總之,在進(jìn)行數(shù)據(jù)轉(zhuǎn)換后,一方面源數(shù)據(jù)庫(kù)模式中所有需要共享的信息都轉(zhuǎn)換到目的數(shù)據(jù)庫(kù)中,另一方面這種轉(zhuǎn)換又不能包含冗余的關(guān)聯(lián)信息。

  數(shù)據(jù)庫(kù)轉(zhuǎn)換工具可以實(shí)現(xiàn)不同數(shù)據(jù)庫(kù)系統(tǒng)之間的數(shù)據(jù)模型轉(zhuǎn)換,需要進(jìn)一步研究的問題是:如果數(shù)據(jù)庫(kù)轉(zhuǎn)換同時(shí)進(jìn)行數(shù)據(jù)定義模式轉(zhuǎn)換和數(shù)據(jù)轉(zhuǎn)換,就可能引起同一數(shù)據(jù)集合在異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)中存在多個(gè)副本,因此需要引入新的訪問控制機(jī)制。在保證各個(gè)參與數(shù)據(jù)庫(kù)自治,維護(hù)其完整性、安全性的基礎(chǔ)上,對(duì)于異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)提供全局的訪問控制、并發(fā)機(jī)制和安全控制。

  如果數(shù)據(jù)庫(kù)轉(zhuǎn)換只進(jìn)行數(shù)據(jù)定義轉(zhuǎn)換,不產(chǎn)生數(shù)據(jù)的副本,那么在新的目的數(shù)據(jù)庫(kù)定義模型的框架下訪問數(shù)據(jù),實(shí)現(xiàn)上仍是對(duì)源數(shù)據(jù)庫(kù)系統(tǒng)中數(shù)據(jù)的訪問。這時(shí)利用新的數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)處理語(yǔ)言實(shí)現(xiàn)的事務(wù),不能直接訪問源數(shù)據(jù)庫(kù),必須進(jìn)行事務(wù)級(jí)的翻譯才可以執(zhí)行。

  分布式數(shù)據(jù)庫(kù)系統(tǒng)看成普通的分布式數(shù)據(jù)庫(kù)系統(tǒng),用自己熟悉的數(shù)據(jù)處理語(yǔ)言去訪問數(shù)據(jù)庫(kù),如同訪問一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)一樣。但目前還沒有一種廣泛使用的數(shù)據(jù)定義模型和數(shù)據(jù)查詢語(yǔ)言,實(shí)現(xiàn)數(shù)據(jù)的透明訪問可以采用多對(duì)一轉(zhuǎn)換、雙向的中間件技術(shù)。開放式數(shù)據(jù)庫(kù)互連(Open DataBase Connectivity,簡(jiǎn)稱ODBC)是一種用來在相關(guān)或不相關(guān)數(shù)據(jù)庫(kù)管理系統(tǒng)中存取數(shù)據(jù)的標(biāo)準(zhǔn)應(yīng)用程序接口(API)。ODBC為應(yīng)用程序提供了一套高層調(diào)用接口規(guī)范和基于動(dòng)態(tài)鏈接庫(kù)的運(yùn)行支持環(huán)境。目前,常用的數(shù)據(jù)庫(kù)應(yīng)用開發(fā)的前端工具如Power Builder、 Delphi等都通過開放數(shù)據(jù)庫(kù)互聯(lián)(ODBC)接口來連接各種數(shù)據(jù)庫(kù)系統(tǒng)。而多數(shù)數(shù)據(jù)庫(kù)管理系統(tǒng)(如:Oracle、Sybase、SQL Server等)都提供了相應(yīng)的ODBC驅(qū)動(dòng)程序,使數(shù)據(jù)庫(kù)系統(tǒng)具有很好的開放性。ODBC接口的最大優(yōu)點(diǎn)是其互操作能力,理想情況下,每個(gè)驅(qū)動(dòng)程序和數(shù)據(jù)源應(yīng)支持完全相同的ODBC函數(shù)調(diào)用和SQL語(yǔ)句,使得ODBC應(yīng)用程序可以操作所有的數(shù)據(jù)庫(kù)系統(tǒng)。然而,實(shí)際上不同的數(shù)據(jù)庫(kù)對(duì)SQL語(yǔ)法的支持程度各不相同,因此,ODBC規(guī)范定義了驅(qū)動(dòng)程序的一致性級(jí)別,ODBC API的一致性確定了應(yīng)用程序所能調(diào)用的ODBC函數(shù)種類,ODBC 2.0規(guī)定了三個(gè)級(jí)別的函數(shù),目前 DM3 ODBC API支持 ODBC 2.0規(guī)范中第二級(jí)擴(kuò)展的所有函數(shù)。

  面向?qū)ο蟮葍?yōu)點(diǎn)而成為Internet應(yīng)用開發(fā)的首選語(yǔ)言。在Internet環(huán)境下,實(shí)現(xiàn)基于異種系統(tǒng)平臺(tái)的數(shù)據(jù)庫(kù)應(yīng)用,必須提供一個(gè)獨(dú)立于特定數(shù)據(jù)庫(kù)管理系統(tǒng)的統(tǒng)一編程界面和一個(gè)基于 SQL的通用的數(shù)據(jù)庫(kù)訪問方法。Java與數(shù)據(jù)庫(kù)接口規(guī)范JDBC(Java Database Connectivity)是支持基本SQL功能的一個(gè)通用的應(yīng)用程序編程接口,它在不同的數(shù)據(jù)庫(kù)功能模塊的層次上提供了一個(gè)統(tǒng)一的用戶界面,為對(duì)異構(gòu)數(shù)據(jù)庫(kù)進(jìn)行直接的Web訪問提供了新的解決方案。 JDBC已被越來越多的數(shù)據(jù)庫(kù)廠商、連接廠商、Internet服務(wù)廠商及應(yīng)用程序編制者所支持。

評(píng)論  |   0條評(píng)論