APP下载

Caché数据库在医院信息系统中的优势

2012-07-28雷舜东吴帮华黄海莹李玉明

实用医院临床杂志 2012年1期
关键词:应用程序信息系统环节

雷舜东,吴帮华,黄海莹,李玉明,张 红

(四川大学华西第二医院 a.信息管理部,b.后勤管理部,四川 成都 610041)

关系型数据库是指采用了关系模型来组织数据的数据库。一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。关系模型是1970年由IBM的研究员E.F.Codd博士首先提出,在之后的几十年中,关系模型的概念得一了充分的发展并逐渐成为数据库架构的主流模型。医院信息管理系统采用的数据库主要有 SQL Server、Oracle、Sybase和DB2等主流数据库不同版本。这些数据库均为关系型数据库,其应用在推进医院信息系统的发展方面功不可没,然而随着医院信息系统的进一步发展,尤其是临床医疗信息系统的深入应用,使得关系型数据库在处理具有多维特征的医疗数据时显得力不从心,而Caché数据库在这个方面有明显的优势。

1 关系型数据库在医院信息管理系统应用方面的不足

二十多年前,关系型数据库被誉为一项伟大的创新。关系型数据库用统一的数据结构取代了以前单一的、结构不一的数据文件,将数据存储在表格中。关系型数据库是如此的成功,以致查询语言(SQL)成为了访问数据库的一个通用标准[1,5]。然而,作为一种技术,有其生命周期和局限性。该技术的缺点使其在当今世界的适应性大大降低,主要表现在以下几方面:快速的开发程序,程序复杂性不断增加,信息系统需要不断提高,这些都已超出了关系型技术的能力。许多要求高性能和高扩展能力的关键应用从来没有迁移到关系型数据库上,现在即使很简单的应用也开始触及到传统关系型技术的极限。关系型数据库和当今开发技术的“不匹配阻力”已经成为了一个严重的问题,它使得开发过程更加复杂,开发成本增加,失败概率大大提高[2]。尽管表格结构的简洁可以支持强大的SQL,但现实世界的数据很难分解为这种简单的行列结构。结果就是产生了大量的表,表和表之间的关系就变得很难记忆和表达。

在医疗领域,医疗活动的复杂性与多样性表现为环节众多、环环相扣,含几个主要的环节,每个主要的环节中又包含若干个子环节,子环节中嵌套着下一层子环节。为满足日后临床需求进一步扩展细化,环节的层次不能固定[3]。其次;末端环节中所包含的医疗项目数据的种类也不能固定,也必须具有扩展性,这样存储机制必须具备“树枝、树干”的层次,并具有高扩展性。显然,当今的主流关系型数据库的二维存储结构不能满足医疗行业特殊数据存储的这些需求。

2 Caché数据库的优势

在世界医疗卫生的相关领域,Caché成为首选的数据库,70%的美国医院使用Caché数据库,世界上最好的电子病历、最大的HIS系统、最优的LIS系统都采用 Caché作为数据库[2]。这些成功应用Cache数据库的实例都充分说明其在医疗领域应用的显著优势。

Caché是后关系型数据库的领导者,在全世界的医疗领域处于领先地位。“后关系”这个术语是用来将Caché与传统的关系型数据库区分出来。与传统的关系数据库不同的是,Caché是以多维结构对数据进行存储,这种结构可以处理复杂的数据,并能更加快速地存取数据。

2.1 Caché数据库的多维存储结构适合医疗数据的存储 Caché数据库的多维存储结构与医疗数据的存储需求——树状结构一致。以屈光手术为例(见图1),患者的全部屈光手术治疗为一个大环节,这个环节下包含着多次手术治疗过程的子环节,每一个子环节下包含:病史采集、术前检查、综合评估和处理、手术计划、手术记录、术后用药及处理、术后复查等环节[2]。其中的手术记录环节可能包括手术切削参数、手术方式等子环节。最末端的环节如手术切削参数将包括多个记录项目,如矫正度数、光学区直径等。矫正度数的数据格式与光学区直径的数据格式不一样。这种数据结构形式可以理解为树状结构,其树干和树枝代表环节的层次,枝头挂着的一串果实则代表每一项医疗数据。

图1 屈光手术治疗树状结构图

在Caché数据库中采用路径法,仅使用2个Global节点变量就存储了上面例子的所有层次信息:

^List(“术前检查”)=<<$LB(“裸眼远视力”,“裸眼近视力”,“常用戴镜视力”,“电脑验光”,“角膜地形图”,“检影验光”,“主觉验光”,“优势眼”,“眼位及运动”,“眼睑及睫毛”,“结膜”,“角膜”,“前房及房角”,“虹膜”,“瞳孔”,“晶体”,“眼压”,“玻璃体”,“眼底”,“角膜厚度”,“眼轴长度”,“特殊检查”)>>

^List(“术前检查”,“特殊检查”)=<<$LB(“泪液功能”,“像差”,“视野”,“调节功能”,“对比敏感度”)>>

