微型机与应用
MICROCOMPUTER & ITS APPLICATIONS
1999年 第18卷 第2期 Vol.18 No.2 1999



医院门诊收费数据仓库系统的分布并行结构设计方案
郭云飞　孟志青
　　摘　要：以数据仓库(Data Warehouse)技术思想为核心，论述了在现有的普通数据库管理系统的基础上开发分布并行式医院门诊收费数据仓库系统的结构设计，为在低资源环境下开发高效率数据库管理系统提供了一套有效的方法。
　　关键词：数据仓库　分布并行　数据库

1　系统分析
1.1　问题的提出
　　医院门诊收费系统是医院管理的一项重要工作。目前我国许多大中小型医院门诊收费基本上都实现了计算机管理，主要软件系统一般是基于数据库管理系统开发的单机系统或微机网络系统。这两种门诊系统都是采用以集中式数据存储为基础的数据库联机事务处理系统。为了对医院门诊药房的药品进出进行有效的控制，需将医生所开处方全部录入计算机。但是许多大医院每天门诊量很大，平均每张处方的记录量为5个左右，这样每天少则几千条，多则几万条记录存于磁盘，1个月下来有几十万条记录。许多系统为了提高处理的效率，每个月备份上个月的数据，并将上个月的数据从系统中删除。
　　近年来，医院管理也进入市场化，医院对药品的需求和管理，以及经营状况的预测都变得十分必要，尽管许多医院实现了计算机收费与药品管理，但大多数系统在开发时均未考虑大规模数据处理的问题。因此无法回答下面的问题：
　　在过去一年中，某种药品在全年12个月的使用情况是什么?
　　在过去的几年中，哪些药品使用得最频繁或最少?
　　某个医生在过去的几年中，使用量最多的药品是什么?
1.2　设计思想
　　为了解决上述问题，提高数据的处理能力和数据安全性，使管理系统高速可靠地运行，对系统内复杂的数据进行有效管理，以满足多功能系统对数据提出的准确、可靠、正确、快速以及使用方便的要求，我们采用了数据仓库(Data Warehouse)技术的开放式体系结构，在现有的普通数据库管理系统的基础上开发分布并行式数据仓库门诊收费管理系统。从广义上讲，所谓数据仓库就是1个专门的数据仓储，用来保存多个数据库或其它信息源中选取的已有数据，并为上层应用提供统一的用户接口，用以完成数据的查询和分析。数据仓库系统可分为3大部分：即数据源、后端加工、前端服务。数据源提供原始数据；后端加工实施数据后台处理(包括接收、储存、析取、汇总等)；前端服务面向最终用户。因此，数据仓库可作为解决上述问题的1个合理方案。
1.3　解决方案
　　我们结合数据仓库技术和客户/服务器技术来建立1个统一的、开放式的数据仓库。对医院门诊收费中数据量最大的处方数据，按大颗粒存放在4台并行工作站上，例如按科室存放；对其它数据库，由于数据量相对小得多，则存放在网络服务器硬盘上；采用若干台工作站作分布式用户，在这些工作站上完成客户端的功能，而在网络服务器和并行工作站上实现服务器功能；将并行工作站上的处方数据库设计为只读数据库，只有在工作站上已确定的数据才传至此数据库，不允许在并行工作站上修改数据。这样既降低风险，又简化管理的复杂性，且符合提高效率和充分利用硬件资源的原则。由于将数据仓库设计为只读数据库，无需设立锁，更无需管理锁，能大大简化数据库的并发控制，改善数据的可用性和数据的安全性。且因为数据库分为4部分存放，查询或统计可同时进行，从而提高了速度，并且在故障的恢复能力上得到了质的飞跃，数据的存储能力也大为改观。由于数据仓库与联机事务处理类的系统分开，网络服务器的负荷大大减少，不再成为系统的瓶颈。因此管理系统的整体性能得到改观，能满足用户的要求和分布管理数据发展的需要。
2　系统总体设计
2.1　硬件配置
　　由于价格等原因，要采用专用并行机和专门的分布并行数据库系统来开发应用系统几乎不可能，而目前微机价格低且性能高，而且支持客户/服务器体系结构的软件已纷纷出台，所以利用微机网络和现有的普通数据库管理系统实现分布并行已成为可能。我们利用1台586微机作为专用服务器，4台586微机工作站作专用并行机，若干台586工作站或局域网作分布式用户，系统结构如图1。

