王洪輝,張振友,路翠芳
(河北理工大學 計算機與自動控制學院,河北 唐山 063009)
隨著Web與異構數(shù)據(jù)庫的結合及Internet在全球的迅速普及,以異構數(shù)據(jù)庫互用技術為代表的信息互用技術已滲透到人類社會包括工業(yè)、商業(yè)、國防等的各個領域。異構數(shù)據(jù)庫系統(tǒng)是相關的多個數(shù)據(jù)庫系統(tǒng)的集合,可以實現(xiàn)數(shù)據(jù)的共享和透明訪問。異構數(shù)據(jù)庫的各個組成部分具有自身的自治性,實現(xiàn)數(shù)據(jù)共享的同時,每個數(shù)據(jù)庫系統(tǒng)仍保有自己的應用特性、完整性控制和安全性控制。
XML[1]是由W3C(World WideWeb Consortium)開發(fā)的可擴展標示語言,它將SGML的豐富功能與HTML的易用性結合到 Web的應用中,以一種開放的、自我描述的方式定義了數(shù)據(jù)結構。在描述數(shù)據(jù)內(nèi)容的同時能突出對結構的描述,從而體現(xiàn)出數(shù)據(jù)之間的關系,它的特點是簡單、開放、可擴充性。作為一種標示語言,XML標準是由W3C組織推出的一系列規(guī)范組成的,它主要包括XML、可擴展樣式表語言(Extensible Style Sheet Language)、文檔對象模型DOM(Document Object Mode)以及文檔類型定義DTD(Document Type Definition)等。
XML的主要技術特點: (1)XML是一種元標記語言,與HTML不同,XML不是一種具體的標記語言,它沒有固定的標記符號; (2)XML數(shù)據(jù)的自描述性。是指 XML中的語義標識,一方面限定了元素的層次結構,另一方面也說明了元素的含義,在 XML搜索結果中,由標識就可以知道內(nèi)容的含義,這使得搜索結果更有意義;
(3)XML的核心是數(shù)據(jù)。一般來說一個文檔里,都具有文檔數(shù)據(jù)、文檔結構、文檔樣式三個要素。而對于XML文檔來說,數(shù)據(jù)是其核心.在XMI中將樣式與內(nèi)容是分開處理的。
隨著Internet應用的不斷普及,Internet的異構分布式信息系統(tǒng)正在迅速發(fā)展,Java以其平臺無關性、移植性強,安全性高、穩(wěn)定性好、分布式、面向?qū)ο蟮葍?yōu)點而成為Internet應用開發(fā)的首選語言。在Internet環(huán)境下,實現(xiàn)基于異種系統(tǒng)平臺的數(shù)據(jù)庫應用,必須提供一個獨立于特定數(shù)據(jù)庫管理系統(tǒng)的統(tǒng)一編程界面和一個基于SQL的通用的數(shù)據(jù)庫訪問方法。Java與數(shù)據(jù)庫接口規(guī)范JDBC[2](Java Database Connectivity)是支持基本 SQL功能的一個通用的應用程序編程接口,它在不同的數(shù)據(jù)庫功能模塊的層次上提供了一個統(tǒng)一的用戶界面,為對異構數(shù)據(jù)庫進行直接的Web訪問提供了新的解決方案。
本系統(tǒng)所設計的異構數(shù)據(jù)庫信息處理系統(tǒng)主要包括兩大部分:一是系統(tǒng)的前臺部分。有系統(tǒng)的登錄、主菜單頁、數(shù)據(jù)表定義和刪除、數(shù)據(jù)的插入刪除和更新、數(shù)據(jù)的查詢及各種信息的顯示。二是系統(tǒng)的后臺部分。主要是采用 EJB[3]組件如各種數(shù)據(jù)庫的定義組件、全局數(shù)據(jù)字典組件、數(shù)據(jù)插入組件、查詢更新組件、數(shù)據(jù)刪除組件和數(shù)據(jù)查詢組件等處理前臺提供的各種數(shù)據(jù)庫操作語句和各種不同地點的數(shù)據(jù)庫的連接等操作。
本系統(tǒng)采用三層體系結構,包括瀏覽器/應用服務器/數(shù)據(jù)庫服務器。為實現(xiàn)系統(tǒng)的三層結構采用MVC[4]模式,該模式有視圖、控制器和模型三部分組成,MVC組件類型的關系和功能如圖1所示。視圖負責向用戶顯示數(shù)據(jù)信息等內(nèi)容,控制器控制程序的流轉(zhuǎn),而模型負責程序的商業(yè)邏輯和數(shù)據(jù)庫的連接等內(nèi)容。
圖1 MVC組件類型的關系和功能
本系統(tǒng)是一個中間功能層,它將系統(tǒng)的異構特征屏蔽起來,使全局用戶透明地操作異構數(shù)據(jù)庫。利用XML文檔作為中間件進行異構數(shù)據(jù)庫之間數(shù)據(jù)交換,可以有效地屏蔽數(shù)據(jù)庫的異構性,因此須實現(xiàn)數(shù)據(jù)庫信息和XML文檔之間的數(shù)據(jù)轉(zhuǎn)換轉(zhuǎn)換的數(shù)據(jù)先通過XML文檔轉(zhuǎn)換器轉(zhuǎn)換為XML檔從數(shù)據(jù)庫中導出,在經(jīng)查詢分析處理判斷轉(zhuǎn)化的XML文檔是否有冗余信息,或是否符合查詢條件。XML提供了一種連接關系數(shù)據(jù)庫和面向?qū)ο髷?shù)據(jù)庫以及其他數(shù)據(jù)庫系統(tǒng)之間的訪問技術。也就是說我們可以先對關系數(shù)據(jù)庫和面向?qū)ο髷?shù)據(jù)庫以及其他數(shù)據(jù)庫系統(tǒng)進行訪問然后生成XML文件再將文件存入數(shù)據(jù)庫或作其他處理。
本系統(tǒng)的中心思想是通過用戶輸入字符串,然后用以表單提取輸入的內(nèi)容并對其做字符串的處理。得到異構數(shù)據(jù)庫查詢相關信息,然后遍歷相關數(shù)據(jù)字典,取出數(shù)據(jù)并將這些數(shù)據(jù)按照查詢結構組織成以 XML結構表達的結果文件。
可以將實現(xiàn)的完整流程分成兩個階段:
階段 1—建立全局數(shù)據(jù)字典。它由數(shù)據(jù)庫管理員所設計的一系列表格組成,是整個多數(shù)據(jù)庫系統(tǒng)的全局資源。通過在數(shù)據(jù)之間建立映射機制來實現(xiàn)關系字典,建立局部數(shù)據(jù)庫與全局數(shù)據(jù)庫的對應關系,即使用全局數(shù)據(jù)庫中映射表的數(shù)據(jù)表示局部數(shù)據(jù)庫所提供的數(shù)據(jù)。
階段 2—接受用戶查詢并做出解答。
包括四個步驟:
(1)將用戶的標準查詢轉(zhuǎn)化成對局部數(shù)據(jù)庫的訪問序列。
(2)將查詢條件轉(zhuǎn)化成訪問參數(shù),并訪問局部數(shù)據(jù)庫。
(3)獲取局部數(shù)據(jù)庫返回的查詢結果并轉(zhuǎn)化成XML文檔。
(4)對各個數(shù)據(jù)庫提供的查詢結果 XML文檔作集成處理,即合并不完整的數(shù)據(jù)和過濾重復的數(shù)據(jù)。
本文主要論述了利用 XML技術來實現(xiàn)異構數(shù)據(jù)庫的信息處理系統(tǒng),通過數(shù)據(jù)庫模式之間的映射,較好的實現(xiàn)了異構數(shù)據(jù)庫之間的透明互訪。同時,數(shù)據(jù)庫種的數(shù)據(jù)在被轉(zhuǎn)換成XML文檔后,可以直接在WEB頁上發(fā)布,也給電子商務和電子政務的發(fā)展提供一個對多數(shù)據(jù)庫系統(tǒng)進行訪問的應用平臺。
[1] Box D,Skonnard A,Lam J.Essential.XML[M].卓棟濤譯.北京:中國電力出版社,2000.
[2] 蕭仁惠,陳錦輝.JDBC數(shù)據(jù)庫程序設計[M].北京:中國鐵道出版社2004.2.
[3] 童恒慶,聶會琴,李錫喆.CORBA/COM/EJB三種組件模型的分析與比較[J].計算機應用研究,2004,04.
[4] 曾水新.基于J2EE體系的MVC框架的研究和實現(xiàn)[D].北京:首都經(jīng)濟貿(mào)易大學碩士論文,2005,(05)