医院数据库设计课件_第1页
医院数据库设计课件_第2页
医院数据库设计课件_第3页
医院数据库设计课件_第4页
医院数据库设计课件_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

数据库课程设计

小组成员

2912601016(组长):

主要负责触发器和存储过程

2912601015:

主要负责对创建好的数据库属性()的增删改,兼做部分查询2912601009:

主要负责数据的查询2912601023:主要负责创建表2912601029:主要负责数据的增,删,改需求分析概要

人类进入21世纪,医院作为一个特殊的行业,其发展也与信息化的今天密切相关。目前国家医院正处于改革阶段,需要对医疗市场的进一步规范与效率化提出新的改变。这也要求了医院加强自身的管理与利用现代化工具对医院的整体信息资源进行整合,将数据库运用于医院中,也肯定无疑的提高了工作的效率,信息的准确度,根除现行制度的弊端,达到减支增效的目的。有利于医院医疗水平与服务质量的提高,更好的造福人类,所以我们小组从医院数据库设计这方面,对医院主要的数据进行了设计与规划。一、题目及其专题

题目:医院信息管理数据库设计

专题:医院信息管理的主要数据库设计与简单构想二、课程设计来源及选题依据

设计来源:来自医院实际,以提供医院一个高效与合理的数据库关系设计。

选题依据:提高医院的工作效率,与信息的管理自动化。确保医院数据库数据的合理性与有效、准确、完整性。三、本设计所要达到的目的

从医院的总体部门,细化到各个医生与病人身上。提高医院在对病人进行诊断过程中,有关于医生、病人、诊断书、用药量与药价等等所产生信息的整合与规划,保证其中信息的高效、准确、完整原则。(草理版)医院管理数据字典:字段类型说明是否为空DnoChar(10)医生编号(主键)否DnameChar(20)医生姓名否Dsexbit医生性别否DborthDatetime医生出生日期否DeptNoChar(10)医生所属部门编号(外键)是DlevelChar(20)医生等级否DsalaryDecimal(8,2)医生工资否医生表(Doctor):

用于记录医生与病人部门之间的信息医院管理数据字典:字段类型说明是否可为空PnoChar(10)病人编号(主键)否PnameChar(20)姓名否Psexbit性别否PborthDatetime出生年月否Pphone联系电话(多值)Paddressvarchar地址否病人表(Patient):

记录病人信息字段类型说明是否为空PcodeChar(20)号码否PidChar(10)对应的病人(外键)否PtypeChar(10)电话类型否Pno(主键)电话表(P_phone)记录电话信息

医院管理数据字典:Identity(1,1)电话编号否医院管理数据字典:字段类型说明是否为空MnoChar(10)药品编号否MnameChar(50)药品名称否MtypeChar(10)药品类型否MuniteChar(10)药品计量否MpriceDecimal(8,2)药品价格否药品表(Medicine):

用于记录药品信息字段类型说明是否为空RnoIdentity(1,1)主治编号(外键)否MnoChar(10)药品编号(外键)否McountDetimal(10,5)用量否药方表(recipedetail):

