当前位置:首页>管理咨询>O racle X M L D B和D B 2 p ure X M L在 查询:
     
O racle X M L D B和D B 2 p ure X M L在

随着医疗信息化发展,医院信息化已从传统的以财务管理为核心的信息系统向以病人为中心的临床信息系统转变。在这个转变过程中,电子病历软件系统的实施将起到核心作用。从某种意义上说,电子病历软件系统成功与否在很大程度上决定了临床信息系统的成败。然而,一方面由于病人病情复杂性和多变性,决定电子病历结构的灵活性;另一方面,由于医疗、教学和科研工作对电子病历要求的侧重点不同,要求病历不但要具有良好结构和完整内容,还必须具有对某些关键数据良好查询性能。这种结构的灵活性和对不同类型数据要求的多样性,对基于传统关系型模型的数据库管理系统软件提出强有力挑战。1OracleXMLDB和DB2pureXML概述随着计算机技术发展,XML技术以其结构和内容的自我定义和自我描述等特性成为电子病历实现的主要技术手段。但是随着大量基于XML电子病历的产生,如何对这些XML文件进行高效管理,如何提高对海量XML病历文件的查询性能,如何使XML病历文件和已有关系数据进行良好融合,成为摆在各大数据库软件开发商面前一个严峻的挑战。在XML数据文件管理以及如何将XML数据和已有的关系数据进行良好的融合,建立一个可同时管理关系数据和XML数据的混合性数据库方面,Oracle公司和IBM公司都提供了各自解决方案,就是分别以OracleXMLDB和DB2pureXML为代表的数据库管理系统。它们都采用了W3C(WorldWideWebConsortium)的XML数据模型,都提供了对XMLSchema和XPath等技术标准的支持,都可以对关系型数据和XML数据提供良好支持。但是,它们在设计和实现方面还是存在一定差别。DB2pureXML中XML数据是以一个列的形式存储在关系表中,这种混合数据库采用两种不同的解析方式来处理SQL和XQuery,即一个编译器可以同时处理两种语言,各种应用可以通过DB29的编译器和优化器同时管理关系数据和XML数据。文中图表显示DB2pureXML框架,见图1。OracleXMLDB是将XML数据转化为SQL对象,利用关系数据的处理方法来处理XML数据。XML数据可以存储在XMLTYPE表中,也可以存储在含有XMLTYPE的数据列的表或者视图中。对于有些基于Schema的XML数据可以通过Schema映射到相应的表中,对于有些XML数据可以以CLOB字段形式存储。图表显示了OracleXMLDB的框架,见图2

本文将从存储、建立索引和查询3个角度来对两个XML数据库在电子病历的实现方面进行对比。

2两种数据库存储机制差别明显2.1DB2pureXML存储机制相对简单

