xml与oracle对比,Oracle XML DB和DB2 pure XML在XML文档存储查询性能方面的比较分析
0引言隨著互聯網和信息化技術的快速發展,醫院在逐步完成醫院信息數字化建設過程中,它的核心技術之一就是電子病歷的數字化管理和應用。電子病歷包括病人就診或治療的全部臨床信息,這些信息一般由數字、文字、圖形和圖像等數字信息組成。本文僅對純文本數據電子病例的存儲和查詢的性能進行分析和比較。電子病歷的存儲、交換、共享和使用要求電子病歷必須以一種統一的格式規范或語法進行定義[1],能夠支持高效的查詢和更新存儲。定義基于語義標記的XML文檔格式[2]能夠為解決各種類型的數據共享、交換和使用問題提供一種行之有效的技術解決方法。OracleXMLDB[3]和IBMDB2pureXML[4]數據庫管理系統都對XML文檔提供了強大的支持,是將關系型數據和XML數據進行混合管理的數據庫軟件[5],但這兩種XML文檔技術解決方法,在電子病歷的應用性能方面是否存在差異成為系統構架師和設計師高度關注的技術要素,本文就該技術要素展開分析和比較。1在存儲和查詢實現技術上的比較分析OracleXMLDB和IBMDB2pureXML都采用了W3C的XML數據模型,但在物理存儲層的設計和實現差異很大。查詢雖都是基于XQuery語言,但因采用了不同的存儲技術而各自做了不同的封裝和擴展。1.1在物理存儲層實現方式比較OracleXMLDB11g中針對不同的數據可選用三種不同的存儲機制,即以大字符對象(CLOB)方式的非結構化存儲、二進制存儲和完全結構化的存儲機制。針對結構化存儲,OracleXMLDB用XMLSchema所含信息派生一個對象模型、該模型可使符合XMLSchema的XML內容得到分解并以對象集的方式存入數據庫。注冊XMLSchema之后,OracleXMLDB為XMLSchema定義的每個全局元素創建一個默認的XMLType表,即對象表[6]。XMLSchema中的類型如String、Decimal和Date分別被映射成SQL中的Varchar2、Num-ber和Date類型。當XML實例文檔被裝載進OracleXMLDB知識庫時,XML文檔內容將被“分解”并保存在對象關系表中。表1是在OracleXMLDB中采用結構存儲方式存儲XML文檔的示例,該XML文檔片段如下:1001OracleCorpChina123456…表1XML文檔實例在OracleXMLDB中存儲為Person關系表ROW_IDPersonIDNameAddressPhone...11001OracleCorpChina123456…DB2V9引入了DB2pureXML支持,是一種高效的大字段存儲模式,其性能優于傳統CLOB的文本字段處理。因為XML標簽元素存有內在的層次結構,所以在DB2pureXML數據庫中的物理存儲層主要存儲單元是節點且以樹型形式展現,同時可在保存XML文檔層次結構的前提下,在節點的粒度上存儲XML文檔的片段,而不破壞其層次結構。圖1為XML文檔在DB2pureXML中存儲方式的示例。圖1XML文檔在DB2pureXML中以節點方式存儲示例由于OracleXMLDB把XML文檔轉換為關系表保存,基此方便XML文檔的有效性驗證,但插入時開銷偏大。DB2pureXML可高效維護XML文檔的層次結構和加速對XML文檔的檢索性能。通過節點與父、子節點的關聯有利于遍歷。如果待查節點在同一頁上,那么遍歷速度將比指針遍歷還快。1.2在查詢方式上的比較DB2提供兩種語言規范查詢XML數據,即SQL/XML和XQuery。既可以單獨使用XQuery和SQL,也可將XQuery嵌入SQL中使用,反之亦然
總結
以上是生活随笔為你收集整理的xml与oracle对比,Oracle XML DB和DB2 pure XML在XML文档存储查询性能方面的比较分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最新!2020年鼠年纪念币预约入口、预约
- 下一篇: oracle对某两列求和再求和_函数实战