<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 醫療電子 > 設計應用 > 基于MML電子病歷存儲模型研究

基于MML電子病歷存儲模型研究

作者: 時(shí)間:2012-08-21 來(lái)源:網(wǎng)絡(luò ) 收藏

設計實(shí)現對象一關(guān)系數據庫時(shí),每個(gè)對象都要考慮采用何種類(lèi)型,是否使用用戶(hù)自定義類(lèi)型(UDT)。對每個(gè)對象可能有的查詢(xún)/操作認真分析,據此設計用戶(hù)自定義函數(UDF)。例如,通過(guò)名字Bob Smith查詢(xún)病人電話(huà)列表,下面列出對象一關(guān)系的SQL語(yǔ)句:SELECT o.phoneFROM oo.person o WHERE o.hasName('Bob','Smith');這里必須為oo.person對象設計該hasName自定義方法,不然將無(wú)法進(jìn)行此查詢(xún)。在對象一關(guān)系模型中需要設計大量自定義方法。在傳統關(guān)系型模型,該查詢(xún)可以通過(guò)下列語(yǔ)句實(shí)現:SELECT o.phone FROM person p,person-name n person-phom o WHERE n.name='Bob Smith'AND n.id=p.id AND o.id=p.id;需要連接3個(gè)表。

對象一關(guān)系模型中表的查詢(xún)/操作比傳統的關(guān)系型模型簡(jiǎn)單直觀(guān),但是需要編程實(shí)現大量的自定義函數。此外由于N∶M關(guān)系是通過(guò)在對象中添加嵌套表或數組實(shí)現的,設計人員必須認真考慮應該將其添加到該關(guān)系相關(guān)的哪個(gè)對象上。

4.2 時(shí)延分析

對兩個(gè)均包含100份的對象一關(guān)系數據庫和傳統關(guān)系型數據庫進(jìn)行比較。選取下面4組典型的數據庫操作分別在2個(gè)數據庫上運行,以比較性能:

(1)使用簡(jiǎn)單搜索規則對單個(gè)病人進(jìn)行數據檢索,例如通過(guò)名字檢索病人數據;

(2)多病人數據檢索查詢(xún);

(3)檢索 emr tab表數據(不是病人數據);

(4)增、刪和更新數據。

使用Oracle9i實(shí)現2個(gè)數據庫,共進(jìn)行13組操作,每組運行5次取平均時(shí)間。實(shí)驗結果表3所示,對象一關(guān)系模型包含2列,2個(gè)版本的差別在于版本二只在必須的情況下使用用戶(hù)自定義函數(UDF)。Q1到Q3屬于分組一,在兩種數據庫中都沒(méi)有使用UDF。Q4到Q6屬于分組二,分別對oo_person_tab,oo_organization和oo_表進(jìn)行多病人數據檢索查詢(xún)。以Q4為例,該查詢(xún)需要掃描整個(gè)oo_person_tab表以便執行hasName()。Q4的時(shí)間復雜度為O(n)。使用類(lèi)似hasName(),hasID()等UDF的查詢(xún)依賴(lài)于表的行數。關(guān)系型數據庫采用優(yōu)化技術(shù),時(shí)間復雜度為O(log(n)),對對象一關(guān)系數據庫的優(yōu)化由于UDF非常復雜,難于優(yōu)化。Q7,Q8和Q9屬于分組三,在對象一關(guān)系數據庫的2個(gè)實(shí)現中也同樣發(fā)現,版本二由于只在必須時(shí)使用UDF,執行時(shí)延得以大幅縮短。分組四同樣是使用UDF的緣故,執行效率傳統關(guān)系型數據明顯高于對象一關(guān)系型。

5 結 語(yǔ)

設計層次上,對象一關(guān)系模型因為表的數量比較少而顯得比較簡(jiǎn)潔,但設計的過(guò)程不如關(guān)系型模型直觀(guān),設計人員需要認真考慮對象間的關(guān)系應當如何表示。實(shí)現層次上,對象一關(guān)系模型需要提供支持多值屬性和關(guān)系的搜索方法的具體實(shí)現,可以使用嵌套表或數組表示;關(guān)系型模型則采用獨立表,不需要設計人員編寫(xiě)代碼。

查詢(xún)和執行方面,在對象一關(guān)系模型上的查詢(xún)表達式簡(jiǎn)潔直觀(guān),但需要事先編程實(shí)現對象方法。傳統關(guān)系型模型的數據庫操作效率要高過(guò)對象一關(guān)系模型。綜上,因為基于MML的系統的原型非常復雜,使用對象一關(guān)系型模型可以簡(jiǎn)化數據庫的設計和實(shí)現,縮短開(kāi)發(fā)周期;同時(shí)可以結合傳統關(guān)系型的優(yōu)點(diǎn),只在必須用用戶(hù)自定義方法的時(shí)候才使用UDF,一方面可以提高執行效率;另一方面可以盡量避免因為沒(méi)有提供必要的UDF而不能執行靈活多樣的數據庫查詢(xún)操作。

更多醫療電子信息請關(guān)注:21ic醫療電子頻道


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: MML 電子病歷 存儲 模型研究

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>