张建莉 高欣
摘要:关系数据模型是以集合论中的关系概念为基础发展起来的,是数据库领域中常用的逻辑模型,根据用户要求,开发满足特定管理需求的数据库的过程称为数据库设计。如何在开发实际业务信息系统中收集和组织业务中所涉及的数据,以及按一定的组织结构将这些数据装入数据库中,本文以小型“门诊管理系统”数据库的设计为例,根据具体任务的需求和关系数据库管理系统提供的功能进行了数据库设计。
关键词:关系数据模型;数据库设计;门诊管理系統;关系
中图分类号:TP315 文献标识码:A
文章编号:1009-3044(2019)16-0001-02
开放科学(资源服务)标识码(OSID):
1 引言
数据逻辑模型是数据库系统设计的核心,它既要规范数据库中数据的组织形式,同时要表示数据及数据之间的联系,逻辑模型构建得好坏直接影响数据库的性能。关系模型(Relational Model)是数据库领域中常用的逻辑模型,它是以集合论中的关系概念为基础发展起来的,有严格的数学基础,抽象级别比较高,而且简单清晰,特别是在描述事物间的关系方面更加简洁合理,便于理解和使用,现已为绝大多数数据库设计所用。
使用数据库技术解决来自客观世界的各种管理问题、开发实际业务信息系统,首先碰到的问题是如何收集和组织业务中所涉及的数据,以及按什么样的组织结构将这些数据装入数据库中,也就是要根据具体任务的需求和数据库管理系统提供的功能进行数据库设计。本文以小型“门诊管理系统”数据库的设计为例进行了数据库设计。
2数据库设计步骤
根据用户要求,开发满足特定管理需求的数据库的过程称为数据库设计。通常设计分成以下四步。
需求分析:按照用户的需求和系统功能要求,确定新建数据库所需要完成任务的目的。
确定所需要的表:根据信息管理的需求确定要创建的表,每个表应该只包含一个主题的信息,而且各个表不应该包含重复的信息。
确定所需要的字段:一个表包含一个主题的信息,表中的各个字段都是该主题的各个组成部分。每个字段应直接与表的主题相关;字段尽可能不是推导或计算出的数据;字段是不可分割的数据单位。
定义主关键字:为了连接保存在不同表中的数据,为了唯一地确定一条记录,需要为每个表定义一个主关键字。
优化设计:在初步设计数据库的表、字段及表的关系后,还需要对所做的设计进一步分析,检查可能存在的缺陷和需要改进的地方,使得设计更合理、更符合用户和输出信息的需要,便于数据的使用和维护。
3门诊管理系统数据库设计
3.1需求分析
对“门诊管理系统”进行业务分析后,“门诊管理系统”信息系统所要包括的基本功能:需要管理医生、科室、药品、病人的基本信息,需要管理处方,需要管理处方明细,包括处方的录入、修改、查询、删除等功能;在使用过程中有时需要打印报表,所以还得有打印的功能;如果该系统规定专人负责,还需要规定用户名和登录密码,体现保密性等等。即“门诊管理系统”基本功能包括:系统管理(界面管理、退出系统)、基本信息管理(输入数据、修改数据、查询数据、删除数据)、信息输出处理(输出一般数据、输出统计数据)。
3.2确定所需要的表
根据“门诊管理系统”系统的需求,不难发现数据库中包含了4类信息:一是药品基本信息,如药品编号、药品名称药品规格等;二是医生、病人、科室的基本信息,如医生工号、病人ID等;三是处方信息,如处方号、病人ID、开出日期、临床诊断等;四是单据信息,如挂号单号、挂号费、收费单号、金额等。如果将这些信息放在一个表中,必然出现大量的重复,不符合信息分类的原则。因此,根据已确定的“门诊管理系统”数据库应完成的任务以及信息分类原则,初步拟定该数据库应包含8个数据表,即科室表、病人表、医生表、药品表、处方表、挂号单表、收费单表、处方明细表等。
3.3确定所需要的字段
对于上面已经确定的每一个表,还要设计它的结构,即要确定每个表应包含哪些字段。为了使保存在不同表中的数据产生联系,数据库中的每个表必须有主关键字能唯一标识每条记录,主关键字可以是一个字段,也可以是多个字段的组合。
关系数据库利用主关键字迅速关联多个表中的数据,不允许在主关键字字段中有重复值或空值。常使用唯一的标识作为这样的字段,例如,在“门诊管理系统”数据库中,可以将科室号、病人ID、医生工号、药品编号、处方号、挂号单号、收费单号分别作为科室表、病人表、医生表、药品表、处方表、挂号单表、收费单表的主关键字字段,处方号和药品编号这两个字段组合作为处方明细表的主关键字。
3.4确定表之间的关系
在数据库中,每个表不是完全孤立的部分,表与表之间有可能存在着相互的联系。例如,前面创建的“门诊管理系统”数据库中有8个表,不同表中有相同的字段名,如科室表中有“科室号”,医生表中也有“科室号”,通过这个字段,就可以建立起这两个表之间的关系。
确定关系的目的是使表的结构合理,不仅存储了所需要的实体信息,并且反映出实体之间客观存在的关联。前面各个步骤已经把数据分配到了各个表中。因为有些输出需要从几个表中得到信息,为了能够将这些表中的内容重新组合,得到有意义的信息,就需要确定外部关键字。例如,在“门诊管理系统”数据库中,病人ID是病人表中的主关键字,也是处方表中的一个字段。处方表中的病人ID字段称为“外部关键字”,因为它是另外一个表即病人表的主关键字。
如果表中没有可作为主关键字的字段,可以在表中增加一个字段,该字段的值为序列号,以此来标识不同记录。主键是用于将表联系到其他表的外部关键字上,从而使不同表中的信息发生联系。如前所述,表之间的联系可以归结为一对一、一对多、多对多三种类型。
在“门诊管理系统”数据库中,科室表和医生表之间就是一对多的关系,因为一个科室可以有多位医生。
而在多对多联系中,应将多对多关系分解成两个一对多关系,其方法就是在具有多对多关系的两个表之间创建第3个表,即纽带表。纽带表不一定需要自己的主关键字,如果需要,可以将它所联系的两个表的主关键字作为组合关键字指定为主关键字。在“门诊管理系统”数据库中,处方表和药品表之间就是多对多的关系。一个处方可以包含多种药品,同样一种药品也可以出现在多个处方中。因此设置一个处方明细表,该表作为处方表和药品表之间的纽带表,应将处方表的主关键字“处方号”和药品表的主关键字“药品编号”放入其中。
根据上述考虑,这样,在“门诊管理系统”数据库中各个表之间的关系如图1所示。
3.5完善数据库
在设计数据库时,信息复杂和情况变化会造成考虑不周,如有些表没有包含属于自己主题的全部字段,或者包含了不属于自己的主题字段,或者没有很好地满足实际应用中的需要。此外,数据库中常存在着多种复杂交叉关系,而这些关系又是实现数据库动态、有效管理的重要线索。因此,在初步确定了数据库需要包含哪些表、每个表包含哪些字段以及各个表之间的关系以后,还要重新研究一下设计方案,检查可能存在的缺陷,并进行相应的修改。只有通过反复修改,才能设计出一个完善的数据库系统。
在信息社会里,信息都是储存在计算机系统中的,它们的组织形式多为数据库。门诊管理系统数据库案例分析与设计,以实例的形式讲解了信息的组织方法,在此基础上可根据实际应用需要进行丰富和完善,并综合数据库管理系统提供的其他功能构建一个数据库应用系统。
参考文献:
[1] 赵丹青,雷虎,涂小琴. Access数据库技术与应用教程[J]. 电子科技大学出版社,2016(1).
[2] 王军委. Access数据库应用基础教程[J]. 清华大学出版社,2014(4).
【通联编辑:王力】