詳細(xì)分析Oracle XML數(shù)據(jù)
在向大家詳細(xì)介紹Oracle XML數(shù)據(jù)之前,首先讓大家了解下Oracle 11g,然后全面介紹Oracle XML數(shù)據(jù)。在Oracle 11g可以使用CLOB及二進(jìn)制兩種方式保存XML信息,靈活性很高。Oracle 11g還支持針對XML的查詢機(jī)制,同樣有多種機(jī)制可以選用,例如XQuery。
XQuery是W3C推出的一組關(guān)于Oracle XML數(shù)據(jù)查詢和搜索的規(guī)范,相對來說,XQuery的語法比直接操作XML要簡單和直觀。說到在Oracle XML數(shù)據(jù)處理方面的增強(qiáng),值得一提的是,Oracle 11g開始支持JSR 170,這是一套基于Java的內(nèi)容存儲倉庫API。Oracle 11g提供了二元性的XML支持,意即在實(shí)際使用過程中,用戶既可以將XML嵌入到PL/SQL中使用,也可以將PL/SQL整合到XML中使用。
在Oracle 11g當(dāng)中,會增加一種新的數(shù)據(jù)類型,被稱為simple_integer。這種新的整數(shù)類型具有非空屬性,而在處理速度上要比PLS_INTEGER更快。另外,在11g中還會包含被稱為虛擬列(Virtual Columns)的數(shù)據(jù)表功能支持。通過該機(jī)制用戶可以根據(jù)實(shí)際的業(yè)務(wù)功能來定義數(shù)據(jù)表列,從而構(gòu)建更加復(fù)雜及更加靈活的數(shù)據(jù)表。Oracle 11g支持一種新的分區(qū)方案,令用戶可以基于時(shí)間進(jìn)行分區(qū),例如分離出某個(gè)時(shí)間間隔內(nèi)新增的數(shù)據(jù)內(nèi)容,這進(jìn)一步提高了Oracle數(shù)據(jù)庫分區(qū)機(jī)制的靈活性。
除此之外,Oracle 11g在數(shù)據(jù)表方面還有很多的改善,例如增強(qiáng)的只讀數(shù)據(jù)表、為一張表格綁定多個(gè)觸發(fā)器并為這些觸發(fā)器設(shè)置先后順序等。
關(guān)于Oracle 11g熱補(bǔ)丁功能的現(xiàn)場講解
當(dāng)XML面世之時(shí),也許沒有哪個(gè)數(shù)據(jù)庫廠商會對這種技術(shù)給以足夠的關(guān)注,然而在今天,XML已經(jīng)開始對數(shù)據(jù)存儲產(chǎn)生巨大的影響。由于XML在互聯(lián)網(wǎng)應(yīng)用領(lǐng)域被作為標(biāo)準(zhǔn)廣泛地應(yīng)用于數(shù)據(jù)交換和保存,下一代數(shù)據(jù)庫的形態(tài)發(fā)展過程將無可避免地留下XML的足跡。
XML在數(shù)據(jù)存儲方面有一個(gè)明顯的優(yōu)點(diǎn),那就是可以直接將邏輯關(guān)系編寫在XML文件當(dāng)中。將XML融入主流的數(shù)據(jù)庫引擎,首先要做到的一點(diǎn)是如何將現(xiàn)有的關(guān)系型數(shù)據(jù)輸出成XML格式。現(xiàn)在已經(jīng)有一些數(shù)據(jù)庫可以做到將SQL查詢結(jié)果直接轉(zhuǎn)換成XML形式,這樣應(yīng)用程序就可以直接利用這些XML文件結(jié)果作為內(nèi)容輸出源了。在此基礎(chǔ)上,將已有的文檔和數(shù)據(jù)通過XML的方式導(dǎo)入到數(shù)據(jù)庫也是問題的一個(gè)重要方面,而這個(gè)工作無疑要復(fù)雜得多。
其實(shí)將XML格式的文檔導(dǎo)入到數(shù)據(jù)庫中并不困難,因?yàn)閄ML文件具有內(nèi)在的邏輯和規(guī)范,困難之處在于將千差萬別的文檔轉(zhuǎn)換成XML格式的文件。當(dāng)然,數(shù)據(jù)的查詢工作也需要做出相應(yīng)的改變,在支持XML的數(shù)據(jù)庫當(dāng)中單純的依靠SQL查詢已經(jīng)難以保證效率。有兩條截然不同的道路可以實(shí)現(xiàn)傳統(tǒng)數(shù)據(jù)庫與XML的融合,一種方式是數(shù)據(jù)庫廠商可以編寫更多的轉(zhuǎn)換器和工具以實(shí)現(xiàn)傳統(tǒng)數(shù)據(jù)庫實(shí)體與Oracle XML數(shù)據(jù)的交互,即將Oracle XML數(shù)據(jù)作為各種數(shù)據(jù)表現(xiàn)形式中的一種來看待;另一種方式就是徹底的在數(shù)據(jù)庫引擎底層納入對Oracle XML數(shù)據(jù)的支持,甚至基于XML來設(shè)計(jì)和構(gòu)建數(shù)據(jù)庫產(chǎn)品。
不知道有多少數(shù)據(jù)庫廠商有勇氣采取后一種策略,當(dāng)然這也取決于XML在數(shù)據(jù)存儲和表現(xiàn)領(lǐng)域會成長到什么程度。不過可以肯定的一點(diǎn)是,支持XML將會給數(shù)據(jù)庫廠商帶來足夠的回報(bào),所以在各個(gè)廠商的新型數(shù)據(jù)庫軟件的功能當(dāng)中,我們都會看到很多XML方面的字樣
【編輯推薦】