医院信息系统数据库集成之路研究

2017-09-09 14:50刘鼎
数字技术与应用 2017年7期

刘鼎

摘要:目的:设计一种能连接医院信息系统中不同数据库的分布式异构数据库。方法:采用NET服务、透明网关及普通连接技术使网络上的各数据库集成为统一的数据应用平台。结果:采用该方案能很好地实现同时对多个异构的数据库系统进行透明访问。

关键词:透明网关;普通连接;异构数据库;分布式数据库

中图分类号:TP311.13 文献标识码:A 文章编号:1007-9416(2017)07-0089-02

1 问题的提出

目前医院信息系统已渗透到医疗的每一个环节中。同时也带来挑战,具体表现如下[1]:

(1)不同厂商开发的信息系统并存,这些子系统的数据库一般是分布在不同服务器上,如检验系统,手术麻醉系统,采供血系统等。(2)数据共享困难,如同一工作人员存在不同工作帐号密码;信息的严重滞后,如新增加的诊疗、价表项目,在辅助系统中要过半天甚至几天才能使用。再如,医院的在院人数一个变化非常快的动态数字,尽管算法相同,不同的系统在计算同一个时间点的在院人数也可能有很大的差别。(3)选取一种技术,使得这些数据库连接起来,让这些分布在不同数据库平台的数据实现共享。分布式异构数据库的集成,各大数据库者有具体的技术实现,例如,SQLSERVER提供了LINKED SERVER技术,它通过ODBC实现与其它数据库的互联;DB2中的INFORMATION INTEGRATOR软件,能帮助客户将数据库进行集成。ORACLE提供了异构服务(HETEROGENEOUS SERVICES)集成不同的数据库,使得客户能即时访问,管理和分析存储于医院数据库的各类数据。

2 数据库集成为分布式数据库之路

如何把同构异构数据库集成为分布式数据库。ORACLE提供了一种名为分布式处理(DISTRIBUTED PROCESSING)的技术。同构数据库连接,可以直接利用ORACLE自带的NET服务和DATABASE LINKS技术就可能现实连接。通过异构服务器技术,异构数据库用户连接一个承担着连接,协同别的数据库任务ORACLE数据库。客户端连接的这个数据库称为本地数据库(LOCAL DATABASE)。除此以外,其它集成数据库称为远程数据库(REMOTE DATABASE)。通过在本地数据库建立DATABASE LINKS技术,终端能访问任何一台远程数据库,其查询进程负责事务和连接的管理,事务引擎负责事务的协同。在客户端眼里,非ORACLE数据库就像远程ORACLE一样,它能理解ORACLE的SQL和数据字典。ORACLE服务中的异构服务组件是实现非ORACLE异构数据库的访问。大多情况下,在异构服务组件工作对客户端来说是完全透明的,客户端可以用ORACLE一样的SQL,甚至是PLSQL来查询非ORACLE数据库。以下是解决这些分布式,异构数据库两个方法:普通连接技术和透明网关[2]。

普通连接(GENERIC CONNECTIVITY)技术是一种使用ODBC或者OLEDB驱动程序访问任何ODBC或OLEDB兼容的非ORACLE系统的通用解决方案。它满足了对许多ORACLE没有网关解决方案的数据存储的数据访问需求。这种特性使用ODBC和OLEDB的业界标准实现了透明连通性。ORACLE普通连接使访问像MYSQL,FOXPRO,ACCESS等数据库成为可能。

透明网关(TRANSPARENT GATEWAYS)是一种非ORACLE系统特别编码,量身定制的解决方案。它们提供一种比普通连接拥有更多功能和更好性能的优化方案,普通连接依赖于业界标准,而透明网关使用它们的本地接口访问非ORACLE系统。ORACLE透明网关可以连接DB2,SYBASE,INFORMINX,SQLSERVER等数据库。下面将结合某医院环境。通过具体的例子来说明ORACLE系统如何实现分布式数据库的访问。

2.1 同构数据库连接示例(ORACLE与ORACLE实例的连接)

ORACLE数据库与ORACLE数据库间的之间的连接为同构数据库的连接,同构数据库间差异较小,所以连接比较简单,网络配置方面只需本地数据库端的NET服务能连接到指定的ORACLE数据库。

2.2 異构构数据库普通连接示例(ORACLE与MYSQL实例的连接)

