[摘 要]XML是強(qiáng)大的元標(biāo)志語言,是既能讓機(jī)器理解,也能被人理解的“智能”語言,是發(fā)展自SGML的、具有旺盛生命力的、面向數(shù)據(jù)的語言。XML DB技術(shù)具有跨平臺性、可拓展性、自描述性和結(jié)構(gòu)化特征,便于異質(zhì)系統(tǒng)間的信息互通, XML DB技術(shù)能夠克服運(yùn)用關(guān)系數(shù)據(jù)庫開發(fā)管理信息系統(tǒng)的缺陷,為開發(fā)圖書管理信息系統(tǒng)提供了新的技術(shù)途徑。
[關(guān)鍵詞]XML DB 圖書 管理信息系統(tǒng) 設(shè)計
當(dāng)前,館藏圖書具有數(shù)量多、種類雜、管理難度大等特點(diǎn),隨著信息技術(shù)的不斷發(fā)展和館藏圖書規(guī)模的不斷擴(kuò)大,開發(fā)數(shù)字圖書館已經(jīng)成為提高圖書信息服務(wù)質(zhì)量的最為便捷和有效的途徑。實現(xiàn)館藏圖書的數(shù)字化,就是要面向未來數(shù)字圖書館的發(fā)展,實現(xiàn)包括多媒體在內(nèi)的各種信息數(shù)據(jù)、存儲管理、查詢和發(fā)布等的集成化,使這些信息得以在網(wǎng)絡(luò)上傳播,實現(xiàn)圖書信息資源的共享,從而發(fā)揮圖書信息的最大效用。傳統(tǒng)基于關(guān)系數(shù)據(jù)庫開發(fā)的圖書管理信息系統(tǒng),其核心思想是業(yè)務(wù)決定數(shù)據(jù)。這種方式存在內(nèi)在的結(jié)構(gòu)性矛盾,先是業(yè)務(wù)決定數(shù)據(jù),一旦數(shù)據(jù)字典確定下來,就會限制業(yè)務(wù),使業(yè)務(wù)與數(shù)據(jù)相互牽連,很難適應(yīng)新的業(yè)務(wù)發(fā)展。研究表明,這種業(yè)務(wù)決定數(shù)據(jù)的模式是不恰當(dāng)?shù)模瑪?shù)據(jù)是對象的自身特性,是不依賴業(yè)務(wù)系統(tǒng)的。恰當(dāng)?shù)倪^程應(yīng)該是先確定要處理對象的數(shù)據(jù)格式描述,然后在此基礎(chǔ)上開展各種相適應(yīng)的業(yè)務(wù)活動,XML DB技術(shù)能夠克服運(yùn)用關(guān)系數(shù)據(jù)庫開發(fā)管理信息系統(tǒng)的缺陷,為開發(fā)圖書管理信息系統(tǒng)提供了新的技術(shù)途徑。
一、XML DB技術(shù)的基本思想
XML是(Extensible Markup Language,可擴(kuò)展的標(biāo)記語言)的縮寫。XML是強(qiáng)大的元標(biāo)志語言,是既能讓機(jī)器理解,也能被人理解的“智能”語言,是發(fā)展自SGML的、具有旺盛生命力的、面向數(shù)據(jù)的語言。XML技術(shù)具有跨平臺性、可拓展性、自描述性和結(jié)構(gòu)化特征,便于異質(zhì)系統(tǒng)間的信息互通,XML由W3C(國際互聯(lián)網(wǎng)頁聯(lián)盟)統(tǒng)一制定,設(shè)計者可以為文檔建立自己的標(biāo)簽(tags),這種標(biāo)簽不是固定的,不需要記憶,易于理解。因此可以根據(jù)圖書管理信息系統(tǒng)的需要創(chuàng)建任何數(shù)量的圖書專業(yè)標(biāo)記。由于其中的每個項目都有自己的名字,而這個名字又與文檔所描述的圖書問題所涉及的某項具體內(nèi)容密切相關(guān)。用XML編寫的文檔增強(qiáng)了文檔的可讀性,容易交流和維護(hù)。標(biāo)識本身的含義與其所描述的信息相分離。它利用一個DTD規(guī)范來定義XML文件的語法、語句和數(shù)據(jù)結(jié)構(gòu)的標(biāo)準(zhǔn)。XML帶有一個XML語法分析器,它使用DTD規(guī)定一個文件是否規(guī)范,即包括正確定義的開始和結(jié)束標(biāo)記。目前,圖書行業(yè)已有專門的描述規(guī)范,有些已經(jīng)形成標(biāo)準(zhǔn)。但要建立一個真正的圖書信息管理系統(tǒng),還必須提供信息的產(chǎn)生,存儲、查詢、提取、修改等功能,也就是需要一個完全能夠支持XML技術(shù)的數(shù)據(jù)庫管理系統(tǒng),這樣有產(chǎn)生了XML DB系統(tǒng)。
XML技術(shù)是由一系列可拓展標(biāo)記語言相關(guān)的標(biāo)準(zhǔn)構(gòu)成,主要包括:XML、XSL和XLINK。XML規(guī)定了數(shù)據(jù)的語法和語義結(jié)構(gòu)。在XML之上的被稱為RDF(資源描述框架),并為XML提供元數(shù)據(jù)編碼定義,是XML文檔的元數(shù)據(jù);XSL(可拓展樣式語言)是基于XML的格式化和可視化語言,包括兩個部分:一是用于轉(zhuǎn)換XML文檔的方法,二是用于格式XML文檔的方法;XLINK(可擴(kuò)展鏈接語言),是基于XML的超文本鏈接標(biāo)準(zhǔn)。XML使用DTD和XML Schema來實現(xiàn)其模式定義。DTD通過一套標(biāo)簽的語法定義來描述XML文檔中能夠使用的標(biāo)簽、標(biāo)簽出現(xiàn)的順序以及屬性等;XML Schema采用XML語法結(jié)構(gòu),具有豐富的數(shù)據(jù)類型,能夠用來定義新的數(shù)據(jù)類型,也可以在定義中使用命名空間(NameSpace)。命名空間是一個應(yīng)用于XML文檔的具有結(jié)構(gòu)的元素名稱和屬性名稱的集合。
XML DB技術(shù)能夠滿足開發(fā)圖書管理信息系統(tǒng)的需要并可以提供如下支持:
1、提供了一個面向XML的數(shù)據(jù)類型來存儲和管理XML文檔。
2、能夠依據(jù)提供的標(biāo)準(zhǔn)W3C Schema數(shù)據(jù)模型來創(chuàng)建和管理數(shù)據(jù)。
3、利用XML/SQL模型來實現(xiàn)對關(guān)系型數(shù)據(jù)表數(shù)據(jù)和XML的統(tǒng)一操作,實現(xiàn)同以往系統(tǒng)的兼容。
4、支持標(biāo)準(zhǔn)的協(xié)議來實現(xiàn)對XML文檔的入庫和出庫,例如Http,F(xiàn)TP,WebDAV等,為數(shù)字圖書館提供開放式的接口。
目前XML DB形成兩大陣營:XML-Enabled DBMS(XED)和Native XML DBMD(NXD).XED是在原由數(shù)據(jù)庫基礎(chǔ)上擴(kuò)展了XML支持模塊,完成XML數(shù)據(jù)和數(shù)據(jù)庫之間的格式轉(zhuǎn)換和傳輸。NXD采用的是層次數(shù)據(jù)存儲模型,保持了XML文檔的樹型結(jié)構(gòu),不支持XML文檔與關(guān)系數(shù)據(jù)庫之間轉(zhuǎn)換。 總之,XML DB可以實現(xiàn)對XML文檔的存儲和管理,提供多種XML文檔內(nèi)容的操作方法和性能優(yōu)化方法,有利于圖書管理信息系統(tǒng)的開發(fā)和應(yīng)用。
二、基于XML DB技術(shù)的圖書管理信息系統(tǒng)開發(fā)方法
XML DB提供了XML文檔管理的底層服務(wù),根據(jù)數(shù)據(jù)決定業(yè)務(wù)的新模式,在XML DB模式下開發(fā)圖書管理系統(tǒng)與傳統(tǒng)的方法有很大的不同,下面以基于ORACLE9I XML DB開發(fā)圖書管理信息系統(tǒng)為例來加以說明。
1. 利用W3C Schema數(shù)據(jù)模型來描述圖書資源數(shù)據(jù)格式。
首先要明確圖書管理系統(tǒng)需要管理那些類型的圖書資源,目前主要包括普通圖書,電子文檔、多媒體等。然后確定圖書類型的形式和內(nèi)容格式,需要用Schema數(shù)據(jù)模型來進(jìn)行描述。目前可以用行業(yè)標(biāo)準(zhǔn)規(guī)范來描述。
2. 在XML DB中注冊Schema
把Schema數(shù)據(jù)模型在XML DB中注冊,則XML DB就可根據(jù)XML Schema中所描述的數(shù)據(jù)規(guī)范對存儲在庫中的XML文檔進(jìn)行管理和解析,使得存放在XML DB的數(shù)據(jù)具有自描述性。一般注冊需要以下幾個步驟:
(1)調(diào)用PL/SQL的一個過程:
dbms_xmlschema.register_schema()把一個XML Schema文件注冊到URL下。
(2)在注冊XML Schema時,XML DB將根據(jù)格式創(chuàng)建一套XMLType表來存儲這種類型的XML文檔數(shù)據(jù)。XMLType表有兩種方式:只創(chuàng)建一個XMLType表來存儲所有的XML文檔。把Schema中的全局元素分別映射為一個XMLType表,通過注冊的Schema數(shù)據(jù)模型來實現(xiàn)對XML文檔的分拆和組合。
(3)利用SQL/XML標(biāo)準(zhǔn)和 Xpath規(guī)范來實現(xiàn)對存儲在XML DB的XML文檔進(jìn)行訪問、修改、增加和刪除等操作。
SQL/XML是國際信息技術(shù)委員會指定的一項標(biāo)準(zhǔn),主要實現(xiàn)SQL和XMl的互操作性,另一方面可以把SqL的操作結(jié)果直接轉(zhuǎn)換為XML文檔。利用CeateXML(),extravalue(),extra(),updateXML來實現(xiàn)對XML的操作。
本圖書管理信息系統(tǒng)中相關(guān)信息的XML Schema描述如下:
圖書目錄表
〈?xml version=″1.0″encoding=″gbzzh″>
″urn: schemas-microsoft-com:xml-data″ Xmlns:dt=″urn: schemas-microsoft-com: datatypes″> < element Typename =“圖書” 〉 < Element Type> < Element Typename =“圖書”content=″eltonly″ 〉 < element typename =“圖書ID” 〉 < element type =“作者” 〉 < element type =“簡介” 〉 < element type =“出版社” 〉 < element type =“圖片” 〉 < element type =“定價” 〉 < element type =“出版日期” 〉 < element type =“種類” 〉 < Element Type > < Element Typename =“圖書ID”dt:type=″int″ 〉 < Element Typename =“書名”dt:type =″string″ 〉 < Element Typename =“作者”dt:type =″string″ 〉 < Element Typenamee=“簡介”dt:type =″string″ 〉 < Element Typename =“出版社”dt:type =″string″ 〉 < Element Typename =“圖片”dt:type =″string″ 〉 < Element Typename =“定價”dt:type =″float″ 〉 < Element Typename =“出版日期”dt:type =″datetime″ 〉 < Element Typename =“種類”dt:type =″string″ 〉 < Schema> 3.設(shè)計XML文檔的數(shù)據(jù)表現(xiàn)形式XSL 根據(jù)界面需求和XMLSchema描述的數(shù)據(jù)規(guī)范,設(shè)計某類XML文檔的表現(xiàn)形式格式XSL,然后作為一個模版保存在資料庫中。以后在查詢這一類型的XML文檔時,可以選擇按XML或者HTML格式輸出數(shù)據(jù),使得數(shù)據(jù)表現(xiàn)層的設(shè)計與數(shù)據(jù)層獨(dú)立開來,便于其他系統(tǒng)共享。XML文檔的圖形組件如圖1所示。 4.采用DOM或SAX來解析和處理XML文檔 XML DB的主要任務(wù)是處理和創(chuàng)建XML文檔,目前操作XML文檔主要方法有DOM和SAX兩種模型。通過這兩種方法可以做到:數(shù)據(jù)結(jié)構(gòu)的處理是基于XML Schema數(shù)據(jù)模型,而不必關(guān)心數(shù)據(jù)存儲結(jié)構(gòu),數(shù)據(jù)處理是基于XML文檔,數(shù)據(jù)傳輸具有跨平臺性和標(biāo)準(zhǔn)性。XML文檔的層次結(jié)構(gòu)圖如圖2、3所示。 三、結(jié)語 圖書管理信息系統(tǒng)開發(fā)實踐表明,基于XML DB的開發(fā)模式與傳統(tǒng)的開發(fā)模式相比具有如下優(yōu)勢: (1)數(shù)據(jù)存儲是基于XML Schema數(shù)據(jù)模型,不是由業(yè)務(wù)系統(tǒng)決定,這樣不同業(yè)務(wù)系統(tǒng)直接的數(shù)據(jù)共享成為可能,為以后圖書系統(tǒng)業(yè)務(wù)拓展奠定了基礎(chǔ)。 (2)采用XML作為數(shù)據(jù)的載體,使得不同平臺和業(yè)務(wù)系統(tǒng)數(shù)據(jù)變換成為可能,滿足了數(shù)字圖書館發(fā)展的統(tǒng)一融合的需要 (3)采用XML文檔存儲數(shù)據(jù),是系統(tǒng)數(shù)據(jù)格式的拓展,不會影響系統(tǒng)的存儲結(jié)構(gòu)。即使有新類型圖書種類和格式,只需要定義XML Schema,不用修改數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)。 參考文獻(xiàn): [1] 李建中.用XML擴(kuò)展三層模型.微計算機(jī)應(yīng)用.2002;23(3) [2]成玉哲等.基于XML數(shù)據(jù)模型的Web數(shù)據(jù)庫查詢.計算機(jī)應(yīng)用.2002;22(3) [3]李文敬.一種基于ASP生成動態(tài)XML的方法..微電腦與信息技術(shù).2003;(1) [4]景民昌等.基于XML的數(shù)字圖書館Web開發(fā).計算機(jī)與現(xiàn)代化.2004;(6) [5] 高靜濤.國內(nèi)“網(wǎng)絡(luò)信息資源管理”研究的調(diào)查分析.圖書情報工作.2005. 49(9) [6] 孫 輝.基于XML的詞典信息組織技術(shù).情報學(xué)報.2005.24(1)