当前位置:文档之家› 医院数据库管理系统

医院数据库管理系统

课程设计说明书题目医院数据库管理系统系(部) 计算机科学与技术系专业(班级)姓名学号指导教师起止日期2010.5.16-2010.5.27课程设计任务书课程名称:数据库系统原理课程设计设计题目:工厂数据库管理系统、医院数据库管理系统、图书馆数据库管理系统(任选一题)已知技术参数和设计要求:需求说明及要求题目:医院数据库管理系统(难度系数1.0)某医院病房计算机管理系统中需要如下信息:科室:科室名、科室地址、电话、主任姓名病房:病房号、床位号、所属科室名医生:工作证号、姓名、性别、年龄、职称、所属科室名病人:病历号、姓名、性别、诊断、主管医生、病房号其中,一个科室有多个病房、多个医生;一个病房只能属于一个科室;一个医生只能属于一个科室,但可负责多个病人的诊治;一个病人的主管医生只有一个。

各阶段具体要求:1、需求分析阶段●定义数据项的含义和取值2、概念结构设计阶段●画出实体模型E-R图3、逻辑结构设计阶段●将实体模型转化为关系模型●给出每个关系的主关键字和函数依赖集●分析你所设计的关系数据库模式是否属于3NF4、物理设计阶段●确定所有字段的名称、类型、宽度、小数位数及完整性约束●确定数据库及表的名称及其组成●确定索引文件和索引关键字5、数据库安全及维护设计阶段●设计一个适合的数据库安全策略(用户身份认证、访问权限、视图)6、实施阶段●要求所有操作必须在查询分析器中用SQL语句或系统存储过程完成。

设计工作量:(1)软件设计:完成问题陈述中所提到的所有需求功能。

(2)论文:要求撰写不少于3000个文字的文档,详细说明各阶段具体要求。

工作计划:安排两周时间进行课程设计,软件开发步骤如下,第一周完成1~4,第二周完成5~8,论文同步进行;1) 分组,定题目2) 需求分析3) 概念结构设计4) 逻辑结构设计5) 物理设计6) 数据库安全及维护设计7) 数据库上机实现8) 答辩注意事项⏹提交文档➢长沙学院课程设计任务书(每学生1份)➢长沙学院课程设计论文(每学生1份)➢长沙学院课程设计鉴定表(每学生1份)指导教师签名:日期:教研室主任签名:日期:系主任签名:日期:长沙学院课程设计鉴定表摘要本题是用SQL语言的实现的图书馆管理系统,创建一个图书馆管理系统,实现增加,删除,修改等各种用途。

本题设计的三张表,所有操作都在查询分析器中用SQL语句或系统存储过程完成。

关键词:SQL语言,医院数据库管理系统,查询分析器目录第一章设计内容与要求 ----------------------------------- 错误!未定义书签。

第二章设计说明 ------------------------------------------ 错误!未定义书签。

1需求分析-------------------------------------------- 错误!未定义书签。

2数据库逻辑模型设计----------------------------- 错误!未定义书签。

3属性的取值----------------------------------------- 错误!未定义书签。

4数据库设计----------------------------------------- 错误!未定义书签。

5关系图----------------------------------------------- 错误!未定义书签。

7数据库的E-R图---------------------------------- 错误!未定义书签。

8数据库的实体模型转化为关系模型 ---------- 错误!未定义书签。

9数据库的函数依赖-------------------------------- 错误!未定义书签。

10 流程图 -------------------------------------------- 错误!未定义书签。

11.总结 ------------------------------------------------ 错误!未定义书签。