^Tree(“术前检查”,“裸眼远视力”)=Physical I-tems.Vision

^Tree(“术前检查”,“裸眼近视力”)=Physical I-tems.Vision

^Tree(“术前检查”,“特殊检查”,“泪液功能”)=Physical Items.Tear Function

^Tree(“术前检查”,“特殊检查”,“像差”)=PhysicalItems.Aberration

下面解释一下以上2个Global节点变量的存储结构,多维数组Global是Caché数据库的核心存储机制,是其一切数据存储的基础,所有数据存取都是以Global的形式进行存储。在Caché环境中,可以把Global理解为是一种数据类型。^Global变量维度是无限的,其下标和值可允许数字或字符(含中文),其长度仅受限于数据库的存储空间。在^List节点里存储了所有的路径信息(层次信息),可历遍整个树状结构,也可根据指定的下标进行快速定位。^Tree节点相当于连接“果实”的小枝,其下标由绝对路径构成,保存的值为类名称,即指向某一具体医疗数据项目的类名称。由于Caché专门针对多维数组的存取进行了优化,因此路径信息的检索、存取速度非常快。此外,多维数组的变量值更新和维度扩充的方便性,也就决定了医院信息系统比较良好的层次结构的扩展性。

2.2 以Caché为后台数据库的系统其执行效率高SQL数据访问就是使用一种标准的语言查询各种类型的数据。SQL数据访问的工作方式是在简单的、标准化的格式(由行和列组成的两维表)中浏览所有数据。尽管这种简单的数据模型支持了这种强大的查询语言,但却要付出昂贵的代价。由于现实世界的数据关系复杂,因此现实数据并不能自然地表示成为简单的行和列,所以现实数据往往被分解成多个表。这样即使是进行一个简单的任务,也要对这些表进行连接操作。这样就导致了两个问题:①由于需要连接多个表(常常是复杂的外连接),查询语句就很难写;②当关系型数据库需要处理复杂数据时,处理任务就是一项非常巨大的工程。Caché使用有效的多维数据引擎,多维数据引擎能够对复杂的现实数据进行直观、有效的建模[4]。与关系型系统不同的是,Caché在处理事务的时候不需要从多个表中集成数据,消除了伴随事务处理所需要的表连接,所以与关系型数据库相比,SQL的性能提高了20倍。Caché数据库中内置的Caché ObjectScript脚本语言,可以直接访问多维数据结构,这样可以获得最高的性能和最好的存储利用率。应用Caché,单个的事务处理运行得更快,更多事务处理能够同时并发处理。

数据库的性能极大地依赖于索引的创建,在查询数据库时这些索引经常使用。众多数据库都使用索引,然而Caché独一无二地提供了事务型位图索引。关系型数据库中的传统位图索引受两个问题的困扰:①当要更新关系型数据库时,它将变得很慢;②它可能会占据太多的存储空间[4]。而Caché中的事务型位图索引可以利用多维数据结构来消除这两个问题。这样一来更新这些位图要比更新传统的索引更快。并且他们利用复杂的压缩技术显著地降低了所需的存储空间。结果是:在一个在线事务处理数据库中搜索成百万条记录时,不到一秒钟。正是由于Caché中面向对象的特性和其独特的索引技术适合医疗领域频繁的查询搜索和大量的并发事务,使其在整个医疗信息系统的执行效率高。

2.3 适应目前面向对象开发技术的发展趋势 对象编程和对象数据库是实际工作中为了模拟复杂的大脑活动而产生的一种技术。所以,程序应该不仅能够处理复杂行为而且能够隐藏其复杂性,这是当今顶尖应用程序所需的两大特征。在对象技术中,数据的复杂性被封装在对象中,数据访问通过一个简单统一的接口[4]。关系技术虽然也提供一个简单统一的接口,但是,由于关系技术不能处理现实数据的复杂性,所以用户或者程序员必须处理这种复杂性。Caché数据库是面向对象的数据库,同时支持对象扩展的SQL查询语言。跟关系表不一样,Caché数据库中的对象把数据和代码捆绑在一起。例如,一个发票对象可以保存有数据(如发票编号和总金额)同时具有执行某种行为的代码(如print()),这样就完全与面向对象开发技术相吻合。在Caché数据库中直观的数据建模对象技术使得开发者以简单和真实的方法思考和使用信息,甚至是十分复杂的信息,就提高了应用程序开发的效率。Caché完全支持面向对象的编程方案,包括封装,嵌入对象,多重继承,多态等。内嵌的Caché脚本语言可以直接操纵对象,Caché也可以把Caché类转化为 Java,EJB,COM,NET,C++类,并且提供了与对象建模工具(如Rational Rose)和网页设计工具(如Dreamweaver)的高效联接。Caché数据库的这些面向对象的特点和与当今流行的面向对象开发工具兼容使得开发者能够非常快速的创建基于Caché后关系型数据库的应用。Caché数据库以其优秀的性能及后关系型数据库的特点广泛应用于医疗行业,更大的优势在于其自带的Web Service为数据在不同的信息系统间交互,提供了可靠的性能及保障,其快速、便捷的接口开发,从而实现对异构系统的有力支持[6]。