图1  系统结构
2.2　系统划分
　　分布式并行数据库系统的目标是以最小的代价、最有效的方式来最大程度地满足用户的需求。大致有如下4个重要标准：局部性的处理功能达到最大，有利于负载的分布，满足分布数据的可用性和可靠性要求，有足够的可用存储器容量。为实现上述目标，整个系统共划分为3个子系统：收费事务联机系统、用户数据联机分析系统和并行管理系统。
　　1.收费事务联机系统：这是为收费部门(处方录入)设计的1个功能完备的子系统，系统放置于本地工作站或服务器，存放有收费所需的全部数据。系统按照多用户环境要求设计，其工作方式有2种：一种是完成原始数据的装入、修改、处理等工作；另一种是将装配有整套系统的某台微机(一般为指定工作站)做为整个分布并行系统的1个远程用户联入主系统，每月向并行工作站系统传送1次有关的处方数据，并对服务器主数据库与并行工作站数据库相关数据进行一致性与完备性检验。　　
　　2.用户数据联机分析系统：这是为医院管理部门设计的多用户并行式系统，系统装在服务器上，各工作站通过服务器和并行机的数据进行工作。它的主要功能是对处方的历史数据进行统计、查询、预测等。
　　3.并行管理系统：这是为上面2个系统实现并行化服务的1个子系统，系统程序放置在工作站或服务器中，主要数据库是处方库(放在并行工作站内)，系统启动后不断地访问服务器里的并行进程库，一旦取得指令后立即工作，工作完成后又到服务器中取另一条指令进行下一步工作。其主要功能是实现处方记录的接收、查询和统计等工作，将用户需要的数据进行加工传递给服务器，然后用户系统到服务器上读取或重新加工。　　
2.3　分布并行数据库设计
　　并行数据库的实现方法是将数据存放在不同的存储器内以实现并行管理，为此本系统数据库存储按局部共享和无共享混合结构，主要划分为4类数据库：收费工作站数据库、服务器主数据库、并行工作数据库和并行工作站数据库。
　　1.收费工作站数据库：是收费事务联机系统的全部数据库，如医生库、药品库、处方库等，存放在本地工作站，系统对这些数据库实现增、改、删等操作，并向服务器主数据库和并行工作站数据库传递数据，每月或每周的处方数据向并行工作站数据库传送1次。
　　2.服务器主数据库：用户数据联机分析系统中除处方库外的全部数据库，如医生库、药品库等，均存放在主服务器内，这些库也是共享库，一般变化很少。
　　3.并行工作数据库：这些库是为实现系统分布并行管理设计的，全部放在服务器硬盘内，有并行进程管理库、并行处方工作库、查询工作库等，这些库内的数据为临时交换使用，一旦用过立即清除。
　　4.并行工作站数据库：由于处方库处理的记录量特别大，为了实现数据库并行管理，减少并行工作站之间的数据传递，将数据库按大粒度存放，如按药品大类别存放，每个并行工作站仅存放数个库并由并行管理系统管理。全部数据库格式因篇幅所限省略。
2.4　并行工作设计
　　采用模块成对设计原理，利用并行进程管理库和其它工作库实现1个功能的运行，即1个模块分2块制作，一块为用户或收费联机系统的前端(功能)模块，一块为并行管理系统的后端(功能)模块，它们之间靠数据的传递联结工作。首先介绍并行进程管理库BXJCK的结构和工作机制，它放在服务器中，结构如表1所示。 
表1　并行进程管理库结构

登记号并行机号功能名称功能号工作站号标志号状态说明
11000接收处方数据1122333执行完毕
20110查某类药品使用数量1043113正在执行
31111统计过去一年的处方1651001执行等待


