


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录第一章需求分析1.1医院管理系统模块图 1.2医院管理系统流程图 第二章概念结构设计2.1医生实体子E-R图2.2病人实体子E-R图2.3科室实体子E-R图2.4病房实体子E-R图2.5全局E-R图.第三章逻辑结构设计第四章物理实现 34.1 数据库的创建4.2表对象的创建与操作 4.2.1 医生表doctor创建与操作 4.2.2病人表patient创建与操作4.2.3科室表office 创建与操作 4.2.4医院病房管理系统数据表之间的关系图错误!未定义书签。4.3 视图4.4表的T-SQL语句4.5聚合函数一一分类聚合 4.6 存储过程4.7触发器第五章总结致谢参考文献 第一章需求分
2、析医院信息管理系统就是对医院的医生、病人、等信息的管理。为了方便当今我国 的医疗体制正在进行改革,需要医疗市场的进一步规范化,这就利用现代化的工具对 医院进行有效的管理,有利于提高医疗水平和服务质量,更好的服务于社会。所以我们利用SQL server 2000技术设计了此医院管理数据库系统,以利用计算机完成病人 入院后,对其基本信息、主治医师以及入住病房等信息进行数据库管理,有利于提高 入院手续的办理速度以及对医院资源管理的效率。1.1医院管理系统模块图用户登录后,进入总的模板控制块,然后根据子模板控制块的选择,进行查询、 修改、插入、删除。所以信息管理系统功能模块图设计如下:1.2医院管理系
3、统流程图医院管理的基本业务流程如图第二章概念结构设计通常,把每一类数据对象的个体称为实体,而每一类对象的集合称为“实体集”。而E R模型的主要成分是实体、联系和属性。如果用矩形框表示实体集,用带半圆的 矩形表示属性,用线段连接实体集与属性,当一个属性或属性组合指定为主码时,在 实体集与属性的连接上标记一斜线,则可以表示实体集及每个实体集涉及的属性,实 体集之间存在各种关系,通常把这种关系称为“联系”。联系有三类:一对一的联系(1: 1); 一对多的联系(1:n);多对多的联系(m:n)。例如:此医院系统中“科室”与“病人”,“科室”与“病房”,“病人”与“病房” 等之间存在的是一对多的联系(1
4、:n)个医生属于一个科室,负责多个病人的诊治, 一个科室有多个病房,多个医生,一个病房属于一个科室2.1医生实体子E-R图2.2病人实体子E-R图2.3科室实体子E-R图2.4病房实体子E-R图2.5全局E-R图第三章逻辑结构设计E-R图到关系模式的转换:用E-R图描述了医院病房系统中实体集与实体集的联系,目的以 E-R图为工具,设计 关系型的数据库,即确定应用系统所使用的数据库包含那些表,以及每个表的结构是 怎么样的。对于(1: n)联系既可单独对应一个关系模式,也可以不单独对应一个关系模式,如 果联系是单独对应一个关系模式,则由联系的各实体集的主码属性构成关系模式,n端的主码作为该关系模式
5、的主码;如果联系不单独对应一个关系模式,则由联系的属 性及1端的主码加入n端实体集对应关系模式中,主码仍是 n端的主码。本系统采用 的是单独对应一个关系模式。所以各实体的E-R图转换其关系模式的如下:医生表(工作证号,姓名,性别,职称,联系电话,出生日期)病人表(身份证号,姓名,性别,年龄,联系方式)科室表(科室号,科名,科地址,联系电话)病房表(病房号,床位号)第四章物理实现数据库是SQL Server 2000存储和管理的对象,从逻辑上看,SQL Server 2000数据库由存放数据的表以及支持这些数据库的存储、检索、安全性和完整性的对象所 组成;从物理上看,SQLServer 2000
6、物理数据库指用于存储数据对象的文件及文件组。 数据库创建有二个途径:一是通过企业管理器,二是查询语句。本医院病房信息管理系统的建立是通过查询语句建立,创建如下: 数据字典doctor字段名称字段含义数据类型是否为主键约束条件dno工作证号varchar(20)是非空dn ame姓名varchar(16)dsex性别bit默认为0birthday出生日期datetime非空tel联系电话char(20)title职称char(10)ono所属科室号varchar(16)offfic e sickro om patie n t4.1数据库的创建字段名称字段含义数据类型是否为主键约束条件ono科室号
7、varchar(16)是非空on ame科名varchar(16)address科地址varchar(16)tel联系电话char(20)是否为主键字段名称字段含义数据类型约束条件病房号非空是sno数据库 是SQLServer 2000存储 和管理的 对象 查询分析 器:create database hospital onnum床位数varchar(16) varchar(20)字段名称pno字段含义 身份证号pn ame姓名psex性别数据类型varchar(20 )varchar(16 )bit是否为主键 是birthday出生日期datetimesno病房号dno主治医生号varcha
8、r(20 ) varchar(20L结果显示窗格:约束条件 非空默认为0非空(n ame='hospital_da ta',File name='e:hospi tal.mdf,Size=5mb, Maxsize=20mb,Filegrowth=10%)Log on(n ame='hospitalog'.File name='e:hospitalog.ldfSize=2mb,Maxsize=5mb,Filegrowth=1mb)GoCREATE DATABASE正在磁盘hospital_data' 上分配 5.00 MB 的空间。 CRE
9、ATE DATABASES正在磁盘'hospital_log' 上分配 2.00 MB 的空间。4.2表对象的创建与操作建立数据库最重要的一步就是创建其中的数据表,即决定数据库包括哪些表,每 个表中的包含哪些字段,每个字段的数据类型等。创建表有二种途径,一是企业管理 创建,二是查询语句,此设计用的是第二种。对表的插入、修改和删除可用查询语句或界面操作来操作,但通过用查询语句操 作表数据更为灵活,功能更为强大。4.2.1 医生表doctor创建与操作use hospital create table doctor/* 医生表 doctor 信息的创建 */ (dno varcha
10、r(20) primary key, dn ame varchar(16), dsex bit not null default(0), birthday datetime not n ull, tel char (20), title char(10),ono varchar(16) )结果显示窗口:/*医生表doctor信息的插入*/in sert into doctor values(结果显示窗格:/*医生表doctor信息的修改*/update doctor set birthday ='1989-11-5', title='门诊医师'where dno
11、 ='00001'结果显示窗格:/*医生表doctor信息的删除*/delete doctor where dno ='00001'结果显示窗格:use hospitalcreate table patient /*仓U建病人表 patient*/(pno varchar(20) primary key, pn ame varchar(16),psex bit not null default(0), birthday datetime not n ull, tel char (20), snovarchar(16),dnovarchar(20)ono varc
12、har(16)结果显示窗格:/*病人表patient信息的插入*/Insert into patie nt values(,','李冰',1 ,1981-10-23 ', ' 301' , 00002结果显示窗格:/*病人表patient 信息的修改*/update patient set dno =254 where pno =''结果显示窗格:/*病人表patient信息的删除*/结果显示窗格:use hospitalcreate table office(ono varchar(16) primary key,on ame
13、varchar(16),address varchar(16),tel char(20)结果显示窗口:/*科室表office信息的插入*/in sert in to office values(0020''手足科, 北区6号楼,'')结果显示窗格:/*科室表office信息的修改*/'0020'结果显示窗格:/*科室表office信息的删除*/delete office where ono ='0020'结果显示窗格:/*病房表sickroom创建与操作*/create table sickroom (sno varchar(16
14、) primary key,num varchar(20)结果显示窗口:/*病房表sickroom信息的插入*/insert into sickroom values(' 304' , ' 3'结果显示窗格:/*病房表sickroom信息的修改*/update sickroom set num =5 where sno =' 304'结果显示窗格:/*病房表sickroom信息的删除*/delete sickroom where sno ='304'结果显示窗格:4.3 视图视图是由一个或多个基本表(或视图)导出的数据信息,可根据
15、用户的不同建立 不同的视图。如下三个视图以及视图的 T-SQL语句:4.3.1创建一个视图 vw1,通过该视图可以看到每个病人的身份证号,姓名,年龄,和联系电话create view vw1(身份证号,姓名,年龄,联系电话)asselect pn o,p name,year(getdate()-year(birthday),tel from patie ntselect * from vw1结果显示:create view vw2asselect * from patie ntwhere psex='1'select * from vw2create view vw3(身份证号
16、,姓名,所住病房号,所属科室名,主治医生)asselect pno,pn ame,patie nt.s no,on ame,d namefrom patie nt,doctor,sickroom,officewhere patie nt.d no=doctor.d no and patie nt.s no=sickroom.s no and office. ono=doctor.o noand year(getdate()-year(patie nt.birthday)>30 select * from vw34.4表的T-SQL语句查询是数据库的核心操作,是数据库的其他操作(如插入、修
17、改、删除等)的基 础。T-SQL语句对数据库的查询使用select语句。select语句具有灵活的使用方式和 强大的功能。如下是对医院病房数据库进行的各种查询:4.4.1 简单查询(1) select * from doctor where title='主治医师'/* 查询主治医师的信息*/结果显示窗格:(2) select * from patie nt where year(getdate()-year(birthday)<20 /*查询年龄<20病人信息*/结果显示窗格:4.4.2 模糊查询/*查询姓王的病人的所有信息*/select * from pati
18、e nt where pn ame like '王 %'4.4.3嵌套查询(1)查询所有病情属于牙科的病人的所有信息。select * from patie nt where ono in (select ono from office where on ame='牙科')(2)查询所有被张青医生主治的男病人的姓名和病情所属科室号。select pn ame, ono from patie nt where dno in(select dno from doctor where dn ame=' 张青')and psex='0'4
19、44 连接查询(1) 查询所有病情属于牙科的病人的所有信息。select * from patie nt,officewhere office. ono=patie nt. ono and on ame='牙科'(2) 查询所有被张青医生主治的男病人的姓名和病情所属科室号。select pn ame,patie nt, ono from patie nt,doctorwhere patie nt.d no=doctor.d no and psex='0' and dn ame='张青'4.5聚合函数一一分类聚合(1) 统计女病人的总人数selec
20、t 女病人人数=co un t(*) from patie ntwhere psex=1(2) 男性主治医生的人数select 主治医生的人数=cou nt(*) from doctor where dsex=0 and title='主治医师'20岁以上的男女医生人数select dsex as 性另廿,人数=count(*)from doctorwhere year(getdate()-year(birthday)>20 group by dsex4.6 存储过程在SQLServer中,存储过程是数据库对象之一,它有执行速度快、确保数据库的安全和自动完成需要预先执行的
21、任务等优点,本设计创建两个个存储过程,一个功能是创建一个存储过程prcsl,通过该存储过程可以查看所有病人的信息。另一个功能是创 建一个存储过程prcs2,通过输入医生职称,可以查看有该职称的医生人数。存储过程的创建和调用如下: 存储过程:(1) 创建一个存储过程prcsl,通过该存储过程可以查看所有病人的信息。create proc prcslasselect * from patie nt(2) 创建一个存储过程prcs2,通过输入医生职称,可以查看有该职称的医生人数。 create proc prcs2title varchar(16), n in t outputasif exists
22、 (select * from doctor where title=title)(select n=coun t(*) from doctor)else print'没有该职称declare n amel varchar(20), n1 intset name仁主治医师'exec prcs2 n amel, n1 outputselect name1 as 职称,n1 as 人数4.7触发器触发器是一类特殊的存储过程。触发器与表的关系密切,可用于维护表中的数据。当有数据影响到触发器维护的数据时,触发器自动执行。如下是系统触发器的创建和执行:创建一个触发器把医生表中工作证号为0
23、006的职称由实习医生改为主治医生'create trigger trgson doctorfor updateasbegi ndeclare no varchar(20)select no=dno from deletedupdate doctorset title=' 主治医生'where dn o=0006endupdate doctorset title=' 主治医生'where dn o=0006select *from doctor/* update操作之前,工作证号为0006的职称,部分信息如下*/* update 操作之后,工作证号为0006的职称,部分信息如下*/第五章总结由医院信息管理系统的需求设计出发,得出“医生”、“病人”、“病房”、“科室”、 四个实体集的四个表以及表的设计。表的E-R模型、表的关系模式以及它们之间的相互转换,以此来显示表之间的关系,通过这让我们熟练掌握其思想。通过做课程设计,有几点
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 粮食仓储机器人技术应用考核试卷
- 海洋油气资源开发项目合同管理考核试卷
- 建筑物拆除楼体隐患评估与拆除方案编制考核试卷
- 去泰山初二语文作文
- 课间初二语文作文
- 机电组件的智能驱动与控制策略考核试卷
- 白酒酿造过程中的智能监测与控制考试考核试卷
- 图书出租业务的智能书架设计考核试卷
- 小学数学二年级100以内加减法口算题
- 小学数学二年级下册口算练习300题
- 临床营养学基础知识课件
- 《在〈人民报〉创刊纪念会上的演说》《在马克思墓前的讲话》联读 统编版高中语文必修下册
- 银行内部账户风险分析和管控建议
- 软件开发类投标项目全套解决实施方案模板
- 七下人教版语文《紫藤萝瀑布》知识点预习内容
- 阻燃测试报告
- 2023年河南郑州大学招聘行政管理人员(博士)10人笔试备考试题及答案解析
- 历史五四运动课本剧《破晓》【3篇】
- 《大学英语》课程思政
- 中药汤剂课件完整版
- 如何做好我国新药研发的市场筛选
评论
0/150
提交评论