医院住院信息系统数据库设计.doc_第1页
医院住院信息系统数据库设计.doc_第2页
医院住院信息系统数据库设计.doc_第3页
医院住院信息系统数据库设计.doc_第4页
医院住院信息系统数据库设计.doc_第5页
已阅读5页,还剩9页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

医院住院信息系统数据库设计小组成员摘要近年来,随着我国人民生活水平的迅速提高,科学技术的进一步发展,医院对医院管理信息系统的需求越来越迫切,一套好的信息系统在全面提高医院的医疗、教学、科研水平,提高医院整体工作效率,为病人提供方便快捷全面的服务等方面都能发挥出重要作用。本课题主要研究医院住院信息管理系统的数据库构建过程。该数据库涵盖了住院过程中的基本信息,主要包括病人、医生、护士基本信息资料,办理出入院手续,医生、护士的分配,医生诊断内容的录入,以及护士的例行检查信息等。该课题结合软件工程思想,对整个数据库的需求进行建模,同时,根据范式思想对数据库进行规范化。然后,采用SQL Server 2005进行相关数据库的设计。关键字:医院住院信息系统 数据库 SQL Server 2005 范式一、 需求分析1、 住院部门的业务活动情况(1)首先病人需办理入院手续,需要登记基本信息,然后医院住院处根 据病人所就诊的医科给病人安排床位,将病人的信息录入并进行相应的维护和管理。(2)病人住院期间,医生会对病人作出诊断,护士每天会定时的对病房及病人情况进行检查。(3)当病人想要出院时,需先征得主治医师的同意,然后就可办理出院手续。2、 用户对系统的要求(1)病人信息:首先是病人的基本信息,主要包括病人的姓名、性别、年龄、家庭住址、联系方式等;然后是病人的住院信息,主要包括入院时间、所在病区、病房号、床位号、主治医师、诊断记录、出院时间等。(2)医生信息:主要包括医生的姓名,性别、年龄、家庭住址、联系方式、医生编号、所在科室、工龄、职称、负责病人、诊断记录等。(3)护士信息:主要包括护士的姓名,性别、年龄、家庭住址、联系方式、护士编号、所在科室、工龄、负责病房等。3、 基本功能医院住院管理系统数据库需要完成的基本功能如下:(1) 病房管理:对医院的病房基本情况进行管理,包括病房入住情况等,允许相关人员查询和修改;(2) 职工管理:对医院职工的基本情况进行管理,包括所在部门。负责病人情况等,允许相关人员查询;(3) 入院、出院登记管理:对医院的住院病人进行入院、出院登记管理,包括病人的基本信息等级、病房入住、住院日期、出院日期等,允许相关人员查询及修改;二、 业务流程医院住院信息系统具体包括住院、出院手续的办理,治疗和护理四大业务流程。(1) 住院手续的办理主要以病人为数据流,首先提出住院申请,然后查询病人记录,并加入本次记录,根据病人信息给病人分配病房及床位。住院手续的数据流图如图2.1所示。图2.1 住院手续数据流图(2) 治疗主要以病人为数据流。医生给病人检查,然后根据检查情况及病人的病例给出治疗方案,并告知病人。治疗处理的数据流图如图2.2所示。图2.2 治疗数据流图(3) 护士主要以护士为数据流。护士每天定时检查病房内情况以及各个病人的情况,如果病人有什么突发状况,则立刻通知医生,若没有,则正常记录当天情况。护士例行检查的数据流图如图2.3所示。图2.3 护理数据流图(4) 出院手续的办理主要以病人为数据流。病人向护士申请出院,护士向该病人的主治医师请示。得到主治医师的同意后,将病人此次住院的病历归档,然后就可允许病人出院。出院手续的数据流图如图2.4所示。图2.4 出院手续数据流图三、 概念设计(1)实体及其属性分析根据需求分析室提供的数据流图,可找到以下实体:病人、医生、护士、科室、病床。对于这些实体,他们的实体及属性图如图3.1所示。 图3.1 各实体及其属性(2)基本E-R设计根据主要业务规则,设计实体与实体之间的联系如图3.2所示。(为使实体与实体之间的联系更加清晰,在基本E-R图中采用属性“基本信息”代替原实体中的属性“姓名”、“性别”、“年龄”、“联系方式”、“家庭住址”。同时,考虑到特殊情况,此处工龄指在相应科室的工作时间。)图3.2 医院住院系统数据库基本E-R图四、 逻辑设计根据E-R图得出以下表:(1) 病人(住院号,病人姓名,病人性别,病人年龄,病人联系方式,病人家庭住址)(2) 医生(医生编号,职称,医生姓名,医生性别,医生年龄,医生联系方式,(3) 医生家庭住址)(4) 护士(护士编号,护士姓名,护士性别,护士年龄,护士联系方式,(5) 护士家庭住址)(6) 科室(科室名,主任编号,护士长编号)(7) 病房(病房号,病区,病床数)(8) 治疗(住院号,医生编号,诊断,诊断时间,主治医师编号) (医生_病人关联表)(9) 住院(住院号,病房号,床位号,住院时间,出院时间)(病人_病房关联表)(10) 科室_病房(科室名,病房号) (科室_病房关联表)(11) 护理(住院号,护士编号,护理时间) (护士_病人关联表)(12) 医生工龄(医生编号,科室名,工龄) (医生_科室关联表)(13) 护士工龄(护士编号,科室名,工龄) (护士_科室关联表)得到的数据库关系图如图4所示。图4 数据关系图五、 规范化分析1. 属于第一范式的关系模式为:R(病人姓名,病人性别,病人年龄,病人联系方式,病人家庭住址,住院号,病房号,病区,科室名,床位号,医生编号,医生姓名,医生性别,医生年龄,医生工龄,医生联系方式,医生家庭住址,诊断,诊断时间,主任医师,住院日期,出院日期,护士编号,护士姓名,护士性别,护士年龄,护士工龄,护士联系方式,护士家庭住址,护理时间)2. 确定数据依赖 住院号病人信息,病房号,床位号,主治医师,住院日期,出院日期 病房号科室名,病床数,病区 科室名主任,护士长,病区 医生编号职称,医生信息 护士编号护士信息 护士编号,科室名护士工龄 护士编号,住院号护理时间 医生编号,住院号,诊断时间诊断 医生编号,科室名医生工龄3. 确定关系模式R的主码主码(住院号,医生编号,护士编号,诊断时间)4. 消除部分依赖,将关系模式R分解为: Ra(住院号,病人姓名,病人性别,病人年龄,病人联系方式,病人家庭住址,病区,病房号,床位号,病床数,主治医师,科室名,主任,护士长,住院日期,出院日期)Rb(医生编号,职称,医生姓名,医生性别,医生年龄,医生联系方式,医生家庭住址)Rc(护士编号,护士姓名,护士性别,护士年龄,护士联系方式,护士家庭住址)Rd(医生编号,住院号,诊断时间,诊断)Re(护士编号,住院号,护理时间)Rf(医生编号,科室名,医生工龄)Rg(护士编号,科室名,护士工龄)其中Ra属于第二范式但不属于第三范式,Rb、Rc、Rd、Re、Rf、Rg均属于BC范式。5. 消除关系模式Ra中的传递依赖,将关系模式Ra继续分解Ra(住院号,病人姓名,病人性别,病人年龄,病人联系方式,病人家庭住址,病房号,床位号,主治医师,住院日期,出院日期)Rb(病房号,科室名,病床数)Rc(科室名,病区,护士长,主任)经检验,Ra、 Rb、 Rc均属于第三范式,且不存在主属性对码的部分函数依赖,故Ra、 Rb、 Rc均为BC范式。6. 经过以上推断,可得出属于BC范式的关系模式为R1(住院号,病人姓名,病人性别,病人年龄,病人联系方式,病人家庭住址,病房号,床位号,主治医师,住院日期,出院日期)R2(病房号,科室名,病床数)R3(科室名,病区,护士长,主任)R4(医生编号,职称,医生姓名,医生性别,医生年龄,医生联系方式,医生家庭住址)R5(护士编号,护士姓名,护士性别,护士年龄,护士联系方式,护士家庭住址)R6(医生编号,住院号,诊断时间,诊断)R7(护士编号,住院号,护理时间)R8(医生编号,科室名,医生工龄)R9(护士编号,科室名,护士工龄)六、 物理设计使用DDL实现其物理设计。1、 创建数据库create database 医院住院管理系统数据库2、 建表use 医院住院管理系统数据库create table 病人(住院号int primary key,病人姓名varchar(30),病人性别varchar(5),病人年龄int,病人联系方式varchar(50),病人家庭住址varchar(50),病房号int,病床号int,主治医师编号int,住院日期datetime,出院日期datetime)create table 医生(医生编号int primary key,职称varchar(10),医生姓名varchar(30),医生性别varchar(5),医生年龄int,医生联系方式varchar(50),医生家庭住址varchar(50),)create table 护士(护士编号int primary key,护士姓名varchar(30),护士性别varchar(5),护士年龄int,护士联系方式varchar(50),护士家庭住址varchar(50),)create table 病房(病房号int primary key,科室名varchar(30),病区varchar(10),病床数int)create table 科室(科室名varchar(30) primary key,主任编号int,护士长编号int)create table 诊断(住院号int,医生编号int,诊断varchar(60),诊断时间datetime,primary key(住院号,医生编号,诊断时间)create table 医生工龄(科室名varchar(30),医生编号int,工龄int,primary key(科室名,医生编号)create table 护士工龄(科室名varchar(30),护士编号int,工龄int,primary key(科室名,护士编号)create table 护理(住院号int,护士编号int,护理时间datetime,primary key(住院号,护士编号)3、 添加外键约束ALTER TABLE 病人ADD CONSTRAINT b_b FOREIGN KEY (病房号) REFERENCES 病房(病房号)ALTER TABLE 病房ADD CONSTRAINT b_k FOREIGN KEY (科室名)REFERENCES 科室(科室名)ALTER TABLE 病人ADD CONSTRAINT b_z FOREIGN KEY (主治医师编号)REFERENCES 医生(医生编号)ALTER TABLE 科室ADD CONSTRAINT k_y FOREIGN KEY (主任编号) REFERENCES 医生(医生编号)ALTER TABLE 科室ADD CONSTRAINT k_h FOREIGN KEY (护士长编号)REFERENCES 护士(护士编号)通过执行DDL语句可以得到各表之间的数据关系图,如图6所示。图6 满足BC范式的数据关系图七、 SQL部分(1)列出所有处于不同科室,但具有相同出院日期的病人,要求输出病人的住院号和姓名 答:select a.住院号,a.病人姓名,b.住院号,b.姓名 from 病人 a join 病人 b on a.科室!=b.科室 where datediff(day,a.出院日期,b.出院日期)=0(2)输出至少有十名住院日期在2011-11-11日后男性病人的科室 答:select 科室 from ( select 科室from 病人 where 病人性别=男 and datediff(day,住院日期,2011-11-11)=10(3)列出所有姓白的护士姓名 答:select 护士姓名 from 护士 where 护士姓名 like 白%(4)以住院号升序、病床号降序输出病人的所有记录 答:select * from 病人 order by 住院号,病床号 desc(5)输出未出院病人中最早的和最晚的住院日期答:select max(住院日期),min(住院日期) from ( select 住院日期from 病人where 出院日期 is null)(6)显示医生人数多于5人的科室 答: select 科室名 from 医生 join 科室 on 医生.医生编号 = 科室.医生编号 group by(科室名) having count(科室名)5(7)输出已经出院的病人的主治医师 答:select 主治医师 from 病人 where 出院日期 is not null(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论