　　说明：
　　登记号――顺序号，每一功能请求得到的号是BXJCK中的最大登记号加1，登记号是唯一的。
　　并行机号――并行工作站的需求状态指示字，共有4位，每1位对应1个并行机，即从左至右分别对应1、2、3、4号并行工作站，用1表示该并行工作站工作，0表示不执行。如值是0110，表示2号和3号工作站执行这项功能。
　　功能号――是并行管理系统调用的后端模块的编号，如1号表示接收数据，16号表示统计过去一年处方的总数。
　　工作站号――是发出请求的用户工作站的编号，每一工作站进入系统时必须给定1个工作站号，以确定查询后的数据返回给哪一个用户工作站，这个编号是唯一的。
　　标志号――系统对该功能的执行状态指示字，共有4位，每1位与1台并行工作站对应，0表示等待，即并行管理系统正在执行先请求的功能；1表示正在执行，即并行管理系统正在执行这个功能；2表示已经执行完毕，即并行管理系统功能已执行；3表示对应的并行机不执行这个功能。
　　工作机制：由工作站前端模块向BXJCK发出请求，检查请求功能号是否存在，如无则增加1条空记录，并将得到的1个登记号以及并行机号、功能号、工作站号和标志号0写入，同时将并行数据写入有关工作库，当1台并行工作站完成1个功能后，向BXJCK搜索最先登记的标志号为0的记录，后端模块取到登记号和功能号后，置标志号为1，同时从工作库取数据开始执行，并将完成的结果送到服务器相应的工作库中，将BXJCK中该记录中相应的并行机标志号置为2，工作站前端模块从BXJCK中取得标志号后，从服务器相应的工作库中取得数据，并完成最后功能，清除服务器相应的工作库中的数据，同时将BXJCK中该记录删除。
　　工作准则：
　　(1)1个前端模块1次只能向BXJCK提出1个调用后端模块的请求；
　　(2)同一个用户工作站可同时有多个不同应用前端模块向BXJCK提出调用不同后端模块的请求，因此用户提出请求后，若不能得到立即响应，可转到其它应用前端模块，过一段时间再过来查看是否调用完毕；
　　(3)不同用户工作站可以同时由同一应用前端模块向BXJCK提出同一后端模块调用；
　　(4)标志号均变为2时表示这一功能执行完毕；
　　(5)在BXJCK的所有记录中，1个并行工作站只在1条记录中对应的标志号位为1，因为1个并行工作站1次只能调用1个功能。
3　系统结构设计
3.1　收费事务联机系统结构设计
　　1.系统说明
　　本系统是分布并行式医院门诊数据仓库系统的三大子系统之一，是1个功能完备而又具有相对独立性的系统。如果医院已有该系统，那么只需增加1个数据传送功能模块，每月或每周定期向主服务器和并行工作站传送处方数据。如没有该系统，可作为主系统的一部分统一建立。该系统有2种工作方式，一种工作方式是既能完成收费原始数据的装入、修改，并对处方等相关数据依据有关规定进行处理，又能按不同需求完成短期内数据的查询、统计以及产生与之有关的各种辅助性打印报表等；另一种工作方式是与另外2套系统实现无缝联接。其工作方式如图2。将装配有整套系统(含全部有效数据)的某台微机(一般为指定工作站)作为分布并行系统的1个远程用户联入数据仓库主系统，一方面每月或每周向并行工作站系统主数据库(处方库)传送1次有关的处方数据以及历史记录，另一方面可向并行工作站系统发送本地查询请求。有关详细说明略。 

图2  收费事务联机系统工作方式
　　2.系统功能模块
　　系统功能模块图如图3所示。

图3  系统功能模块图
3.2　用户数据联机分析系统结构设计
　　该系统主要用来作数据联机分析，主要功能是对处方的历史数据进行查询、统计和预测等工作，由于功能繁多，整个功能按用户浏览器设计，分析结果则按图形和数据显示，如图4所示。

图4  系统分析结果显示
　　各工作站对数据仓库的查询和统计过程如图5。

图5  对数据仓库的查询统计过程
3.3　并行系统结构设计
　　并行管理系统主要是完成对并行工作站的管理，它大致可分为接收数据、并行查询、统计预测和数据维护等四个功能，它相对于用户数据联机分析系统来说是后端。并行系统结构设计如图6。

图6  并行系统结构设计
4　结束语
　　数据仓库应用系统的开发是一项非常复杂的技术工作，本文为建造中小型的数据仓库系统提供了一套模式。我们已用本文的设计思想在计算机网络上进行了学生成绩数据仓库管理系统的实验，为建造符合实际需要的数
据仓库开辟了一条有效途径。
作者单位：湖南湘潭大学计算机科学系(411105)　
参考文献
1　黄璇.数据库技术的发展方向.计算机工程与应用.1995，31(5)：1
2　杨利，周兴铭，郑若忠.并行数据库系统的体系结构.计算机科学，1994；21(4)：42
3　杨利，周兴铭，吴涛.并行查询中的进程分配与调度.计算机科学，1995；22(6)：26
4　郭宜斌.数据仓库技术的基本概念和发展现况.PC世界，1996；(4)：26
5　于戈，张斌.数据仓库管理中的若干关键技术.计算机科学，1997；(2)：31
6　唐韶华.基于C/S结构的网络分布式数据库应用.微型计算机，1996；16(2)：13
7　王晓蔚，孙志珲.基于客户/服务器的CMIS分布式数据库系统设计.微型计算机，1996；16(5)：13
(收稿日期：1998-09-10)
