摘要:本文深入研究了基于邊表、屬性和數(shù)據(jù)類型的診療數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),分析了各種方法的優(yōu)缺點(diǎn),并在此基礎(chǔ)上提出了新型的基于“結(jié)點(diǎn)屬性”的分離存儲(chǔ)方式。本文提出的存儲(chǔ)結(jié)構(gòu)打破了傳統(tǒng)的XML文檔樹的診療數(shù)據(jù)結(jié)構(gòu),極大提高了空間利用率和查詢效率。
關(guān)鍵詞:XML;診療數(shù)據(jù);存儲(chǔ);結(jié)點(diǎn)屬性
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9599 (2012) 22-0000-02
1 基于XML的診療數(shù)據(jù)結(jié)構(gòu)
XML是一種集標(biāo)識(shí)語言和元語言為一體的結(jié)構(gòu)化描述語言,能夠清晰定義描述對象結(jié)構(gòu)。當(dāng)前診療數(shù)據(jù)的描述、存儲(chǔ)和處理等問題都可以通過XML方便快捷的解決。利用XML解決這些問題的方式主要有兩種:一種是基于文本系統(tǒng)的管理方式,用文本文件描述診療的XML文件;另一種是基于數(shù)字庫字段的管理方式,用長文本存儲(chǔ)診療的XML文件。關(guān)系數(shù)據(jù)庫具有高效、快捷、方便的特點(diǎn),是基于文本的XML無法比擬的,但是部分XML文件信息存入關(guān)系數(shù)據(jù)庫效率較低。因此,如何提高XML文件存貯到關(guān)系數(shù)據(jù)庫中的效率是基于XML的診療數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的關(guān)鍵和核心。
2 存儲(chǔ)方式
診療數(shù)據(jù)的處理速度、效率直接受存儲(chǔ)方式的影響。基于邊表、屬性和數(shù)據(jù)類型的診療數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)是常用的存儲(chǔ)方式。
2.1 基于邊表的方式?;凇斑叡怼钡姆绞绞侵赣靡粋€(gè)簡單的關(guān)系表存儲(chǔ)XML文檔的圖,并設(shè)定一個(gè)ID表示圖中的每個(gè)節(jié)點(diǎn),表的字段屬性為Edge。邊表中對應(yīng)的字段名稱和屬性如表1所示,表2為診療數(shù)據(jù)基于表邊的存儲(chǔ)策略。
2.2 基于屬性的方式?;凇皩傩浴钡姆绞绞侵笇?shù)據(jù)按照屬性進(jìn)行分類,在同一個(gè)表內(nèi)存儲(chǔ)屬性相同的數(shù)據(jù),表的字段屬性為Attribute。對應(yīng)的字段名稱和屬性如表3所示:表4為表2對應(yīng)的基于屬性“接種史”的方式。
2.3 基于數(shù)據(jù)類型的方式?;凇皵?shù)據(jù)類型”的方式是指在同一個(gè)表中存儲(chǔ)所有的值和屬性。表5為表2所對應(yīng)的基于數(shù)據(jù)類型的方式。由表5可以看出,基于數(shù)據(jù)類型的方式空間利用率不高,存在大部分NULL值。
3 新的存儲(chǔ)方式——結(jié)點(diǎn)屬性分離方式
前文介紹了幾種基于關(guān)系數(shù)據(jù)庫的XML診斷數(shù)據(jù)存儲(chǔ)方式,在一定程度上解決了XML不適用于大量數(shù)據(jù)的問題,但是效率并不理想。基于“邊表”的方式空間利用率不高,占據(jù)的空間資源十分龐大;基于“屬性”的方式以屬性為依據(jù)進(jìn)行劃分,但是面對龐大的醫(yī)療數(shù)據(jù),屬性數(shù)據(jù)仍然很多,查詢速度和效率有待進(jìn)一步提高;基于“數(shù)據(jù)類型”的方式空間利用率很低,存在大量的空值,并不是一種高效的方式。
針對前文提出的三種存儲(chǔ)方式,本文提出了一種基于“結(jié)點(diǎn)屬性”的分離存儲(chǔ)方式。傳統(tǒng)的存儲(chǔ)方式只建立一個(gè)表,本方式創(chuàng)新性地創(chuàng)建了兩個(gè)表,一個(gè)用于存儲(chǔ)屬性值,另一個(gè)用于存儲(chǔ)診療數(shù)據(jù)。
存儲(chǔ)屬性值的表中存儲(chǔ)了診療數(shù)據(jù)的所有屬性和類型。對應(yīng)的字段名稱和屬性如表6所示:
存儲(chǔ)診療數(shù)據(jù)的表是一個(gè)樹形結(jié)構(gòu)表,存儲(chǔ)了診療數(shù)據(jù)的結(jié)構(gòu)和內(nèi)容。對應(yīng)的字段名稱和屬性如表7所示:
4 性能比較
筆者深入分析并比較了前文介紹的三種存儲(chǔ)方式和本文提出的“節(jié)點(diǎn)屬性”存儲(chǔ)方式,經(jīng)過實(shí)驗(yàn)得出如下結(jié)論:
4.1 查詢速度。本文提出的基于“節(jié)點(diǎn)屬性”的存儲(chǔ)方式查詢速度和效率明顯提高,因?yàn)樵摲绞娇梢酝ㄟ^屬性和屬性值兩個(gè)因素進(jìn)行查詢。
4.2 存儲(chǔ)空間。本文提出的基于“節(jié)點(diǎn)屬性”的存儲(chǔ)方式存儲(chǔ)空間極大減小,空間利用率極大提高,僅用很少的存儲(chǔ)空間便存儲(chǔ)了全部診療數(shù)據(jù)。
4.3 更新效率。本文提出的基于“節(jié)點(diǎn)屬性”的存儲(chǔ)方式更新效率極大提高,利用很少的結(jié)點(diǎn)便能實(shí)現(xiàn)數(shù)據(jù)更新。
綜上所述,本文提出的改進(jìn)方式是十分有效的。
5 結(jié)語
本文提出了一種基于“結(jié)點(diǎn)屬性”的分離存儲(chǔ)方式。本文提出的存儲(chǔ)結(jié)構(gòu)打破了傳統(tǒng)的XML文檔樹的診療數(shù)據(jù)結(jié)構(gòu),極大提高了空間利用率和查詢效率,是一種行之有效的改進(jìn)方式,有一定的理論研究意義和實(shí)踐應(yīng)用價(jià)值。
參考文獻(xiàn):
[1]姜英華,孫釗.一個(gè)基于XML的診療數(shù)據(jù)系統(tǒng)[J].應(yīng)用科技,2004,3l(10):26-27.
[2]李旭華.基于關(guān)系數(shù)據(jù)庫的XML數(shù)據(jù)存儲(chǔ)的研究[J].嘉應(yīng)學(xué)院學(xué)報(bào)(自然科學(xué),2004,22(3):6l-64.
[3]noIescu D,Kossmann D.Storing and quelyingXML da-tausinganRDMBS[J].IEEE DataEngineeringBul-letin,1999,22(3):27-34.
[作者簡介]李俊(1976-),女,碩士,講師,研究方向?yàn)獒t(yī)學(xué)信息學(xué);殷紅(1967-),女,學(xué)士,主治醫(yī)師,研究方向?yàn)橄W(xué);高建鵬(1972-),通訊作者,男,博士,副主任醫(yī)師,研究方向?yàn)橄W(xué)。