2.4 使用Caché数据库能够继续延用现存的技术和应用程序 Caché的关系网关能够使在Caché中产生的SQL查询导入到其他关系型数据库中进行处理。通过使用网关,Caché应用系统能够提取和更新存储在多数关系型数据库中的数据。另外,如果Caché数据库类是使用CachéSQLStorage编写的,网关能够允许Caché应用系统透明地访问关系型数据库,这样程序员能够继续延用现存的关系型数据库系统,逐步引入对象技术[4]。如果应用程序直接访问Caché这个后关系型数据库,它将运行得更快,且更具有扩展性。同时许多基于SQL的应用程序能够不做任何改变而直接在Caché上运行——尤其那些用独立于数据库的工具编写的应用程序。在医院有多个信息系统存在的情况下,使用Caché数据库技术,能让这些系统共存,而不必将医院的既有系统推倒重来。

2.5 使用Caché数据库能降低成本及易于扩展与大小相同的关系型应用相比,基于Caché的应用对硬件要求很低,系统管理和操作非常简单。更快更具扩展性,Caché虚拟机技术能够直接访问数据库,这样使得应用程序能够运行得更加快速,并且应用程序在低性能的硬件上也能够扩展到上万个用户,这样就不必象关系型数据库在面对众多客户端的情况下,对数据库服务器硬件要求极高,从而为用户节约大量成本。每个Caché过程使用“命名空间”来访问数据库。通常,除了一些系统信息,命名空间的所有数据存储在一个单一的数据库中。命名空间是一个逻辑图,这个图把多维global数组和代码映射到数据库,所以如果一个数据库从一个磁盘移动到另一个磁盘或者从一个计算机移动到另一个计算机,只要命名空间做一下更新就可以了,应用程序本身不需要更新[4]。命名空间支持灵活的结构,允许任意映射,通常一个命名空间是几个数据库内容的映射,也可以包括其他计算机上的数据库,这对以后数据库的扩展极其方便。Caché的多维数据模型允许基于Caché的应用程序扩展到数千个客户端,而不影响其高性能。这是因为相对关系型模型,多维数据模型的数据库的大小和复杂性并不显著地影响数据的访问。Caché数据库对硬件要求不高及极易扩展的特点降低了医院的成本和对医院历史数据在在线保存及查询提供了极大的方便。基于后关系型数据库Cache的HIS具有速度快、稳定性强、维护方便且成本低的优点,较基于关系型数据库的系统具有广泛的应用价值。

3 结论

目前,国内许多医院都建立了自己的医院信息管理系统,系统的正常运行与进一步扩展依赖于具有高性能、高扩展性的数据库。基于后关系型数据库Cache的HIS具有速度快、稳定性强、维护方便且成本低的优点,较基于关系型数据库的系统具有广泛的应用价值[7]。鉴于国外医疗行业使用Caché数据库的情况,及Caché数据库相对于关系型数据库在医疗领域的优势,Caché数据库在我国医院信息化建设和管理中有巨大的应用前景,对提高医疗服务水平、提高医院效率、降低成本、缩短医院信息系统开发周期、提高医院信息系统的使用方便性和减少日后的维护工作量,提高医院竞争能力将产生重要影响。

[1]黄维通.SQL Server 2000简明教程[M].北京:清华大学出版社,2002.

[2]王晓幸,木霄挺,杨杰.基于Caché数据库的电子病历存储结构设计[EB/OL].http://www.intersystems.cn/cache/analysts/cache_ehr.html,2010.

[3]杜布尔,耿希晨.从对临床症状的属性解析探索医学数字化[J].中华医院管理杂志,21(5):548-549.

[4]Inter Systems公司.Caché技术手册[P].Inter Systems公司北京代表处,2006.

[5]何玉洁,黄婷儿.数据库设计教程[M].北京:机械工业出版社,2005.

[6]宗宁.Caché数据库中Web Service的开发与应用[J].电脑编程技巧与维护,2010,22(1):43-44.

[7]任喜伟,黎明和,陈长明.采用Cache的三层结构 HIS的研究[J].现代制造工程,2010,1(1):23-26.

[8]韩亮,戴耕武,潘宁,等.皮肤外科患者信息管理系统的建立与应用[J].实用医院临床杂志,2008,5(1):98-99.

猜你喜欢

应用程序信息系统环节
企业信息系统安全防护
必要的环节要写清
在农民需求迫切的环节上『深耕』
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
基于区块链的通航维护信息系统研究
信息系统审计中计算机审计的应用
基于SG-I6000的信息系统运检自动化诊断实践
现代学徒制管理模式及其顶岗实习环节
论评标环节的优化与改进