医院病例数据库管理系统设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

题目:医院病例数据库管理系统学院管理与经济学部专业工程管理年级2012级成员王艳旭(一班)54需求分析,E-R图,数据修改,数据插入杨志东(二班)逻辑设计,物理设计,数据表、索引建立谢中仁(二班)视图建立,存储过程的建立2013年12月16日目录:一、需求分析····················································31)医生信息管理2)病人病例和病房管理(1)数据检索(2)数据插入(3)数据修改(4)数据统计与查询二、概念设计····················································4(1)医生实体(2)职位实体(3)病人实体(4)病房实体(5)全局E-R图三、逻辑设计····················································6四、物理设计····················································6五、系统实现····················································81、数据库的建立2、数据表的建立3、数据的输入4、索引的创建5、视图的创建6、存储过程的创建一、需求分析实现某医院病例数据库管理系统,系统使用对象是系统管理员,医生和病人,要求完成以下工作:1)医生信息管理,包括系统管理员进行新医生到岗、现有医生离职处理系统管理员可以修改任何医生的所有信息,如姓名、年龄、职称、科室医生可以查阅自己的信息并修改其中某些基本信息,如联系方式等2)病人病例和病房管理医生可以添加新病人,修改或删除已有病人的信息医生可以添加新的病例记录,形成病人治疗日志。管理员可以任意查询所有医生或病人的情况和病例管理员可以统计任意医生的病人或者任意病人的病例病人能查看自己的基本信息和病例信息(1)数据检索i.系统管理员查询所有医生的情况输入:医生编号输出:姓名、年龄、联系方式、职称、科室。ii.系统管理员查询所有病人的基本信息输入:病号输出:姓名、年龄、联系方式、地址。iii.系统管理员查询所有病人的病例输入:病号输出:姓名、诊断结果、就诊日期、病房号、床号、入住日期、出院日期。iv.医生查询自己的信息输入:医生编号输出:姓名、年龄、联系方式、职称、科室。v.医生查询病人的病例输入:病号输出:姓名、诊断结果、就诊日期、病房号、床号、入住日期。vi.病人查询自己的基本信息输入:病号输出:姓名、年龄、联系方式、地址。vii.病人查询自己的病例输入:病号输出:姓名、诊断结果、就诊时间、病房号、床号、入住日期。(2)数据插入i.系统管理员插入医生数据。ii.医生插入病人数据。(3)数据修改i.系统管理员修改所有医生的信息:医生编号、姓名、年龄、联系方式、职称、科室、任职时间。ii.医生修改自己的部分信息:联系方式。iii.医生修改病人的信息:姓名、年龄、联系方式、地址、诊断结果、就诊日期、病房号、床号、入住日期。(4)数据统计与查询i.管理员:显示所有医生的情况。ii.管理员:显示所有病人的情况。iii.管理员:显示所有医生的全部病人。iv.管理员:显示所有病人的全部病例。二、概念设计概念设计的任务是,在需求分析中产生的需求说明的基础上,抽象出满足应用需求的用户的信息结构,即概念模型。经需求分析,抽象出以下E—R模型。(1)医生实体(图1)(2)职位实体(图2)(3)病人实体(图3)(4)病房实体(图4)(5)全局E—R图(图5)三、逻辑设计逻辑设计阶段将概念设计阶段产生的E-R图转换成RDBMS所支持的数据模型,即关系模型。根据图5的E-R图转换为以下关系模式:医生(医生编号,姓名,年龄,联系方式,职位编号,任职时间)职位(职位编号,职称,所属科室)病人(病人编号,姓名,年龄,联系方式,住址)病房(病房号,病床数,病房联系电话)入住(病人编号,病房号,床位号,入住时间),主键为(病人编号,病房号)就诊(病人编号,医生编号,诊断结果,就诊日期),主键为(病人编号,医生号)查房(医生编号,病房号,值班时间),主键为(医生编号,病房号)其中带有下划直线的属性为主键,带有下划波浪线的属性为外键。以上关系模式均满足3NF。四、物理设计物理设计阶段将关系模式设计为具体的RDBMS中的数据表。根据以上关系模式构建的数据表结构如表1~7所示。表1医生表结构字段名类型特殊属性五、系统实现1.数据库的建立Create病例database医院Onprimary例(name=医院病_data,filename='E:\\医院病例data.mdf')Logon(name=医院病例_log,filename='E:\\医院病例log.ldf')2.数据表的建立Use医院病例GoCreatetable职位(职位编号char(4)PRIMARYKEY,职称char(10)NOTNULL,所属科室char(10))Createtable医生(医生编号char(4)PRIMARYKEY,医生编号char(4)PRIMARYKEY姓名char(10)NOTNULL年龄char(10)NOTNULL联系方式char(20)NOTNULL职位编号char(4)FOREIGNKEY任职时间char(20)NOTNULL表2职位表结构字段名类型特殊属性职位编号char(4)PRIMARYKEY职称char(10)NOTNULL所属科室char(10)表3病人表结构字段名类型特殊属性病人编号char(4)PRIMARYKEY姓名char(10)NOTNULL年龄char(10)NOTNULL联系方式char(20)NOTNULL住址varchar(30)表4病房表结构字段名类型特殊属性病房号char(4)PRIMARYKEY病床数int病房联系方式char(11)表5入住表结构字段名类型特殊属性病人编号char(4)PRIMARYKEY,FOREIGNKEY病房号char(4)PRIMARYKEY,FOREIGNKEY床位号char(4)NOTNULL入住时间char(20)NOTNULL表6就诊表结构字段名类型特殊属性病人编号char(4)PRIMARYKEY,FOREIGNKEY医生编号char(4)PRIMARYKEY,FOREIGNKEY诊断结果varchar(100)NOTNULL就诊时间char(20)表7查房表结构字段名类型特殊属性医生编号char(4)PRIMARYKEY,FOREIGNKEY病房号char(4)PRIMARYKEY,FOREIGNKEY值班时间char(20)NOTNULL姓名char(10)NOTNULL,年龄char(10)NOTNULL,联系方式char(20)NOTNULL,职位编号char(4),任职时间char(20)NOTNULL,FOREIGNKEY(职位编号)references职位(职位编号))Createtable病人(病人编号char(4)PRIMARYKEY,姓名char(10)NOTNULL,年龄char(10)NOTNULL,联系方式char(20)NOTNULL,住址varchar(30))Createtable病房(病房号char(4)PRIMARYKEY,病床数int,病房联系方式char(11))Createtable入住(病人编号char(4),病房号char(4),床位号char(4)NOTNULL,入住时间char(20)NOTNULL,PRIMARYKEY(病人编号,病房号),FOREIGNKEY(病人编号)references病人(病人编号),FOREIGNKEY(病房号)references病房(病房号))Createtable就诊(病人编号char(4),医生编号char(4),诊断结果varchar(100)NOTNULL,就诊时间char(20),PRIMARYKEY(病人编号,医生编号),FOREIGNKEY(病人编号)references病人(病人编号),FOREIGNKEY(医生编号)references医生(医生编号),)Createtable查房(医生编号char(4),病房号char(4),值班时间char(20)NOTNULL,PRIMARYKEY(医生编号,病房号),FOREIGNKEY(医生编号)references医生(医生编号),FOREIGNKEY(病房号)references病房(病房号))3.数据的输入Insertinto职位Values('J1','眼科医生','眼科室')Insertinto职位Values('J2','内科医生','内科室')Insertinto医生Values('D001','李明','45','139****1111','J1',)Insertinto医生Values('D002','张强','50','139****2222','J2',)Insertinto医生Values('D003','陈龙','54','139****3333','J1',)Insertinto医生Values('D004','刘红','36','139****4444','J2',)Insertinto病人Values('P001','张三','30','159****1111','北京市')Insertinto病人Values('P002','李四','39','159****2222','天津市')Insertinto病人Values('P003','王五','44','159****3333','廊坊市')Insertinto病人Values('P004','赵六','27','159****4444','唐山市')Insertinto病房Values('R101','4',)Insertinto病房Values('R102','2',)Insertinto入住Values('P003','R101','1',)Insertinto入住Values('P004','R102','2',)Insertinto就诊Values('P001','D001','白内障',)Insertinto就诊Values('P002','D003','青光眼',)Insertinto就诊Values('P003','D002','阑尾炎',)Insertinto就诊Values('P004','D004','胃出血',)Insertinto查房Values('D001','R101',)Insertinto查房Values('D002','R102',)4.索引的创建(1)医生表:按医生任职时间降序排列Createindex医生_任职时间on医生(任职时间desc)(2)病人表:按病人编号升序排列Createindex病人_病人编号on病人(病人编号)(3)职位表:按职位编号升序排列Createindex职位_职位编号on职位(职位编号)(4)病房表:按病房号升序排列Createindex病房_病房号on病房(病房号)5.视图的创建①医生情况视图:显示所有医生的情况createview医生情况视图asselect医生.医生编号,姓名,年龄,联系方式,职位.职称,所属科室from医生join职位on医生.职位编号=职位.职位编号②病人情况视图:显示所有病人的情况Createview病人情况视图asSelect*From病人③医生与病人视图:显示任意医生的全部病人Createview医生与病人视图asSelect医生.姓名as医生姓名,病人.姓名as病人姓名From就诊join医生on医生.医生编号=就诊.医生编号Join病人on病人.病人编号=就诊.病人编号④病例视图:显示病人病例createview病例视图asSelect病人.姓名,就诊.*From病人join就诊on病人.病人编号=就诊.病人编号6.存储过程的创建(1)检索数据①管理员

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功