DB2pureXML就是完整地保存XML数据,整个XML数据存储在数据表中,XML数据对象是独立于其父表单独存储的,对于XML数据类型的列的每一行都有一个XML数据标识符(XMLDataSpecifier(XDS))存储在表中。XDS中存储着如何访问硬盘的XML数据的信息?。图3显示了各种结构之间的关系。如执行SQL语句:CREATETABLEOPERATE(IDINTEGERNOTNULL,DOCXML);建立手术记录表(Operate)其中DOC是XML数据列,用于记录手术记录。2.2OracleXMLDB基于对数据要求的不同采用3种不同存储机制(1)对于有些数据,只需要保存良好的结构和数据的完整,这种数据就以CLOB的形式进行存储。(2)对于有些数据,对查询的性能和更新的力度要求非常高,和传统的关系型数据类似,这种数据需要先定义XML数据的模式XMLSchema,在Schema中定义每个数据的数据类型,然后注册这个Schema,根据注册的Schema将XML数据拆分映射到对应的关系数据表中,采用完全结构化的存储机制。(3)对于有些数据,其中一部分满足上述第1种情况,而另一部分满足上述第2种情况,是一种半结构化的混合数据,这种情况采用的机制和第2种方法类似,就是将非结构化部分的数据类型定义为CLOB。例如:创建一个半结构化的手术记录的XMLSchema。其中手术名称、麻醉方式、诊断名称、手术时间和手术医生,这些都是比较重要的需要结构化存储的数据,采用和结构化数据相同的SQL映射方式。然而手术过程,只是记录手术的过程,是不需要结构化的数据,其SQL映射属性xdb:SQLType为CLOB,表示这部分的XML数据以非结构化的形式存储。综上所述,在数据存储方面,DB2pureXML和OracleXMLDB各有特点,采用DB2pureXML的存储机制,XML文档的内容和结构可以更加灵活,医生可以根据病人和病情不同设计不同的内容和结构的病历。而OracleXMLDB虽然是基于已经注册的Schema的,结构相对固定,但是对于不同的数据采用了不同的存储方式,特别是对于那些对医学科研有重要意义的数据采用结构化的存储方式,理论上在查询等方面具有更好的性能。3建立索引从海量存储的XML病历文件中快速检索出满足一定条件的病历,为临床科研和教学工作服务,这是电子病历比较重要的特点之一。通过建立索引的方式,可以提高XML病历的查询性能,DB2pureXML和OracleXMLDB都为XML建立索引,提高XML文件的查询性能方面提供自己的解决方案。(1)DB2pureXML支持3种XML相关索引:XML域索引,XML列路径索引和在XML列上创建索引,前两种索引是在XML文档插入数据库中时系统自动建立的,第3种索引是根据具体情况对查询的关键数据进行索引。DB2采用了基于Xpath标准的XMLPATrERN关键字来创建索引?。如执行下列SQL语句:CREATEINDEXOPERATIONINDEXONOPER.ATE(DOC)GENERATEKEYUSINGXMLPATFERN‘/Operation/OperationName’ASSQLVARCHAR(200);就是在手术表(OPERATE)上的手术记录XML列(DOC)上的手术名称上面建立索引。(2)OracleXMLDB也可以建立索引,一般是对于结构化的数据建立索引,采用和关系数据库类似的形式。如执行如下SQL语句:CREATEINDEXOPERATIONINDEXONMEDOPERATION(XMLDATA.0PERAT10N);可以对手术表(MEDOPERA.ON)上的手术名称建立索引。对于非结构化的数据,还可以利用基于Xpath标准的一些函数(如:Extract)等建立函数索引。4查询查询方面,两者都对关系数据查询和XML数据查询进行很好结合,可以对两种数据进行混合查询。(1)在DB2pureXML中,提供了Xquery的查询,利用基于Xpath等标准的函数进行查询,查询中利用了DB2的FLWOR(for,let,where,orderby和return)表达式。For表示以绑定的一个变量表示一个序列,Let是为变量进行赋值,Where表示利用各种条件对结果进行过滤,Orderby表示排序,Return表示返回的结果集合。可以利用SQLQUERY函数在Xquery中插入SQL语句进行查询。也可以利用XMLTable函数,将Xquery查询中的XML数据转化为关系数据,采用关系查询语法和其他关系数据进行混合查询?。如执行下列代码:SELECTinpatient.id,name,home,operationFROMinpatient,OPERATE,XMLTABLE(‘f0r$operin$a/Operationreturn$oper’passingOPER-ATE.docasaCOLUMNSoperationvarchar(200)path‘OperationName’asTwhereinpatient.id=1andinpatient.id=operate.id将operate表中的XML文档利用XMLTable函数转化为关系数据和病人表(Inpatient)进行联合查询。(2)OracleXMLDB中针对不同类型的数据,提供了不同的查询方法,对于结构化的数据,可以利用XMLDATA的属性进行类似结构化的查询和利用extract(),extractValue(),和existsNode()等基于Xpath的函数,对于非结构化的数据只能利用基于Xpath的函数进行查询。当然也可以将对XML查询和对关系数据查询混合起来进行使用。执行下列代码可以执行类似结构化查询,可以对病历号和诊断进行查询。Selectt.XMLData.PatientIDas病历号,t.XMLData.Diagnoseas诊断fromoperationt执行下列代码可以对非结构化数据进行查询。SelectextractValue(e.record,’/work/doc-tor’)Doctor,extractValue(e.record,’/work/date’)datetimefromworkewheree.patientid=‘ZY1001’综上所述,OracleXMLDB和DB2pureXML都是可以将关系型数据和XML数据进行混合管理的数据库软件。都可以在管理传统关系数据的同时,管理XML数据。它们之间最大的区别在于OracleXMLDB可以针对不同应用的需要把XML数据转化为传统的关系数据,利用传统关系数据来完成各种数据操作,这样的机制具有更强的针对性。而DB2pureXML是严格地按照层次结构来管理XML数据的,这样的机制具有更强的普遍性和灵活性,两者都可以作为电子病历的数据库软件,但是究竟哪一个更胜一筹,还需要通过实践来检验。参考文献1DB29pureXMLGuide[EB/OL).http://www.redbooks.ibm.com/.2IntroducingOracleXMLDB[EB/OL].http://downloadeast.oracle.com/docs/cd/B10501一O1/appdev.920/a96620/xdbO1int.htm#1047171.3UsingOracleXMLDB[EB/OL].http://downloadeast.oracle.com/docs/cd/B105010l/appdev.920/a96620/xdb03usg.htm#1656.


以临床路径管理为核心的电子病历应用改进策略中文电子病历的信息抽取研究
我院监控电子病历质量的实效与经验医院管理在新医改下的信息化建设
1065份护理电子病历书写缺陷分析与对策电子病历-住院医生工作站的前期培训
山东探索PPP模式 潍坊等城市见成效电子病历互操作性的实现技术
护理电子病历记录中的缺陷分析及管理对策电子病历与病人健康档案数据交换的研究
电子病历质控方法的改进与作用电子病历的管理
电子病历对护士工作影响的研究进展计算机网络时代电子病历数据安全性探讨
电子病历应用2015:创新创客创业的春天,都来了!
信息发布:广州名易软件有限公司 http://www.myidp.net
  • 名易软件销售服务
  • 名易软件销售服务
  • 名易软件技术服务

  • O racle X M L D B和D B 2 p ure X M L在,O racle X M L D B和D B 2 p ure X M L在