新聞中心

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

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

        作者: 時間:2012-08-21 來源:網絡 收藏

        設計實現對象一關系數據庫時,每個對象都要考慮采用何種類型,是否使用用戶自定義類型(UDT)。對每個對象可能有的查詢/操作認真分析,據此設計用戶自定義函數(UDF)。例如,通過名字Bob Smith查詢病人電話列表,下面列出對象一關系的SQL語句:SELECT o.phoneFROM oo.person o WHERE o.hasName('Bob','Smith');這里必須為oo.person對象設計該hasName自定義方法,不然將無法進行此查詢。在對象一關系模型中需要設計大量自定義方法。在傳統關系型模型,該查詢可以通過下列語句實現: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個表。

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

        4.2 時延分析

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

        (1)使用簡單搜索規則對單個病人進行數據檢索,例如通過名字檢索病人數據;

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

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

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

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

        5 結 語

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

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

        更多醫療電子信息請關注:21ic醫療電子頻道


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 合水县| 隆安县| 佛山市| 丹巴县| 南昌市| 鲁山县| 灌云县| 景泰县| 潮州市| 彭山县| 平安县| 南郑县| 张家川| 张家口市| 岐山县| 吉木萨尔县| 平安县| 曲松县| 临泽县| 高州市| 邓州市| 介休市| 延长县| 毕节市| 郑州市| 方城县| 马边| 齐齐哈尔市| 营口市| 大冶市| 裕民县| 满洲里市| 同仁县| 额尔古纳市| 安龙县| 阿瓦提县| 大洼县| 诸城市| 崇仁县| 普格县| 临夏市|