医院病例数据库管理系统设计_第1页
医院病例数据库管理系统设计_第2页
医院病例数据库管理系统设计_第3页
医院病例数据库管理系统设计_第4页
医院病例数据库管理系统设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、题目:医院病例数据库管理系统学 院 管理与经济学部专 业 工程管理 年 级 2012级 成 员 王艳旭 (一班) 3012209254 需求分析,E-R图,数据修改,数据插入杨志东( 二班) 3012209285逻辑设计,物理设计,数据表、索引建立谢中仁 (二班) 3012209279视图建立,存储过程的建立 2013年12月16日目录: 一、需求分析····················

2、83;·······························31) 医生信息管理2) 病人病例和病房管理 (1)数据检索 (2)数据插入 (3)数据修改 (4)数据统计与查询二、概念设计········

3、············································4 (1)医生实体 (2)职位实体 (3)病人实体 (4)病房实体 (5

4、)全局E-R图三、逻辑设计················································

5、;····6四、物理设计············································

6、3;·······6五、系统实现·········································

7、83;··········8 1、数据库的建立 2、数据表的建立 3、数据的输入 4、索引的创建 5、视图的创建 6、存储过程的创建一、 需求分析实现某医院病例数据库管理系统,系统使用对象是系统管理员,医生和病人,要求完成以下工作:1) 医生信息管理,包括l 系统管理员进行新医生到岗、现有医生离职处理l 系统管理员可以修改任何医生的所有信息,如姓名、年龄、职称、科室l 医生可以查阅自己的信息并修改其中某些基本信息,如联系方式等2) 病人病例和病房管理l 医生可以添加新病人,修改或删除已有病人的信

8、息l 医生可以添加新的病例记录,形成病人治疗日志。l 管理员可以任意查询所有医生或病人的情况和病例l 管理员可以统计任意医生的病人或者任意病人的病例l 病人能查看自己的基本信息和病例信息(1) 数据检索i. 系统管理员查询所有医生的情况输入:医生编号输出:姓名、年龄、联系方式、职称、科室。ii. 系统管理员查询所有病人的基本信息输入:病号输出:姓名、年龄、联系方式、地址。iii. 系统管理员查询所有病人的病例输入:病号输出:姓名、诊断结果、就诊日期、病房号、床号、入住日期、出院日期。iv. 医生查询自己的信息输入:医生编号输出:姓名、年龄、联系方式、职称、科室。v. 医生查询病人的病例输入:病

9、号输出:姓名、诊断结果、就诊日期、病房号、床号、入住日期。vi. 病人查询自己的基本信息输入:病号输出:姓名、年龄、联系方式、地址。vii. 病人查询自己的病例输入:病号输出:姓名、诊断结果、就诊时间、病房号、床号、入住日期。(2) 数据插入i. 系统管理员插入医生数据。ii. 医生插入病人数据。(3) 数据修改i. 系统管理员修改所有医生的信息:医生编号、姓名、年龄、联系方式、职称、科室、任职时间。ii. 医生修改自己的部分信息:联系方式。iii. 医生修改病人的信息:姓名、年龄、联系方式、地址、诊断结果、就诊日期、病房号、床号、入住日期。(4) 数据统计与查询i. 管理员:显示所有医生的情

10、况。ii. 管理员:显示所有病人的情况。iii. 管理员:显示所有医生的全部病人。iv. 管理员:显示所有病人的全部病例。二、 概念设计概念设计的任务是,在需求分析中产生的需求说明的基础上,抽象出满足应用需求的用户的信息结构,即概念模型。经需求分析,抽象出以下ER模型。(1) 医生实体(图1)(2) 职位实体(图2)(3) 病人实体(图3)(4)病房实体(图4)(5)全局ER图(图5)三、逻辑设计逻辑设计阶段将概念设计阶段产生的E-R图转换成RDBMS所支持的数据模型,即关系模型。根据图5的E-R图转换为以下关系模式:医生(医生编号,姓名,年龄,联系方式,职位编号,任职时间)职位(职位编号,职

11、称,所属科室)病人(病人编号,姓名,年龄,联系方式,住址)病房(病房号,病床数,病房联系电话)入住(病人编号,病房号,床位号,入住时间),主键为(病人编号,病房号)就诊(病人编号,医生编号,诊断结果,就诊日期),主键为(病人编号,医生号)查房(医生编号,病房号,值班时间),主键为(医生编号,病房号)其中带有下划直线的属性为主键,带有下划波浪线的属性为外键。以上关系模式均满足3NF。四、物理设计物理设计阶段将关系模式设计为具体的RDBMS中的数据表。根据以上关系模式构建的数据表结构如表17所示。表1 医生表结构字段名 类型 特殊属性医生编号 char(4) PRIMARY KEY姓名 char(

12、10) NOT NULL年龄 char(10) NOT NULL联系方式 char(20) NOT NULL职位编号 char(4) FOREIGN KEY任职时间 char(20) NOT NULL表2 职位表结构字段名 类型 特殊属性职位编号 char(4) PRIMARY KEY职称 char(10) NOT NULL所属科室 char(10) 表3 病人表结构字段名 类型 特殊属性病人编号 char(4) PRIMARY KEY姓名 char(10) NOT NULL年龄 char(10) NOT NULL联系方式 char(20) NOT NULL住址 varchar(30)表4 病

