数据库课程设计医院管理系统.docx
《数据库课程设计医院管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计医院管理系统.docx(15页珍藏版)》请在冰豆网上搜索。
数据库课程设计医院管理系统
医院信息管理系统
设
计
姓名:
学号:
学院:
专业:
医院信息管理系统
一、分析:
人类进入21世纪,医院作为一个极其重要的服务部门,其发展应适应计算机技术的发展。
我国的医疗体制正在进行改革,需要医疗市场的进一步规范化,这就利用现代化的工具对医院进行有效的管理,有利于提高医疗水平和服务质量,更好的服务于社会。
鉴于此目的,我利用SQLServer2000技术设计了此医院管理数据库系统,以利用计算机完成病人入院后,对其基本信息、主治医师以及入住病房等信息进行数据库管理,有利于提高入院手续的办理速度以及对医院资源管理的效率。
同时可以落实责任,方便信息的集中化管理及应用.
本数据库系统是一个小型数据库管理系统,施以款专门用于医院管理系统的软件,具有良好的用户界面,风格独特的设计。
二、整体分析:
1、病人入院过程
2、系统构成
三、ER图
1、局部ER图
1-1、病人信息管理系统ER图
1
N
1—2.医务人员管理系统ER图
1-3。
病房信息管理系统ER图
2、全局ER图
四、转换关系模型分析范式级别
第一步:
把四个实体类型转换成四个模式:
医生(职工号,姓名,性别,年龄,职称)
病人(入院号,姓名,性别,年龄)
科室(科室名,电话)
病房(病房号,床位数)
第二步:
对于1:
1联系“主管",可在“科室”模式中加入医生职工号(职工号为外键)。
对于1:
N联系“入住”,可以在“病人”模式中加入病房号属性(病房号为外键).
对于1:
N联系“属于”,可以在“病房"模式中加入科室名属性(科室号为外键)。
对于1:
N联系“聘用”,可以在“医生”模式中加入科室名和聘期两个属性(科室名为外键)。
这样第一步得到的三个模式的形式如下:
医生(职工号,姓名,性别,年龄,职称,聘期,科室号)
病人(入院号,姓名,性别,年龄,病房号)
科室(科室名,科长职工号,电话)
病房(病房号,床位数,科室号)
第三步:
对于M:
N联系“主治”则生成一个新的关系模式:
主治(职工号,住院号)
这样转换成的五个模式如下:
医生(职工号,姓名,性别,年龄,职称,聘期,科室号)
病人(入院号,姓名,性别,年龄,病房号)
科室(科室名,科长职工号,电话)
病房(病房号,床位数,科室名)
主治(职工号,住院号)
分析,关系模式的每个关系都是不可再分的原子值,即为第一范式,又因为每个非主属性都不传递依赖于模式的候选键,因此该模式集为第三范式.
五、数据字典
doctor
字段名称
字段含义
数据类型
是否为主键
约束
备注
dno
职工号
int
Y
Notnull
dname
姓名
char(16)
sex
性别
char
(2)
age
年龄
smallint
<150
title
职称
char(10)
employ
聘期
smallint
<100
oname
科室名
char(16)
patient
字段名称
字段含义
数据类型
是否为主键
约束
备注
pno
住院号
char(9)
Y
Notnull
住院号格式:
年/月/日/编号,如090101001
pname
姓名
char(16)
sex
性别
char
(2)
age
年龄
smallint
〈150
sno
病房号
int
office
字段名称
字段含义
数据类型
是否为主键
约束
备注
oname
科室名
char(16)
Y
Notnull
dno
科长职工号
int
tel
电话
char(8)
sickroom
字段名称
字段含义
数据类型
是否为主键
约束
备注
sno
病房号
int
Y
Notnull
oname跟随参照表一起修改
num
床位数
smallint
〈10
oname
科室名
char(16)
cure
字段名称
字段含义
数据类型
是否为主键
备注
dno
职工号
int
Y
pno
住院号
char(9)
六、编写代码
创建数据库hospital
createdatabasehospital
创建基本表:
(1)创建doctor表
createtabledoctor
(
dnointprimarykey,
dnamechar(16)
sexchar
(2),
agesmallint,
titlechar(10),
check(age〈150),
check(employ〈100),
)
(2)创建office表
createtableoffice
(
onamechar(16)primarykey,
dnointforeignkeyreferencesdoctor(dno),
telchar(8),
)
(3)修改doctor表的外键
ALTERTABLEdoctoraddonamechar(16)foreignkeyreferencesoffice(oname)
(4)创建sickroom表
createtableoffice
(
snointprimarykey,
numsmallint,
onamechar(16)foreignkeyreferencesoffice(oname)onupdatecascade
)
(5)创建patient表
createtablepatient
(
pnochar(9)primarykey,
pnamechar(16)
sexchar
(2),
agesmallint,
snointforeignkeyreferencessickroom(sno)
check(age<150),
(6)创建crue表
createtablepatient
(
dnoint
pnochar(9)
primarykey(dno,pno),
foreignkey(dno)referencesdoctor(sno),
foreignkey(pno)referencespatient(pno),
)
(8)创建视图
视图一:
主治医师使用视图doc_pat
createviewdoc_patas
selectpatient。
pno,patient。
pname,doctor。
dno,doctor。
dname
fromdoctor,patient,crue
wherepatient.pno=cure.pnoanddoctor。
dno=crue。
dno
运行:
select*
fromdoc_pat
视图二:
住院部视图room
createviewroomas
selectsickroom。
sno,num,oname,count(pno)asin_num
fromsickroom,patient
wherepatient。
sno=sickroom。
sno
groupbysickroom.sno,num,oname
运行
Select*
fromroom
(9)查询:
1.selectdno,dname
fromdoctor
wheresex=’男’
2.
selectcrue.dno,dname,count(crue。
dno)as接诊人数,oname
fromcrue,doctor
wherecrue.dno=doctor。
dno
groupbycrue.dno,dname,oname
七、上机运行
createdatabasehospital
第一步:
创建doctor表(未加外键及对应属性)
第二步:
创建office表
第三步:
修改doctor表的外键
第四步:
创建sickroom表
第五步:
创建patient表
第六步:
创建cure表
七、创建视图
创建视图视图一:
主治医师使用视图doc_pat
运行结果
视图二:
住院部视图room
运行结果
八、查询:
1.
2.