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中使用,反之亦然

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值