劉長(zhǎng)生 周龍
摘要:該文針對(duì)Oracle數(shù)據(jù)庫的XML存儲(chǔ)技術(shù)的研究,結(jié)合理論實(shí)踐,在簡(jiǎn)要闡述Oracle數(shù)據(jù)庫優(yōu)勢(shì)的基礎(chǔ)上,深入分析了XML存儲(chǔ)技術(shù)在Oracle數(shù)據(jù)庫中的具體應(yīng)用。得出在XML存儲(chǔ)技術(shù)在Oracle數(shù)據(jù)庫應(yīng)用時(shí)具有簡(jiǎn)明性、可拓展性、靈活性等點(diǎn),值得大力推廣應(yīng)用。
關(guān)鍵詞:Oracle數(shù)據(jù)庫;XML存儲(chǔ)技術(shù);應(yīng)用
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)22-0003-02
Oracle數(shù)據(jù)庫擴(kuò)展了傳統(tǒng)的關(guān)系數(shù)據(jù)庫,逐漸演變成為一種對(duì)象關(guān)系庫,融入了包含對(duì)面對(duì)象,在數(shù)據(jù)存儲(chǔ)和管理方面發(fā)揮著非常重要的作用。XML是一種可拓展的標(biāo)記語言,屬于SGML的一個(gè)自己,具有極強(qiáng)靈活性和互操作性,在很多方面都得到了廣泛應(yīng)用,將其應(yīng)用在Oracle數(shù)據(jù)庫中可使其應(yīng)有的性能和價(jià)值得到充分發(fā)揮。但我國對(duì)此方面的研究還有待進(jìn)一步深入,因此,本文基于理論實(shí)踐,對(duì)Oracle數(shù)據(jù)庫的XML存儲(chǔ)技術(shù)做了如下研究。
1 Oracle數(shù)據(jù)庫的優(yōu)勢(shì)
第一,對(duì)象重用。Oracle數(shù)據(jù)庫和面向?qū)ο蟪绦蛟O(shè)計(jì)有多的相似之處,大量應(yīng)用實(shí)例表明,通過應(yīng)用Oracle數(shù)據(jù)庫可以建立起獨(dú)特的數(shù)據(jù)庫對(duì)象,并實(shí)現(xiàn)對(duì)象的重用,可大幅度提升企業(yè)資源的利用率。
第二,操作直觀。相應(yīng)的應(yīng)用程序可以和Oracle數(shù)據(jù)庫可實(shí)現(xiàn)對(duì)象的直接交換,更加符合人們常用處理事務(wù)的思維。
第三,數(shù)據(jù)表示標(biāo)準(zhǔn)化。當(dāng)Oracle數(shù)據(jù)庫建立完成以后,在其他很多地方都可以得到良好的應(yīng)用,即使在不同空間和領(lǐng)域也可以用統(tǒng)一的格式來表達(dá)數(shù)據(jù)。比如:如果在Oracle數(shù)據(jù)庫中創(chuàng)建了一個(gè)“客戶”對(duì)象,則在數(shù)據(jù)表示上,Oracle數(shù)據(jù)庫中其他客戶都可以應(yīng)用與該用戶相同的內(nèi)部格式進(jìn)行表達(dá)。
第四,數(shù)據(jù)處理更加規(guī)范化。通常情況下,任何一個(gè)事物都可以看成是數(shù)據(jù)及其處理方法的集合,也就是說每個(gè)事物都可以用與之對(duì)應(yīng)的方法來表示,就可以把數(shù)據(jù)和數(shù)據(jù)處理的方法相互結(jié)合,然后再結(jié)合對(duì)象的重用,就可以促使數(shù)據(jù)的處理更加規(guī)范化。
2 基于XML和數(shù)據(jù)庫技術(shù)建立數(shù)據(jù)倉庫
Oracle數(shù)據(jù)庫由非常嚴(yán)格的理論基礎(chǔ),和豐富的語言共同組成,可有效滿足數(shù)據(jù)完整性、安全性、方位并發(fā)性的具體要求。再通過相應(yīng)的數(shù)據(jù)挖掘技術(shù)就可以實(shí)現(xiàn)Oracle數(shù)據(jù)庫相關(guān)信息的全過程應(yīng)用。而數(shù)據(jù)挖掘的基礎(chǔ)就是數(shù)據(jù)庫技術(shù)建立和管理數(shù)據(jù)庫的應(yīng)用。
數(shù)據(jù)倉庫的數(shù)據(jù)主要來自企業(yè)內(nèi)部的多種異構(gòu)數(shù)據(jù)源,通過XML存儲(chǔ)技術(shù)進(jìn)行集成處理后,就可以為Oracle數(shù)據(jù)庫提供統(tǒng)一格式的數(shù)據(jù)。有效避免了傳統(tǒng)數(shù)據(jù)庫獲取數(shù)據(jù)和轉(zhuǎn)化數(shù)據(jù)過程煩瑣的弊端,同時(shí)通過此項(xiàng)技術(shù)還能大范圍數(shù)據(jù)檢索的效率,再通過DBMS軟件進(jìn)行集中管理,就可以大幅度提升數(shù)據(jù)的安全性和完整性。大量實(shí)例表明,影響數(shù)據(jù)挖掘的關(guān)鍵是數(shù)據(jù)倉庫環(huán)境,上述兩種技術(shù)通過相輔相成的配合,就可以大幅度提升數(shù)據(jù)挖掘效率,數(shù)據(jù)庫數(shù)據(jù)采集流程圖如圖1所示:
從圖1中可以清楚看出,不同種類、形式的數(shù)據(jù)通過 XML數(shù)據(jù)轉(zhuǎn)化接口處理后,就可以生成具有統(tǒng)一格式的XML數(shù)據(jù)和文件。再經(jīng)過XML格式統(tǒng)一處理后就可以存入Oracle數(shù)據(jù)庫中,所以XML存儲(chǔ)技術(shù)和Oracle數(shù)據(jù)庫相互結(jié)合的基礎(chǔ),就是如何通過數(shù)據(jù)技術(shù)來存儲(chǔ)管理XML數(shù)據(jù)。
3 Oracle數(shù)據(jù)庫的XML存儲(chǔ)技術(shù)的應(yīng)用
要想實(shí)現(xiàn)XML在Oracle數(shù)據(jù)庫的正確存儲(chǔ),首先要就解決的問題是如何有效實(shí)現(xiàn)XML和Oracle數(shù)據(jù)庫模式的相互映射。Oracle數(shù)據(jù)庫中的數(shù)據(jù),通過XML存儲(chǔ)技術(shù)的轉(zhuǎn)化和處理可以為關(guān)系模型的建立提供真實(shí)有效的支持。此過程中最關(guān)鍵的技術(shù)在于數(shù)據(jù)和數(shù)據(jù)之間的映射關(guān)系。也就是如何快速有效處理DTD和Oracle數(shù)據(jù)庫中定義語言之間的轉(zhuǎn)化。在具體應(yīng)用過程中,數(shù)據(jù)和數(shù)據(jù)之前的映射大體上可以分為兩大類:
3.1模板驅(qū)動(dòng)映射
在進(jìn)行模板驅(qū)動(dòng)映射時(shí),并沒有預(yù)先定義文檔結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)之間的具體映射關(guān)系,主要應(yīng)用方法是命令語句內(nèi)嵌如模板的方法,此方法具有處理速度快的特點(diǎn),通過數(shù)據(jù)傳輸?shù)闹虚g件來處理模板。當(dāng)數(shù)據(jù)傳輸中間件處理到文檔或者數(shù)據(jù)時(shí),各個(gè)SELECT語句都會(huì)被各自執(zhí)行的結(jié)果進(jìn)行替換【1】。就可以提取出所需的信息。在圖書館、耕地保護(hù)的信息系統(tǒng)、企業(yè)信息文檔等方面均得到良好的應(yīng)用。大量應(yīng)用實(shí)例表明,模板驅(qū)動(dòng)映射具有很強(qiáng)的靈活性,但我國對(duì)此方面的研究還不夠深入,發(fā)展至今,模板驅(qū)動(dòng)映射只能支持從一個(gè)關(guān)系型數(shù)據(jù)庫轉(zhuǎn)化為XML文檔,還有很大的發(fā)展空間。
3.2模型驅(qū)動(dòng)映射
和模板驅(qū)動(dòng)映射相比,模型驅(qū)動(dòng)映射技術(shù)相對(duì)比較先進(jìn),主要是利用XML文檔結(jié)構(gòu)把相對(duì)應(yīng)的數(shù)據(jù)模型顯式或者隱式地映射到數(shù)據(jù)庫結(jié)構(gòu)中。其主要的缺點(diǎn)是缺乏靈活性,但卻具有簡(jiǎn)單耐用的優(yōu)勢(shì)。主要原因是模型驅(qū)動(dòng)映射是一種基于具體數(shù)據(jù)模型來進(jìn)行映射的技術(shù),可以為使用單位或這個(gè)人,提供更多可以轉(zhuǎn)換的工作。就我國目前Oracle數(shù)據(jù)庫中XML存儲(chǔ)技術(shù)的應(yīng)用現(xiàn)狀而言,XML數(shù)據(jù)視圖模型中比較出成熟的技術(shù)為表格模型【2】。
很多中間件軟件包都是通過表格模型在XML和關(guān)系型數(shù)據(jù)庫之間轉(zhuǎn)換來實(shí)現(xiàn)的。在具體應(yīng)用過程中,要把XML模型看作是一個(gè)比較獨(dú)立的表格,或者一系列表格。
4 實(shí)例存儲(chǔ)查詢
4.1實(shí)例存儲(chǔ)算法
通過使用DOM來解析XML數(shù)據(jù),就可以為XML實(shí)例文件在邏輯上建立起一個(gè)樹型模型,用樹的節(jié)點(diǎn)來表示XML實(shí)例文件中的對(duì)象。通過操作樹的對(duì)象就可以完成對(duì)XML實(shí)例文件的操作和應(yīng)用,在具體應(yīng)用過程中,需要提供一個(gè)概念框架來輔助完成。
在數(shù)據(jù)項(xiàng)插入時(shí),DOM樹上,并不是用樹葉節(jié)點(diǎn)來表示標(biāo)記,主要原因是葉子節(jié)點(diǎn)只能用來表示各個(gè)數(shù)據(jù)的實(shí)體,當(dāng)數(shù)據(jù)項(xiàng)插入完成后,就可以根據(jù)XML到對(duì)象關(guān)系模式的映射,把DOM樹上的葉子節(jié)點(diǎn)表示的數(shù)據(jù)項(xiàng)插入到與之相對(duì)應(yīng)的對(duì)象關(guān)系表中【3】。