監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價咨詢管理系統(tǒng) | 工程設計管理系統(tǒng) | 甲方項目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關閉

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

申請免費試用、咨詢電話:400-8352-114

 

 

 

 

        隨著醫(yī)療信息化發(fā)展,醫(yī)院信息化已從傳統(tǒng)的以財務管理為核心的醫(yī)院管理信息系統(tǒng)向以病人為中心的臨床信息系統(tǒng)轉變。在這個轉變過程中,電子病歷軟件系統(tǒng)的實施將起到核心作用。從某種意義上說,電子病歷軟件系統(tǒng)成功與否在很大程度上決定了臨床信息系統(tǒng)的成敗。
       然而,一方面由于病人病情復雜性和多變性,決定電子病歷結構的靈活性;另一方面,由于醫(yī)療、教學和科研工作對電子病歷要求的側重點不同,要求病歷不但要具有良好結構和完整內(nèi)容,還必須具有對某些關鍵數(shù)據(jù)良好查詢性能。這種結構的靈活性和對不同類型數(shù)據(jù)要求的多樣性,對基于傳統(tǒng)關系型模型的數(shù)據(jù)庫管理系統(tǒng)軟件提出強有力挑戰(zhàn)。
1 Oracle XML DB和DB2 pure XML概述
        隨著計算機技術發(fā)展,XML技術以其結構和內(nèi)容的自我定義和自我描述等特性成為電子病歷實現(xiàn)的主要技術手段。但是隨著大量基于XML電子病歷的產(chǎn)生,如何對這些XML文件進行高效管理,如何提高對海量XML病歷文件的查詢性能,如何使XML病歷文件和已有關系數(shù)據(jù)進行良好融合,成為擺在各大數(shù)據(jù)庫軟件開發(fā)商面前一個嚴峻的挑戰(zhàn)。在XML數(shù)據(jù)文件管理以及如何將XML數(shù)據(jù)和已有的關系數(shù)據(jù)進行良好的融合,建立一個可同時管理關系數(shù)據(jù)和XML數(shù)據(jù)的混合性數(shù)據(jù)庫方面,Oracle公司和IBM公司都提供了各自解決方案,就是分別以Oracle XML DB和DB2 pure XML為代表的數(shù)據(jù)庫管理系統(tǒng)。它們都采用了W3C (World WideWeb Consortium)的XML數(shù)據(jù)模型,都提供了對XML Schema和XPath等技術標準的支持,都可以對關系型數(shù)據(jù)和XML數(shù)據(jù)提供良好支持。但是,它們在設計和實現(xiàn)方面還是存在一定差別。DB2 pureXML中XML數(shù)據(jù)是以一個列的形式存儲在關系表中,這種混合數(shù)據(jù)庫采用兩種不同的解析方式來處理SQL和XQuery,即一個編譯器可以同時處理兩種語言,各種應用可以通過DB2 9的編譯器和優(yōu)化器同時管理關系數(shù)據(jù)和XML數(shù)據(jù)。文中圖表顯示DB2pure XML框架,見圖1。Oracle XML DB是將XML數(shù)據(jù)轉化為SQL對象,利用關系數(shù)據(jù)的處理方法來處理XML數(shù)據(jù)。XML數(shù)據(jù)可以存儲在XMLTYPE表中,也可以存儲在含有XML—TYPE的數(shù)據(jù)列的表或者視圖中。對于有些基于Schema的XML數(shù)據(jù)可以通過Schema映射到相應的表中,對于有些XML數(shù)據(jù)可以以CLOB字段形式存儲。圖表顯示了OracleXML DB的框架,見圖2

        本文將從存儲、建立索引和查詢3個角度來對兩個XML數(shù)據(jù)庫在電子病歷的實現(xiàn)方面進行對比。

2 兩種數(shù)據(jù)庫存儲機制差別明顯
2.1 DB2 pure XML存儲機制相對簡單

