住院部数据库系统.doc_第1页
住院部数据库系统.doc_第2页
住院部数据库系统.doc_第3页
住院部数据库系统.doc_第4页
住院部数据库系统.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

内蒙古科技大学课程设计说明书内蒙古科技大学本科生课程设计说明书题 目:数据库课程设计 学生姓名: 学 号:1276807432专 业:计算机班 级:计4班指导老师: 目录内蒙古科技大学I前 言1第一章 需求分析21.1 业务分析2第二章 概念设计42.1局部E-R模型4第三章 逻辑设计73.1 关系模型73.2 逻辑结构8第四章 数据库的实现114.2数据装载16第五章 数据库的使用205.1 数据库的查询20总结27II前 言住院部管理系统(Hospital Information System,HIS)在国际学术界已经被公认为新兴的医学信息学(Medical Information)的重要分支。美国该领域的著名教授Morris Collen于1988年曾著文为医院信息系统下了如下定义:利用电子计算机和通讯设备,为医院所属各部门提供病人诊疗信息和行政管理信息的收集、存储、处理、提取和数据交换的能力,并满足所有授权用户的功能需求。4经过多年的发展,如今类似医院信息系统这样的企业级应用软件不仅能提供静态的信息和交互式的动态信息服务,还能提供应用程序的基础设施服务(如安全、事务、传输、缓冲、生存期管理等),目前这样的软件所采用N层结构进行构建,N层结构的优点是每一层可以被单独改变,而不影响到其它层,降低了部署与维护的开销。 建立一个高效可靠的住院业务管理系统,不仅可以在一定程度上减轻医务人员的劳动强度,提高工作效率和工作质量,而且可以更及时、准确和有效地分析统计各种临床数据及管理数据,供上级主管部门作出科学的管理决策,促进医院管理水平的进一步提高。而在整个住院业务管理系统,住院数据库的设计是必不可少的。该数据库用于存储、管理病人本身的信息和病历信息,及住院期间的费用信息,同时对于医院职工的信息管理和各种药品、设备的管理等。限于水平,该系统有很多欠妥之处,敬请老师和同学们批评指正。第一章 需求分析1.1 业务分析本系统的最终用户为医院住院部,我们根据从医院方面取得的图表资料、文字资料以及其他细节方面的信息,根据我们日常生活中的经验,根据我们所做的其他询问和调查,得出用户的下列实际要求:病人的信息需求:包括病人本身的信息和病历信息,及住院期间的费用信息等。住院部工作人员的工作信息需求:除包括工作人员自身状况信息、月薪等信息外,还要有医生正在给多少病人看病的医生工作信息、护士值班情况信息,以及这些安排是否合理以便进行人事管理。药品信息需求:尤其是住院部药品仓库库存状况,药品使用状况,药品计量等信息。住院部内各种设施使用状况信息:尤其是床位使用状况信息,还有其他设备(氧气瓶、手术台等)使用情况的信息。住院部下有相应的医生、护士,完成所承担的医疗工作,医生又有主治医师,普通医师之分。当病人接到医生的建议需住院治疗或接到医院的入院通知单后,需到住院处办理入院手续,需要登记基本信息,并交纳一定数额的预交款或住院押金。住院手续办理妥当之后,由病区科室根据病人所就诊的医科给病人安排床位,将病人的预交款信息录入病进行相应的维护和管理,病区科室还应按照医生开出的医嘱执行,医嘱的主要内容包括病人的用药,检查申请或检验申请。病区科室应将医嘱中病人用药的部分分类综合统计,形成药品申领单,统一向药库领药,然后将药品按时按量发给住院病人,需对发药情况进行记录,并对所领取的药品进行统一的管理。药库对于药品申领单的处理和对药品的管理,检查科室和检验科室对于申请、检查以及相应的管理工作与门诊中的部分相同。当病人可以出院时,应先在病区科室进行出院登记,办理出院,然后在住院处办理出院手续,即可出院。28第二章 概念设计2.1局部E-R模型图2-1-1病人图 2-1-2 医生图2-1-3 护士图2-1-4 病床图 2-1-5 药品图2-1-6 医生值班图2-1-7 护士值班 将局部E-R模型综合成全局E-R模型,并进行优化,形成最终的E-R模型。如下图所示。图2-1-8全局E-R模型第三章 逻辑设计3.1 关系模型 关系模型的逻辑结构是一组关系模式的集合。将E-R图转换为关系模型实际上就是将实体型、实体型的属性和实体之间的联系转换为一组关系模式,这种转换需要遵守以下原则:1. 一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的标示符就是关系的键。2. 对于实体之间的联系有以下几种情况:(1) 一个1:1的联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。(2) 一个1:n的联系可以转换成为一个独立的关系模式,也可以与n端对应的关系模式合并。(3) 一个m: n的联系转换为一个关系模式。(4) 3个或者3个以上的实体之间的一个多元联系可以转换为一个关系模式。(5) 具有相同主键的关系模式可以合并。 按照上述的原则,根据设计好的E-R图,可以将其转换为以下一组关系模式,其中关系模式的主键用下横线标出。医生表(医生工号,姓名,性别,年龄,职称,工资,科室编号) 医生工号-姓名,医生工号-性别,医生工号-年龄,医生工号-职称,医生工号-工资,医生工号-科室编号,姓名,性别,年龄,职称,工资,科室编号等非主属性不传递依赖于医生表的主键,故医生表是满足第三范式。护士表(护士工号,姓名,性别,年龄,职称,工资,科室编号,手术室编号) 护士工号-姓名,护士工号-性别,护士工号-年龄,护士工号-职称,护士工号-工资,护士工号-科室编号,护士工号-手术室编号,姓名,性别,年龄,职称,工资,科室编号,手术室编号等非主属性不传递依赖于护士表的主键,故护士表是满足第三范式。病床表(病床编号,床位号,类型,空床标志)(病床编号,床位号)-类型,(病床编号,床位号)-空床标志,类型,空床标志等非主属性不传递依赖于病床表的主键,故病床表是满足第三范式。显然以下各表的每一个非主性不传递依赖于该表的主键,故以下各表是均满足第三范式。药品(药品编号,名称,规格,类别,适用症状,副作用,单价,安全库存量,库存量)处方(医生工号,药品编号,费用)医生值班表(医生工号,星期一,星期二,星期三,星期四,星期五,星期六,星期日)护士值班表(护士工号,星期一,星期二,星期三,星期四,星期五,星期六,星期日)床位管理(护士工号,床位号,空床标志)病人安排(病人编号,床位号,医生工号,时间)3.2 逻辑结构表3-2-1医生表字段名类型大小约束是否允许为空医生工号nchar6主键否医生姓名nchar20是性别nchar2男或女是年龄int150是职称nchar20是工资float是表3-2-2护士表字段名类型大小约束是否允许为空护士工号nchar6主键否护士姓名nchar20是性别nchar2男或女是年龄int150是职称nchar20是工资float是 表3-2-3床位表字段名类型大小约束是否允许为空床位号int主键否类型nchar20是空床标志bit是表3-2-4药品字段名类型大小约束是否允许为空药品编号nchar10主键否药品名称nchar30是类别nchar10是适用症状nchar50是副作用nchar50是安全库存量int是单价nchar4库存量int是表3-2-5 处方表字段名类型大小约束是否允许为空药品编号nchar10外键否医生工号int6外键否费用nchar50是表3 -2-6医生值班表字段名类型大小约束是否允许为空医生工号nchar6主键否星期一bit是星期二bit是星期三bit是星期四bit是星期五bit是星期六bit是星期日bit是表3 -2-7护士值班表字段名类型大小约束是否允许为空护士工号nchar6主键否星期一bit是星期二bit是星期三bit是星期四bit是星期五bit是星期六bit是星期日bit是表3-2-8床位管理表字段名类型大小约束是否允许为空护士工号nchar6主键否床位号intint主键否空床位标志bit表3-2-8病人安排字段名类型大小约束是否允许为空病人编号nchar6主键否床位号int主键否医生工号nchar6主键否时间datetime第四章 数据库的实现4.1创建数据库 使用SQL server 2008的sql语句创建住院部数据库系统,如下所示。create table 病人表(病人编号 char(4) not null, 病人姓名 char(8)not null, 性别 char(4) not null, 年龄 char(10)not null,入院时间 char(10)not null,出院时间 char(10)not null,primary key(病人编号);create table 医生表( 医生工号 nchar(6) not null, 医生姓名 nchar(20) not null, 性别 nchar(2), 年龄 int, 职称 nchar(20) primary key(医生工号);create table 护士表(护士工号 nchar(4),姓名 nchar(10),年龄 int,性别 nchar(2),职称 nchar(10),工资 float,primary key(护士工号),);create table 床位表(床位号 int, 类型 nchar(20), 空床位标志 bit, primary key(床位号),);create table 药品表(药品编号 nchar(10), 药品名称 nchar(30), 规格 nchar(10), 类别 nchar(50),适用症状 nchar(50), 副作用 nchar(4),单价 nchar(4),库存量 int, primary key(药品编号),);create table 护士值班表(护士工号 nchar(4),星期一 bit,星期二 bit,星期三 bit,星期四 bit,星期五 bit,星期六 bit,星期日 bit,primary key(护士工号),foreign key(护士工号)references 护士表(护士工号),)create table 医生值班表(医生工号 nchar(6) not null,星期一 bit,星期二 bit,星期三 bit,星期四 bit,星期五 bit,星期六 bit,星期日 bit,primary key(医生工号),foreign key(医生工号)references 医生表(医生工号)create table 处方表(药品编号 nchar(10),医生工号 nchar(6) not null, 费用 nchar(6), primary key(药品编号,医生工号),foreign key(药品编号)references 药品表(药品编号),foreign key(医生工号)references 医生表(医生工号)create table 床位管理表(护士工号 nchar(4), 床位号 int, 空床位标志 bit,primary key(护士工号,床位号),foreign key(护士工号)references 护士表(护士工号),foreign key(床位号)references 床位表(床位号)create table 病人安排表(病人编号 char(4) not null, 床位号 int,医生工号 nchar(6) not null, 时间 datetime,primary key(病人编号,床位号,医生工号),foreign key(病人编号)references 病人表(病人编号),foreign key(床位号)references 床位表(床位号),foreign key(医生工号)references 医生表(医生工号),)图表41-1医生表图表41-2药品表图表41-3护士表图表41-4护士值班表图表41-5处方表图表41-6床位表图表41-7医生值班表图表41-8病人表图表41-9床位管理表图表41-10病人安排表图表41-11数据库关系图4.2数据装载 使用SQL server 2005的图形化界面向住院部数据库系统输入数据,如下图所示。图 4-2-1医生表图4-2-2 病人表图4-2-3床位表图4-2-4药品表图4-2-5处方表 图4-2-6病人安排表图4-2-7 医生值班表图4-2-8护士值班表图 4-2-9 病人安排表图 4-2-10床位管理表第五章 数据库的使用5.1 数据库的查询 使用SQL语句进行简单查询,如查询姓名为吴孟达的病人的信息,SQL语句及查询的结果如图5-1-1所示。图 5-1-1 简单查询 多表查询是利用表与表之间的相同的属性列的相关性来查询数据的,例如查询姓名叫吴孟达的病人的病人编号和管理其的护士编号,是通过【病人】表中的“病人编号”与【床位管理】表中的“护士编号”进行连接的。SQL语句及执行的结果如图5-1-2所示。图5-1-2 多表查询 在SELECT语句查询中,可以用GROUP BY子句对结果集进行分类汇总。例如,查询【医生表】表中各男女的总人数,SQL语句及执行的结果如图5-1-3所示。图5-1-3 分组查询 HAVING子句查询类似WHERE子句查询,不同的是WHERE子句查询是限定于行的查询,而HAING子句查询是限定于对统计组的查询,一般与GROUP BY一起使用。例如,查询【医生表】表中性别人数大于2人的医生总人数,SQL语句及执行的结果如图5-1-4所示。图5-1-4 统计查询 IN关键字是用来判定指定的列值是否包含在已定义在表中或者另外一个表中。通过使用关键字将原表中的列值与返回的子查询结果集进行比较,若列值与子查询的结果集一致或存在相匹配的数据行,则最终的查询结果集中就包含该数据行。例如查询【医生表】表中与“王军”在同一医生工号的信息,SQL语句及执行的结果如图5-1-5所示。图5-1-5 使用IN关键字查询 EXISTSA关键字的作用是在WHERE子句中测试子查询返回的数据行是否存在,但子查询不会返回任何数据行,只产生逻辑值“true”或“false”。例如,在【医生表】表中查询医生姓名为“王军”的医生的“姓名”,“年龄”,SQL语句及执行的结果如图5-1-6所示。图5-1-6 使用EXISTS关键字查询5.2 数据库是更新SQL语句中通常使用INSERT语句在数据表中插入新数据,INSERT语句可以一次插入一条或多条记录。例如,当有新的病人入院时,需在【住院表】表中插入新的数据。SQL语句及执行的结果如图5-2-1所示。图5-2-2 插入数据 在SQL语句中,对数据的更新用UPDATE语句来实现,它可以实现对某一数据表中一行、或多行以及所有行的更新。当新病人入院时,应给他安排病床,并将【病人表】表中名为小李子的性别改为女。SQL语句及执行的结果如图5-2-3所示。图5-2-3 更新数据 随着数据的不断更新和变动,可能会存在一些无用的或者过时的数据,这些数据不仅占用数据库空间,而且对于数据的查询和更新等操作也带来了不必要的麻烦,所有对于这些数据应该及时将其删除。例如,将【病人表】表排】表中的病人编号为1008数据删除,SQL语句及执行的结果如图5-1-9所示。图5-2-4数据删除5.3 存储过程 存储过程是一组为了完成特定功能的SQL语句集合,它经编译后存储在数据库中,用户通过指定存储过程的名称并给出相应的参数就可以对其进行执行。例如,在【处方】表中创建存储,查询药品的处方,SQL语句及执行的结果如图5-3-1和图5-3-2所示。图 5-3-1 创建存储过程图 5-3-2 执行“proc_查询处方”存储过程5.4 触发器 触发器基于一个表创建,但是可以针对多个表进行操作。所以触发器可以用

温馨提示

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

最新文档

评论

0/150

提交评论