用于记录医生用药情况(Rno,Mno)联合主键医院管理数据字典:医院管理数据字典:字段类型说明是否为空DgnoChar(10)就诊表编(主键)否PnoChar(10)病人编号(外键)否DnoChar(10)主治医生编号(外键)否SymptonChar(500)病症否DiognosisChar(100)病种否DgtimeDatetime就诊时间否RfeeDecimal(8,2)就诊费用是就诊表(Diagnosis)医院记录病人的就诊信息编制过程讲解:1、创建数据库和表createdatabaseHospital;useHospital;//创建数据库//使用数据库(在组长强行要求下,我组医院系统完全采用SQL语句完成!)1、创建数据库和表编制过程讲解:CreateTableDept(DeptNoChar(10)primarykey,Deptnamechar(20)notnull,Deptparentnochar(10)referencesDept(DeptNo),Dnochar(10)notnull)//创建部门表createTableDoctor(Dnochar(10)primarykey,Dnamechar(20)notnull,Dsexbitnotnull,Dborthdatetimenotnull,DeptNochar(10)referencesDept(DeptNo),Dlevelchar(20)notnull,DsalaryDecimal(8,2)notnull)1、创建数据库和表编制过程讲解://创建医生表1、创建数据库和表编制过程讲解:createtablePatient(Pnochar(10)primarykey,Pnamechar(20)notnull,Psexbitnotnull,PborthDateTimenotnull,Paddresschar(100))//创建病人表1、创建数据库和表编制过程讲解:createtableP_phone(PhoneNointidentity(1,1)primarykey,Pcodechar(20)notnull,Pidchar(10)referencesPatient(Pno)notnull,Ptypechar(10),)//创建病人联系方式表createtableDiagnosis(Dgnochar(10)primarykey,Pnochar(10)referencesPatient(Pno),Dnochar(10)referencesDoctor(Dno),Symptonchar(500)notnull,Diognosischar(100)notnull,DgtimeDatetimenotnull,DgfeeDecimal(8,2))编制过程讲解:1、创建数据库和表//创建就诊表1、创建数据库和表编制过程讲解:createtableRecipeMaster(Rnointidentity(1,1)primarykey,Dgnochar(10)referencesDiagnosis(Dgno)notnull,RtimeDatetimenotnull)//创建主治表1、创建数据库和表编制过程讲解:createtableFee(Fnointidentity(1,1)primarykey,RnointreferencesRecipeMaster(Rno),FtimeDatetimenotnull,Fmoneydecimal(8,2)notnull)//创建费用表编制过程讲解:2、对表进行的调整与修改altertableDeptaddforeignkey(Dno)referencesDoctor(Dno)//增加部门经理的外键altertableDiagnosisaddcheck(Dgfee>=0)//添加费用的约束条件altertableFeeaddFtimeDatetimenotnullaltertableFeedropcolumnFtime//删除列//添加新列altertableFeeaddcheck(Fmoney>=0)altertablerecipedetailaltercolumnMcountdecimal(10,5)notnull;//修改列属性updateDiagnosissetDiagnosis.Dgfee=Diagnosis.Dgfee+(selectFmoneyfrominsertedwhereFno=@@identity)whereDgnoin(selectDgnofromRecipeMasterwhereRecipeMaster.Rno=(selectRnofrominsertedwhereFno=@@identity)

)elseupdateDiagnosissetDiagnosis.Dgfee=(selectFmoneyfrominsertedwhereFno=@@identity)whereDgnoin(selectDgnofromRecipeMasterwhereRecipeMaster.Rno=(selectRnofrominsertedwhereFno=@@identity)

)commitendtry编制过程讲解:3、事务与触发器演示(第二部分)begincatchif(@@Trancount>0)rollbackdeclare@errmsgnvarchar(4000),@ErrSeverityintselect@errmsg=error_message(),@ErrSeverity=error_severity()raiserror(@errmsg,@ErrSeverity,1)endcatch编制过程讲解:3、事务与触发器演示(第三部分)droptriggertrigger1//删除触发器编制过程讲解:4、增删查改演示InsertintoFee(Rno,Ftime,Fmoney)values('1','2010-6-8','1.5')InsertintoDoctor(Dno,Dname,Dsex,Dborth,Dlevel,Dsalary)values('D000001','张三',1,1980-3-8,'医师',6000.00);insertintoDept(DeptNo,Deptname,Dno)values('DP00001','主管部门','D000001');updateDoctorsetDeptNo='DP00001'whereDno='D000001';InsertintoDoctor(Dno,Dname,Dsex,Dborth,Dlevel,Dsalary)values('D000002','李四',1,1980-3-8,'医师',6000.00);InsertintoDoctor(Dno,Dname,Dsex,Dborth,Dlevel,Dsalary)values('D000003','王五',0,1983-3-8,'医师',6000.00);InsertintoDoctor(Dno,Dname,Dsex,Dborth,Dlevel,Dsalary)values('D000004','吴六',1,1985-3-8,'医生',4000.00);insertintoDept(DeptNo,Deptname,Deptparentno,Dno)values('DP00002','财务部','DP00001','D000002');insertintoDept(DeptNo,Deptname,Deptparentno,Dno)values('DP00003','药物部','DP00001','D000003');InsertintoDoctor(Dno,Dname,Dsex,Dborth,DeptNo,Dlevel,Dsalary)values('D000006','小李',1,1985-3-8,'DP00005','医师',6000.00);InsertintoDoctor(Dno,Dname,Dsex,Dborth,DeptNo,Dlevel,Dsalary)values('D000007','小王',0,1986-3-8,'DP00005','医生',4000.00);insertintoPatient(Pno,Pname,Psex,Pborth,Paddress)values('P00001','甲',1,1969-6-9,'扬子街号');insertintoP_phone(Pcode,Pid,Ptype)values('12345678901','P00001','手机');insertintoDiagnosis(Dgno,Pno,Dno,Sympton,Diognosis,Dgtime)values('DG00001','P00001','D000006','牙龈出血','口腔溃疡',2010-5-5);insertintoMedicine(Mno,Mname,Mtype,Munite,Mprice)values('M00001','创可贴','otc','片',0.50);insertintoRecipeMaster(Dgno,Rtime)values('DG00001',2010-5-5);insertintorecipedetail(Rno,Mno,Mcount)values(1,'M00001',0.00001);deletefromrecipedetailwhereRno=1andMno='M00001'编制过程讲解:4、增删查改演示编制过程讲解:4、增删查改演示insertintorecipedetail(Rno,Mno,Mcount)values(1,'M00001',3);insertintoFee(Rno,Ftime,Fmoney)values(1,2010-5-5,1.5);updateDiagnosissetDgfee=1.5whereDgno='DG00001';编制过程讲解:5、存储过程createprocedurepro_d@Deptnamechar(16)asselectDno,DnamefromDoctorwhereDeptNoin(selectDeptNofromDeptwhereDeptname=@Deptname)goexecpro_d'医务部'//根据部门名查找部门成员信息的存储过程alterprocedurepro_d@Deptnamechar(16)asselect*fromDoctorwhereDeptNoin(selectDeptNofromDeptwhereDeptname=@Deptname)go编制过程讲解:5、存储过程//修改上一页的存储过程编制过程讲解:5、存储过程createprocedurepro_pt@Pnamechar(20)asselectPatient.Pno,Pname,Ptype,PcodefromPatient,P_phonewherePatient.Pno=P_phone.PidandPatient.Pnoin(selectPnofromPatientwherePname=@Pname)goexecpro_pt'甲'dropprocedurepro_pt//根据病人查找病人联想方式的存储过程编制过程讲解:5、存储过程createprocedurepro_drrf@Dgnochar(10)asupdateDiagnosissetDgfee=(selectsum(Fmoney)fromFeewhereRnoin(selectRnofromRecipeMasterwhereDgno=@Dgno))whereDgno=@Dgnogoexecpro_drrf'DG00001'//修改就诊表信息的存储过程createprocedurepro_redetail@RnointasselectRno,Medicine.Mno,Mname,Mtype,Munite,Mprice,Mcountfromrecipedetail,Medicinewhererecipedetail.Mno=Medicine.MnoandRno=@Rnogoexecpro_redetail1编制过程讲解:5、存储过程//查询用药详细信息的存储过程编制过程讲解:5、视图createviewdept_infoasselectDept.DeptNo,Deptname,Deptparentno,Dname,Doctor.DnofromDoctor,DeptwhereDept.Dno=Doctor.Dnoselect*fromdept_info//有关部门详细信息的视图withMaxS(value)as(selectMax(Dsalary)fromDoctor)selectdno,Dname,Dsalary

温馨提示

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

评论

0/150

提交评论