DB2 pure XML就是完整地保存XML數(shù)據(jù),整個XML數(shù)據(jù)存儲在數(shù)據(jù)表中,XML數(shù)據(jù)對象是獨立于其父表單獨存儲的,對于XML數(shù)據(jù)類型的列的每一行都有一個XML數(shù)據(jù)標識符(XML DataSpecifier(XDS))存儲在表中。XDS中存儲著如何訪問硬盤的XML數(shù)據(jù)的信息?。圖3顯示了各種結構之間的關系。如執(zhí)行SQL語句:
       CREATE TABLE OPERATE (ID INTEGER NOTNULL,DOC XML);建立手術記錄表(Operate)其中DOC是XML數(shù)據(jù)列,用于記錄手術記錄。2.2 Oracle XML DB基于對數(shù)據(jù)要求的不同采用3種不同存儲機制
       (1)對于有些數(shù)據(jù),只需要保存良好的結構和數(shù)據(jù)的完整,這種數(shù)據(jù)就以CLOB的形式進行存儲。
         (2)對于有些數(shù)據(jù),對查詢的性能和更新的力度要求非常高,和傳統(tǒng)的關系型數(shù)據(jù)類似,這種數(shù)據(jù)需要先定義XML數(shù)據(jù)的模式XML Schema,在Schema中定義每個數(shù)據(jù)的數(shù)據(jù)類型,然后注冊這個Schema,根據(jù)注冊的Schema將XML數(shù)據(jù)拆分映射到對應的關系數(shù)據(jù)表中,采用完全結構化的存儲機制。
        (3)對于有些數(shù)據(jù),其中一部分滿足上述第1種情況,而另一部分滿足上述第2種情況,是一種半結構化的混合數(shù)據(jù),這種情況采用的機制和第2種方法類似,就是將非結構化部分的數(shù)據(jù)類型定義為CLOB 。
        例如:創(chuàng)建一個半結構化的手術記錄的XMLSchema。其中手術名稱、麻醉方式、診斷名稱、手術時間和手術醫(yī)生,這些都是比較重要的需要結構化存儲的數(shù)據(jù),采用和結構化數(shù)據(jù)相同的SQL映射方式。然而手術過程,只是記錄手術的過程,是不需要結構化的數(shù)據(jù),其SQL映射屬性xdb:SQLType為“CLOB”,表示這部分的XML數(shù)據(jù)以非結構化的形式存儲。
        綜上所述,在數(shù)據(jù)存儲方面,DB2 pure XML和Oracle XML DB各有特點,采用DB2 pure XML的存儲機制,XML文檔的內(nèi)容和結構可以更加靈活,醫(yī)生可以根據(jù)病人和病情不同設計不同的內(nèi)容和結構的病歷。而Oracle XML DB雖然是基于已經(jīng)注冊的Schema的,結構相對固定,但是對于不同的數(shù)據(jù)采用了不同的存儲方式,特別是對于那些對醫(yī)學科研有重要意義的數(shù)據(jù)采用結構化的存儲方式,理論上在查詢等方面具有更好的性能。
3 建立索引
        從海量存儲的XML病歷文件中快速檢索出滿足一定條件的病歷,為臨床科研和教學工作服務,這是電子病歷比較重要的特點之一。通過建立索引的方式,可以提高XML病歷的查詢性能,DB2 pureXML和Oracle XML DB都為XML建立索引,提高XML文件的查詢性能方面提供自己的解決方案。(1)DB2 pure XML支持3種XML相關索引:XML域索引,XML列路徑索引和在XML列上創(chuàng)建索引,前兩種索引是在XML文檔插入數(shù)據(jù)庫中時系統(tǒng)自動建立的,第3種索引是根據(jù)具體情況對查詢的關鍵數(shù)據(jù)進行索引。DB2采用了基于Xpath標準的XMLPATrERN關鍵字來創(chuàng)建索引?。如執(zhí)行下列SQL語句:CREATE INDEX OPERATIONINDEX ON OPER.ATE (DOC)GENERATE KEY USING XMLPATFERN‘/Operation/OperationName’ AS SQL VARCHAR(200);
        就是在手術表(OPERATE)上的手術記錄XML列(DOC)上的手術名稱上面建立索引。