参考文献 ------------------------------------------------------------------------ 22实验内容建表:create table Office(O_no char(10) not null,O_name char(20) not null,O_address char(40),O_phone int ,Odir_no char(10) not null,primary key(O_no));create table Ward(W_no char(10) not null,Bed_no char(10) not null,O_no char(10) references Office(O_no),primary key(W_no,Bed_no));create table Doctor(D_no char(10) not null,D_name char(20) not null,D_sex char(10),D_class char(20),D_age int,O_no char(10) references Office(O_no),primary key(D_no));create table Patient(R_no char(10) not null primary key,P_age int,P_name char(20),P_sex char(10),W_no char(10) not null,Bed_no char(10)not null,foreign key(W_no,Bed_no) references Ward(W_no,Bed_no) );create table Record(R_no char(10) not null,In_time char(20),Out_time char(20),diagnsis char(100),MD_no char(10) not null,W_no char(10) not null,Bed_no char(10) not null,primary key(R_no));create table Cure(D_no char(10) not null,R_no char(10) not null,C_time char(20),);insert into Office(O_no,O_name,O_address,O_phone,Odir_no) values('01','内科','F1','3600','D001')insert into Office(O_no,O_name,O_address,O_phone,Odir_no) values('02','外科','F2','3601','D002')insert into Office(O_no,O_name,O_address,O_phone,Odir_no) values('03','精神科','F3','3602','D003')insert into Office(O_no,O_name,O_address,O_phone,Odir_no) values('04','眼科','F4','3603','D004')insert into Ward(W_no,Bed_no,O_no)values('1','001','01')insert into Ward(W_no,Bed_no,O_no)values('1','002','01')insert into Ward(W_no,Bed_no,O_no)values('2','001','02')insert into Ward(W_no,Bed_no,O_no)values('2','002','02')insert into Ward(W_no,Bed_no,O_no)values('3','001','03')insert into Ward(W_no,Bed_no,O_no)values('3','002','03')insert into Ward(W_no,Bed_no,O_no)values('4','001','04')insert into Ward(W_no,Bed_no,O_no)values('4','002','04')insert into Ward(W_no,Bed_no,O_no)values('4','003','04')insert into Ward(W_no,Bed_no,O_no)values('4','004','04')insert into Patient(R_no,P_name,P_sex,P_age,W_no,Bed_no)values('1111','张一','男','35','1','001')insert into Patient(R_no,P_name,P_sex,P_age,W_no,Bed_no)values('1112','张二','男','26','1','002')insert into Patient(R_no,P_name,P_sex,P_age,W_no,Bed_no)values('1113','张三','女','15','2','002')insert into Patient(R_no,P_name,P_sex,P_age,W_no,Bed_no)values('1114','张四','男','10','4','003')insert into Patient(R_no,P_name,P_sex,P_age,W_no,Bed_no)values('1115','张五','女','41','4','004')insert into Doctor(D_no,D_name,D_sex,D_age,D_class,O_no)values('D001','王一','男','53','主任医师','01')insert into Doctor(D_no,D_name,D_sex,D_age,D_class,O_no)values('D002','王二','男','46','主任医师','02')insert into Doctor(D_no,D_name,D_sex,D_age,D_class,O_no)values('D003','王三','女','50','主任医师','03')insert into Doctor(D_no,D_name,D_sex,D_age,D_class,O_no)values('D004','王四','女','45','主任医师','04')insert into Doctor(D_no,D_name,D_sex,D_age,D_class,O_no)values('D005','王五','男','23','主治医师','01')insert into Doctor(D_no,D_name,D_sex,D_age,D_class,O_no)values('D006','王六','男','31','主治医师','01')insert into Doctor(D_no,D_name,D_sex,D_age,D_class,O_no)values('D007','王七','女','29','主治医师','02')insert into Doctor(D_no,D_name,D_sex,D_age,D_class,O_no)values('D008','王八','男','35','主治医师','04')insert into Record(R_no,In_time,Out_time,diagnsis,MD_no,W_no,Bed_no) values('1111','2011.3.6','2011.4.3','高血压','D006','1','001')insert into Record(R_no,In_time,Out_time,diagnsis,MD_no,W_no,Bed_no) values('1112','2011.4.1','2011.4.8','肺炎','D005','1','002')insert into Record(R_no,In_time,Out_time,diagnsis,MD_no,W_no,Bed_no) values('1113','2011.4.1','2011.4.21','心脏病','D007','2','002')insert into Record(R_no,In_time,Out_time,diagnsis,MD_no,W_no,Bed_no) values('1114','2011.4.5','2011.4.10','角膜炎','D004','4','003')insert into Record(R_no,In_time,Out_time,diagnsis,MD_no,W_no,Bed_no) values('1115','2011.5.1','2011.5.10','白内障','D008','4','004')查询:select P_name as '病人姓名',In_time as '住院时间',Out_time as '出院时间'from Patient,Recordwhere P_name='张四'and Patient.R_no=Record.R_noselect D_name as '主治医生'from Doctor,Recordwhere D_no='D006' and R_no='1111'select P_name as '姓名',P_age as '年龄',In_time as '住院时间',Out_time as '出院时间' from Patient,Recordwhere P_name='张一' and Patient.R_no=Record.R_noselect avg(P_age) as '病人平均年龄'from Patientselect avg(D_age) as '医生平均年龄'from Doctorselect count(Bed_no) as '床位数'from Ward修改信息:select D_name from Doctor where D_no='D002' update Doctorset D_name='王九' where D_no='D002' select D_name from Doctor where D_no='D002'select D_name from Doctor where D_no='D006' update Doctorset D_name='王十' where D_no='D006' select D_name from Doctor where D_no='D006'deletefrom Wardwhere W_no='2' and Bed_no='002' select *from Warddeletefrom Doctorwhere D_no='D008'select *from Doctorinsert Ward(W_no,Bed_no,O_no)values('5','001','04')select *from Wardinsert Doctor(D_no,D_name,D_sex,D_age,D_class,O_no) values('D015','小小','女','21','普通医生','03')select *from Doctorcreate view V_doctorasselect D_no,D_name,D_sex,O_no from Doctorselect D_no,D_name,D_sex,O_no from V_doctorwhere D_no='D003'create view V_officeasselect Office.O_no,O_name, D_name from Office,Doctorwhere Odir_no=D_noselect *from V_officewhere O_no='01'create trigger T_patient_1on Patientfor updateasif update(W_no)begindeclare @newW_no char(10),@oldW_no char(10)select @newW_no=W_no from insertedselect @oldW_no=W_no from deletedupdate Record set W_no=@newW_nowhere W_no=@oldW_noendupdate Patientset W_no='3'where R_no='1113'创建登录信息:use HOSPITALexec sp_addlogin 'doctor','1234','HOSPITAL' exec sp_grantdbaccess 'doctor','HOSPITAL'use HOSPITALgrant all on Patient to HOSPITALuse HOSPITALexec sp_addlogin 'patient','12345','HOSPITAL' --exec sp_grantdbaccess 'patient','hospital_1'use HOSPITALexec sp_grantdbaccess 'patient','HOSPITAL1'use HOSPITALgrant select on Patient to HOSPITAL1E/R图:总结课程设计是培养学生综合运用所学知识 ,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。

相关主题