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