(2)Oracle XML DB也可以建立索引,一般是對于結構化的數(shù)據(jù)建立索引,采用和關系數(shù)據(jù)庫類似的形式。如執(zhí)行如下SQL語句:CREATE INDEX OPERATIONINDEX ON MED— —OPERATION (XMLDATA. “0PERAT10N”);可以對手術表(MED— OPERA.ON)上的手術名稱建立索引。對于非結構化的數(shù)據(jù),還可以利用基于Xpath標準的一些函數(shù)(如:Extract)等建立函數(shù)索引。
4 查詢
查詢方面,兩者都對關系數(shù)據(jù)查詢和XML數(shù)據(jù)查詢進行很好結合,可以對兩種數(shù)據(jù)進行混合查詢。
        (1)在DB2 pure XML中,提供了Xquery的查詢,利用基于Xpath等標準的函數(shù)進行查詢,查詢中利用了DB2的“FLWOR” (for,let,where,or—der by和return)表達式。For表示以綁定的一個變量表示一個序列,Let是為變量進行賦值,Where表示利用各種條件對結果進行過濾,Order by表示排序,Return 表示返回的結果集合??梢岳肧QLQUERY函數(shù)在Xquery中插入SQL語句進行查詢。也可以利用XMLTable函數(shù),將Xquery查詢中的XML數(shù)據(jù)轉化為關系數(shù)據(jù),采用關系查詢語法和其他關系數(shù)據(jù)進行混合查詢? 。如執(zhí)行下列代碼:SELECT inpatient. id, name,home, operationFROM inpatient, OPERATE, XMLTABLE ( ‘f0r$oper in $a/Operation return $oper’passing OPER-ATE.doc as“a”COLUMNS operation varchar(200)path ‘OperationName’ as T where inpatient. id =1 and inpatient. id=operate. id將operate表中的XML文檔利用XMLTable函數(shù)轉化為關系數(shù)據(jù)和病人表(Inpatient)進行聯(lián)合查詢。
        (2)Oracle XML DB中針對不同類型的數(shù)據(jù),提供了不同的查詢方法,對于結構化的數(shù)據(jù),可以利用XMLDATA的屬性進行類似結構化的查詢和利用extract(),extractValue (), 和existsNode ()等基于Xpath的函數(shù),對于非結構化的數(shù)據(jù)只能利用基于Xpath的函數(shù)進行查詢。當然也可以將對XML查詢和對關系數(shù)據(jù)查詢混合起來進行使用。執(zhí)行下列代碼可以執(zhí)行類似結構化查詢,可以對病歷號和診斷進行查詢。Select t.XMLData. “PatientID”as病歷號,t.XMLData.“Diagnose”as診斷from operation t執(zhí)行下列代碼可以對非結構化數(shù)據(jù)進行查詢。Select extractValue (e. record,’/work/doc-tor’) Doctor, extractValue (e. record,’/work/date’)datetime from work e where e. patient— id =‘ZY1001’綜上所述,Oracle XML DB和DB2 pure XML都是可以將關系型數(shù)據(jù)和XML數(shù)據(jù)進行混合管理的數(shù)據(jù)庫軟件。都可以在管理傳統(tǒng)關系數(shù)據(jù)的同時,管理XML數(shù)據(jù)。它們之間最大的區(qū)別在于OracleXML DB可以針對不同應用的需要把XML數(shù)據(jù)轉化為傳統(tǒng)的關系數(shù)據(jù),利用傳統(tǒng)關系數(shù)據(jù)來完成各種數(shù)據(jù)操作,這樣的機制具有更強的針對性。而DB2pure XML是嚴格地按照層次結構來管理XML數(shù)據(jù)的,這樣的機制具有更強的普遍性和靈活性,兩者都可以作為電子病歷的數(shù)據(jù)庫軟件,但是究竟哪一個更勝一籌,還需要通過實踐來檢驗。
參考文獻
1 DB29pureXMLGuide[EB/OL).http://www.redbooks.ibm.com/.
2 Introducing Oracle XML DB [EB/OL].http://download— east. oracle. com/docs/cd/B10501一O1/appdev. 920/a96620/xdbO1 int.htm#1047 17 1.
3 Using Oracle XML DB [EB/OL].http://download—east. oracle. com/docs/cd/B10501— 0l/appdev. 920/a96620/xdb03usg.htm#1656.

發(fā)布:2007-04-09 11:20    編輯:泛普軟件 · xiaona    [打印此頁]    [關閉]
相關文章:

泛普門診收費管理系統(tǒng)其他應用

醫(yī)院行業(yè)管理系統(tǒng) 醫(yī)院信息管理系統(tǒng) 醫(yī)藥管理軟件 病案管理系統(tǒng) 藥店管理系統(tǒng) 醫(yī)院his系統(tǒng) 醫(yī)院預約軟件 住院收費管理系統(tǒng) 區(qū)域醫(yī)療衛(wèi)生信息化平臺 社區(qū)醫(yī)療管理系統(tǒng) 門診收費管理系統(tǒng) 醫(yī)療衛(wèi)生軟件 新農(nóng)合軟件 醫(yī)院管理系統(tǒng)免費版 免費醫(yī)院信息管理系統(tǒng) 醫(yī)藥管理軟件免費版 免費藥店管理系統(tǒng) 醫(yī)院管理系統(tǒng)下載 醫(yī)院信息管理系統(tǒng)下載 醫(yī)藥管理軟件下載 病案管理系統(tǒng)下載 藥店管理系統(tǒng)下載 醫(yī)院his系統(tǒng)下載 醫(yī)療一體化管理系統(tǒng)下載 新農(nóng)合軟件下載 藥品管理系統(tǒng)下載