《数据库课程设计(医院管理系统).docx》由会员分享,可在线阅读,更多相关《数据库课程设计(医院管理系统).docx(15页珍藏版)》请在优知文库上搜索。
1、医院信息管理系统姓名:学号:学院:专业:医院信息管理系统一、分析:人类进入21世纪,医院作为一个极其重要的效劳部门,其开展应适应计算机技术的开展。我国的医疗体制正在进行改革,需要医疗市场的进一步标准化,这就利用现代化的工具对医院进行有效供挂号,填写根本信息!高医疗水平和效劳质量,更好的效劳于社会。鉴于此目的,我利用SQLServer2000技术设计了此医院管理数据库系统,以利用计算机完成病人入院后,对其根本信息、主治医师以及入住病房等信息进行数据库管理,有利于提高入院手续的办理速度以及对医院资源管理的效率。同时可以落实责任,方便信息的集中化管理及应用。本数据库系统是一个小型数据库管理系统,施以
2、款专门用于医院管理系统的软件,具有良好的用户界面,风格独特的设计。二、整体分析:1、病人入院过程分诊,填写主治医师三、ER图1、局部ER图I-K病人信息管理系统ER图姓名1-2.医务人员管理系统ER图医生室1-3.病房信息管理系统ER图科室2、全局ER图四、转换关系模型分析范式级别第一步:把四个实体类型转换成四个模式:医生(职工号,姓名,性别,年龄,职称)病人(入院号,姓名,性别,年龄)科室(科室名,)病房(病房号,床位数)第二步:对于1:1联系“主管”,可在“科室”模式中参加医生职工号(职工号为外键。对于1:N联系“入住”,可以在“病人”模式中参加病房号属性(病房号为外键)。对于1:N联系“
3、属于”,可以在“病房”模式中参加科室名属性(科室号为外键)。对于1:N联系“聘用”,可以在“医生”模式中参加科室名和聘期两个属性(科室名为外键)。这样第一步得到的三个模式的形式如下:医生(职工号,姓名,性别,年龄,职称,聘期,科室号)病人(入院号,姓名,性别,年龄,病房号)科室(科室名,科长职工号,)病房(病房号,床位数,科室号)第三步:对于M:N联系“主治”那么生成一个新的关系模式:主治(职工号,住院号)这样转换成的五个模式如下:医生(职工号,姓名,性别,年龄,职称,聘期,科室号)病人(入院号,姓名,性别,年龄,病房号)科室(科室名,科长职工号,)病房(病房号,床位数,科室名)主治(职工号,
4、住院号)分析,关系模式的每个关系都是不可再分的原子值,即为第一范式,又因为每个非主属性都不传递依赖于模式的候选键,因此该模式集为第三范式。五、数据字典doctor字段名 称字段含 义Wb Inl M/. 数据类型是否为主 键约束备注dno职工号intYNot nulldname姓名char( 16)sex性别char(2)age年龄Smallint150IilIeH口祢Chnr( 1 娜Oy ZI数据米刑S埋的约束备7.oo刀型OiIcXinC /、制Cna 1 o;E 1pno ftCHdl (YUlLL也P悄八:xF/号9)null月/日/编号,如pnam 姓名char(090101001
5、patene16)offiCesex性别char(2)age年龄smallint150sno病房号int字段名称字段含义数据类型是否为主键约束备注sickroomoname科室名char(16)YNotnulldno科长职工号inttelchar(8)字段名称字段含义数据类型是否为主键约束备注curesno病房号intYNotnulloname跟随参照表一起修改num床位数smallint10oname科室名char(16)字段名称字段含义数据类型是否为主键备注dno职工号intYpno住院号char(9)六、编写代码创立数据库hospitalcreatedatabasehospital创立根
6、本表:(1)创立doctor表createtabledoctor(dnointprimarykey,dnamechar(16)sexchar(2),agesmallint,titlechar(10),check(employ100),)(2)创立OffiCe表createtableoffice(onamechar(16)primarykey,dnointforeignkeyreferencesdoctor(dno),telchar(8),)(3)修改doctor表的外键ALTERTABLEdoctoraddonamechar(16)foreignkeyreferencesoffice(onam
7、e)(4)创立sickroom表createtableoffice(snointprimarykey,numsmallint,onamechar(16)foreignkeyreferencesoffice(oname)onupdatecascade)(5)创立patient表createtablepatient(pnochar(9)primarykey,pnamechar(16)sexchar(2),agesmallint,snointforeignkeyreferencessickroom(sno)(6)创立crue表createtablepatient(dnointpnochar(9)pr
8、imarykey(dno,pno),foreignkey(dno)referencesdoctor(sno),foreignkey(pno)referencespatient(pno),)(8)创立视图视图一:主治医师使用视图dojpatcreateviewdoc_patasselectpatient.pno,patient.pname,doctor.dno,doctor.dnamefromdoctor,patient,cruewherepatient.pno=cure.pnoanddoctor.dno=crue.dno、-z运仃:select*fromdoc_pat视图二:住院部视图room
9、createviewroomasselectsickroom.sno,num,oname,count(pno)asin_numfromsickroom,patientwherepatient.sno=sickroom.snogroupbysickroom.sno,num,oname运行Select*fromroom(9)查询:1. selectdno,dnamefromdoctorwheresex=男2.selectcrue.dno,dname,count(crue.dno)as接诊人数,onamefromcrue,doctorwherecrue.dno=doctor.dnogroupbycr
10、ue.dno,dname,oname七、上机运行createdatabasehospitalCREATEDATABASE进程正在施盘,hosptal,JlCREATEDA三SE进箱伍磁盘,hosptal.log,J第一步:创立doctor表(未加外键及对应属Ierea*tetab1ed.oc-tor(dnoin-tprimarykeycLnaj11echar(16),sexcHar(2),agesmallinl:,1echar(IeI),employsmalli11t,cHeokla.ge150),cheok(emp10y100),)J0.75B般0tE0.49NB的期。主)7dnodname
11、sexagetitleemployon机g第二步:创立OffiCe表createtableofficeOnamechar(16)primarykey,dnointforeignkeyreferencesdoctor(dno)jtelchar(8),)第三步:修改doctor表的外键ALTERTABLEdoctoraddon三echar116:foreignkeyreferencesoffice(on三e;第四步:创立sickroom表createtablesickroom(snointprimarykeyjn三s三llint,QnaJnechar(16)foreignkeyreferences
12、office(on三e.1onupdatecascade)第五步:创立patient表createtablepatient(pnochar(9)primarykey,Pnamechar(16)jsexChar$ageSmallint,snointforeignkeyreferencessickroom(sno)5check(age150)j)第六步:创立CUre表createtablecure(dnointSpnochar(9),priarykey(dno.,pno),foreignkey(dnoreferencesdoctor(dno)jforeignkey(pno)referencespa
13、tient(pno:3)张张李于贾贾九龙鲁112344556七、创立视图创立视图视图一:主治医师使用视图dojpatcreateviewdoc_patasselectpatient.pno,patient.pname,doctor,dno.,doctor,dnamefromdoctor,patient.,curewherepatient.pno=cure.pnoanddoctor,dno=cure.dno运行结果select*fromdoc_patpnopnaednodname1王三T56789101103008101213001090105078100512102090105003100405205050607008100409032050607008视图二:住院部视图roomcreateviewroomasselectsickroom,