某医院抗菌药物等级设置是存放在合理医疗业务MYSQL数据库的MLRK_ITEM_PROP_MASTER表中,在未有做集成之前,DDD值统计可实现的方式主要是通过PB,DELPHI编写的软件或药剂科手工统计。PB,DELPHI等第三代语言采用诸如FOR,LOOP循环语句分别从军卫数据库及合理医疗业务数据库查询出来不同的数据集DATASET,再嵌套的二层循环对每行记录依次分析其抗菌药物等级并计算期DDD值。

通过ORACLE与MYSQL异构数据库的集成,并利用充分利用SQL语言的优势,并利用ORACLE10G中的正则表达式优势(此特性是MYSQL及PB,DELPHI都没有的)进行分析,并对视图的方法对DDD统计进行展示。首先创建名为MYSQL的DATABASE LINK连接。

(1)安装MYSQL-CONNECTOR-ODBC-3.51.28-WIN32.MSI的MYSQLODBC驱动,然后配置ODBC环境。(2)建立系统ODBC建立一个名为MYSQL数据源(不要在用户ODBC建立)。(3)在ORACLE\PRODUCT\10.2.0\DB_1\HS\ADMIN下加入INITMEDICARE.ORA。(4)建立MYSQL的DATABASE LINK。然后创建在本地数据库上创建搞菌药物等级视图;最后利用上面MLRK_ANTIDRUG_LEVEL_V 视图和本地数据库的正则表达式函数REGEXP_SUBSTR对抗菌药物DDD值的计算并生成视图。endprint

2.3 异构构数据库透明网关示例(ORACLE与SQLSERVER实例的连接)

(1)安装透明网关服务ORACLE。在ORACLE10G上,透明网关是一个单独的组件,需要单独下载安装,这个安装包约为20M。点击SETUP.EXE,启动安装界面,安装ORACLE TRANSPARENT GATEWAY FOR MICROSOFT SQL SERVER。(2)配置透明网关参数文件。这里可以理解将SQLSERVER作为ORACLE的一个实例,这样让用户访问SQLSERVER时就像访问ORACLE一样。透明网关安装完后,可以在$ORACLE_HOME下找到TG4MSQL目录,该目录的ADMIN文件夹下存在一个名为INITTA4MSQL.ORA的文件。文件名TG4MSQL就是SQLSERVERD在ORACLE的一个实例名。(3)在透明网关服务器上服务器上配置监听。在$ORACLE_HOME下找到下找到NETWORK目录,该目录下ADMIN文件夹下会有一个LISTENER.ORA文件,编辑该文件,添加实例监听。

3 结果

通过以上方法把与ORACLE数据库同构或异构数据库集成,给HIS系统带来好处如下[3]:

3.1 发挥分布式数据库功能

使医院院的各种大大小的数据库都可以认为是ORALCE数据库的一个实例,实现了ORACLE与SQLSERVER间跨实数据库的INSERT,UPDATE,INSERT,CREATE TABLE等操作。通过此集成,客户端能够随时随地访问这些分布式系统而无需要知道数据存放的位置及存储方式,充分发挥了分布式数据库的功能。

3.2 装备ORACLE的功能特性

在ORACLE10G版本中具备了REGEXP_LIKE, REGEXP_INSTR、REGEXP_SUBSTR以及 REGEXP _REPLACE正則表达功能。又例如ORACLE10G中的行合并函数WMSYS.WM_CONCAT,UTL_RAW.CAST_TO _VARCHAR2等这些都是相当有用的函数,这些功能在整合后的分布式数据库中能够很好使用。使不同的数据库在保持自己功能同时,也具备了ORACLE的功能特性。

3.3 加快数据库开发,调试,维护

SQL为第四代高级的非过程化编程语言4GL,它允许用户在高层数据结构上工作。用户只要知道做什么,而要求知道怎么做。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,故此SQL语言已经是有一定“智能化”。

4 结语

数据库集成技术使HIS系统中的信息孤岛找到桥梁。数据库集成会经常遇到不同字符集,数据类型转换和SQL语言可能不兼容问题。毕竟,数据库集成涉及面非常广,技术也非常多。但它也是一种注重实践的技术,只要我们在不断使用这些技术过程不断总结经验,以上这些问题都会迎刃而解。

参考文献

[1]苏淑文,翁敬农.ORACLE系统异构数据库环境下的信息集成[J].微机发展,2004,(10):1-3.

[2]郭东恩,沈燕.ORACLE透明网关核技术实现异构数据库互连[J].电脑开发与应用,2008,(9):58-63.

[3]张凯.医院信息系统集成技术的研究与应用[D].北京航空航天大学,2003.endprint