13、房表结构字段名 类型 特殊属性病房号 char(4) PRIMARY KEY病床数 int病房联系方式 char(11) 表5 入住表结构字段名 类型 特殊属性病人编号 char(4) PRIMARY KEY,FOREIGN KEY病房号 char(4) PRIMARY KEY,FOREIGN KEY床位号 char(4) NOT NULL入住时间 char(20) NOT NULL表6 就诊表结构字段名 类型 特殊属性病人编号 char(4) PRIMARY KEY,FOREIGN KEY医生编号 char(4) PRIMARY KEY,FOREIGN KEY诊断结果 varchar(100

14、) NOT NULL就诊时间 char(20)表7查房表结构字段名 类型 特殊属性医生编号 char(4) PRIMARY KEY,FOREIGN KEY病房号 char(4) PRIMARY KEY,FOREIGN KEY值班时间 char(20) NOT NULL5、 系统实现1. 数据库的建立Create database 医院病例On primary(name=医院病例_data,filename='E:医院病例data.mdf')Log on(name=医院病例_log,filename='E:医院病例log.ldf')2. 数据表的建立Use 医院病

15、例GoCreate table 职位( 职位编号 char(4) PRIMARY KEY,职称 char(10) NOT NULL,所属科室 char(10)Create table 医生(医生编号 char(4) PRIMARY KEY,姓名 char(10) NOT NULL,年龄 char(10) NOT NULL,联系方式 char(20) NOT NULL,职位编号 char(4),任职时间 char(20) NOT NULL,FOREIGN KEY(职位编号)references 职位(职位编号)Create table 病人(病人编号 char(4) PRIMARY KEY,姓名

16、 char(10) NOT NULL,年龄 char(10) NOT NULL,联系方式 char(20) NOT NULL,住址 varchar(30)Create table 病房(病房号 char(4) PRIMARY KEY,病床数 int,病房联系方式 char(11)Create table 入住(病人编号 char(4),病房号 char(4),床位号 char(4) NOT NULL,入住时间 char(20) NOT NULL,PRIMARY KEY(病人编号,病房号),FOREIGN KEY(病人编号)references 病人(病人编号),FOREIGN KEY(病房号)

17、references 病房(病房号)Create table 就诊(病人编号 char(4), 医生编号 char(4),诊断结果 varchar(100) NOT NULL,就诊时间 char(20),PRIMARY KEY(病人编号, 医生编号),FOREIGN KEY(病人编号)references 病人(病人编号),FOREIGN KEY(医生编号)references 医生(医生编号),)Create table 查房(医生编号 char(4),病房号 char(4),值班时间 char(20) NOT NULL,PRIMARY KEY(医生编号,病房号),FOREIGN KEY(医

18、生编号)references 医生(医生编号),FOREIGN KEY(病房号)references 病房(病房号)3. 数据的输入 Insert into 职位Values ('J1', '眼科医生', '眼科室')Insert into 职位Values ('J2', '内科医生', '内科室')Insert into 医生Values ('D001','李明','45','139*1111', 'J1', '

19、;2005.03.09')Insert into 医生Values ('D002', '张强', '50', '139*2222', 'J2', '2001.12.04')Insert into 医生Values ('D003', '陈龙', '54', '139*3333', 'J1', '2000.08.17')Insert into 医生Values ('D004', 

20、9;刘红', '36', '139*4444', 'J2', '2011.06.13')Insert into 病人Values ('P001', '张三', '30', '159*1111', '北京市')Insert into 病人Values ('P002', '李四', '39', '159*2222', '天津市')Insert into 病人Values

21、 ('P003', '王五', '44', '159*3333', '廊坊市')Insert into 病人Values ('P004', '赵六', '27', '159*4444', '唐山市')Insert into 病房Values ('R101', '4', '#39;)Insert into 病房Values ('R102', '2&#

22、39;, '#39;)Insert into 入住Values ('P003', 'R101', '1', '2013.08.10')Insert into 入住Values ('P004', 'R102', '2', '2013.12.09')Insert into 就诊Values ('P001', 'D001', '白内障', '2013.06.11')Insert

23、 into 就诊Values ('P002', 'D003', '青光眼', '2013.07.22')Insert into 就诊Values ('P003', 'D002', '阑尾炎', '2013.08.10')Insert into 就诊Values ('P004', 'D004', '胃出血', '2013.12.09')Insert into 查房Values ('D001'

24、, 'R101','2013.12.09')Insert into 查房Values ('D002', 'R102','2013.12.10')4. 索引的创建(1)医生表:按医生任职时间降序排列Create index 医生_任职时间 on 医生(任职时间 desc)(2)病人表:按病人编号升序排列Create index 病人_病人编号 on 病人(病人编号)(3)职位表:按职位编号升序排列Create index 职位_职位编号 on 职位(职位编号)(4)病房表:按病房号升序排列Create index 病

25、房_病房号 on 病房(病房号)5.视图的创建医生情况视图:显示所有医生的情况create view 医生情况视图as select 医生.医生编号,姓名,年龄,联系方式,职位.职称,所属科室from 医生 join 职位 on 医生.职位编号 = 职位.职位编号病人情况视图:显示所有病人的情况Create view 病人情况视图asSelect *From 病人医生与病人视图:显示任意医生的全部病人Create view 医生与病人视图asSelect 医生.姓名 as 医生姓名,病人.姓名 as 病人姓名From 就诊 join 医生 on 医生.医生编号=就诊.医生编号Join 病人 o

26、n 病人.病人编号=就诊.病人编号病例视图:显示病人病例create view 病例视图asSelect 病人.姓名,就诊.*From 病人 join 就诊 on 病人.病人编号=就诊.病人编号6.存储过程的创建(1)检索数据管理员对医生检索:输入医生编号,返回医生的姓名年龄联系方式职称科室Create procedure 管理员对医生检索(yno int=null)AsIf yno is nullBeginPrint '请输入医生编号'EndElse BeginSelect 医生.年龄,姓名,联系方式,职位.职称,所属科室From 医生 join 职位 on 医生.职位编号=

27、职位.职位编号Where yno=医生.医生编号End管理员查询病人基本信息检索:输入病人编号,返回病人的姓名、年龄、联系方式、地址Create procedure 管理员查询病人基本信息检索(Bno int=null)As If Bno is null Begin Print'请输入病人编号'End Else Begin Select 病人.姓名,年龄,联系方式,住址From 病人End病例检索:输入病人编号,返回姓名、诊断结果、就诊日期、病房号、床号、入住日期Create procedure 病例检索(Bno2 int=null)As If Bno2 is null Beg

28、inPrint'请输入病人编号来查询病例'EndElseBeginSelect 病人.病人编号,姓名,就诊.诊断结果,就诊时间,入住.病房号,床位号,入住时间From 病人 join 就诊 on 病人.病人编号=就诊.病人编号 Join 入住 on 入住.病人编号=病人.病人编号End医生对个人信息检索:输入医生编号,返回医生的姓名年龄联系方式职称科室Create procedure 医生对个人信息检索 (yno int=null)AsIf yno is nullBeginPrint'请输入医生编号'EndElse BeginSelect 医生.年龄,姓名,联系

29、方式,职位.职称,所属科室From 医生 join 职位 on 医生.职位编号=职位.职位编号Where yno=医生.医生编号End医生查询病人病例检索:输入病人编号,返回姓名、诊断结果、就诊日期、病房号、床号、入住日期Create procedure 医生查询病人病例检索(Bno2 int=null)As If Bno2 is null BeginPrint'请输入病人编号来查询病例'EndElseBeginSelect 病人.病人编号,姓名,就诊.诊断结果,就诊时间,入住.病房号,床位号,入住时间From 病人 join 就诊 on 病人.病人编号=就诊.病人编号 Joi

30、n 入住 on 入住.病人编号=病人.病人编号End病人查询病人基本信息检索:输入病人编号,返回病人的姓名、年龄、联系方式、地址Create procedure 病人查询病人基本信息检索(Bno int=null)As If Bno is null Begin Print'请输入病人编号'End Else Begin Select 病人.姓名,年龄,联系方式,住址From 病人End病人查询病人病例检索:输入病人编号,返回姓名、诊断结果、就诊日期、病房号、床号、入住日期Create procedure 病人查询病人病例检索(Bno2 int=null)As If Bno2 is null BeginPrint

温馨提示

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

最新文档

评论

0/150

提交评论