<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 消費電子 > 學(xué)習(xí)方法與實踐 > 教你輕松掌握“異構(gòu)數(shù)據(jù)庫”的基本概念

          教你輕松掌握“異構(gòu)數(shù)據(jù)庫”的基本概念

          ——
          作者: 時間:2007-11-21 來源:賽迪網(wǎng)技術(shù)社區(qū) 收藏
                  系統(tǒng)是相關(guān)的多個系統(tǒng)的集合,可以實現(xiàn)數(shù)據(jù)的共享和透明訪問,每個系統(tǒng)在加入數(shù)據(jù)庫系統(tǒng)之前本身就已經(jīng)存在,擁有自己的DMBS。數(shù)據(jù)庫的各個組成部分具有自身的自治性,實現(xiàn)數(shù)據(jù)共享的同時,每個數(shù)據(jù)庫系統(tǒng)仍保有自己的應(yīng)用特性、完整性控制和安全性控制。異構(gòu)數(shù)據(jù)庫系統(tǒng)的異構(gòu)性主要體現(xiàn)在以下幾個方面: 

                  計算機體系結(jié)構(gòu)的異構(gòu) 

                  各個參與的數(shù)據(jù)庫可以分別運行在大型機、小型機、工作站、PC或系統(tǒng)中。 

                  基礎(chǔ)的異構(gòu) 

                  各個數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)可以是Unix、Windows NT、 Linux等。 

                  DMBS本身的異構(gòu) 

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

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

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

                  數(shù)據(jù)庫轉(zhuǎn)換 

                  對于異構(gòu)數(shù)據(jù)庫系統(tǒng),實現(xiàn)數(shù)據(jù)共享應(yīng)當(dāng)達到兩點:一是實現(xiàn)數(shù)據(jù)庫轉(zhuǎn)換;二是實現(xiàn)數(shù)據(jù)的透明訪問。由華中科技大學(xué)開發(fā)的,擁有自主版權(quán)的商品化數(shù)據(jù)庫管理系統(tǒng)DM3系統(tǒng),通過所提供的數(shù)據(jù)庫轉(zhuǎn)換工具和API接口實現(xiàn)了這兩點。 

                  DM3提供了數(shù)據(jù)庫轉(zhuǎn)換工具,可以將一種數(shù)據(jù)庫系統(tǒng)中定義的模型轉(zhuǎn)化為另一種數(shù)據(jù)庫中的模型,然后根據(jù)需要再裝入數(shù)據(jù),這時用戶就可以利用自己熟悉的數(shù)據(jù)庫系統(tǒng)和熟悉的查詢語言,實現(xiàn)數(shù)據(jù)共享的目標(biāo)。數(shù)據(jù)庫轉(zhuǎn)換工具首先進行類型轉(zhuǎn)換,訪問源數(shù)據(jù)庫系統(tǒng),將源數(shù)據(jù)庫的數(shù)據(jù)定義模型轉(zhuǎn)換為目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)定義模型,然后進行數(shù)據(jù)重組,即將源數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)裝入到目的數(shù)據(jù)庫中。 

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

                  命名沖突:即源模型中的標(biāo)識符可能是目的模型中的保留字,這時就需要重新命名。 

                 格式?jīng)_突:同一種數(shù)據(jù)類型可能有不同的表示方法和語義差異,這時需要定義兩種模型之間的變換函數(shù)。 

                 結(jié)構(gòu)沖突:如果兩種數(shù)據(jù)庫系統(tǒng)之間的數(shù)據(jù)定義模型不同,如分別為關(guān)系模型和層次模型,那么需要重新定義實體屬性和聯(lián)系,以防止屬性或聯(lián)系信息的丟失。 

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

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

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

                 數(shù)據(jù)的透明訪問 

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

                  隨著Internet應(yīng)用的不斷普及,Internet的異構(gòu)分布式信息系統(tǒng)正在迅速發(fā)展,Java以其平臺無關(guān)性、移植性強,安全性高、穩(wěn)定性好、分布式、面向?qū)ο蟮葍?yōu)點而成為Internet應(yīng)用開發(fā)的首選語言。在Internet環(huán)境下,實現(xiàn)基于異種系統(tǒng)平臺的數(shù)據(jù)庫應(yīng)用,必須提供一個獨立于特定數(shù)據(jù)庫管理系統(tǒng)的統(tǒng)一編程界面和一個基于 SQL的通用的數(shù)據(jù)庫訪問方法。Java與數(shù)據(jù)庫接口規(guī)范JDBC(Java Database Connectivity)是支持基本SQL功能的一個通用的應(yīng)用程序編程接口,它在不同的數(shù)據(jù)庫功能模塊的層次上提供了一個統(tǒng)一的用戶界面,為對異構(gòu)數(shù)據(jù)庫進行直接的Web訪問提供了新的解決方案。 JDBC已被越來越多的數(shù)據(jù)庫廠商、連接廠商、Internet服務(wù)廠商及應(yīng)用程序編制者所支持。 

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();