医院数据库管理系统.docx

上传人:b****0 文档编号:25740382 上传时间:2023-06-12 格式:DOCX 页数:21 大小:209.72KB
下载 相关 举报
医院数据库管理系统.docx_第1页
第1页 / 共21页
医院数据库管理系统.docx_第2页
第2页 / 共21页
医院数据库管理系统.docx_第3页
第3页 / 共21页
医院数据库管理系统.docx_第4页
第4页 / 共21页
医院数据库管理系统.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

医院数据库管理系统.docx

《医院数据库管理系统.docx》由会员分享,可在线阅读,更多相关《医院数据库管理系统.docx(21页珍藏版)》请在冰豆网上搜索。

医院数据库管理系统.docx

医院数据库管理系统

 

课程设计说明书

题目

医院数据库管理系统

系(部)

计算机科学与技术系

专业(班级)

姓名

学号

指导教师

起止日期

2010.5.16-2010.5.27

 

课程设计任务书

课程名称:

数据库系统原理课程设计

设计题目:

工厂数据库管理系统、医院数据库管理系统、图书馆数据库管理系统(任选一题)

已知技术参数和设计要求:

需求说明及要求

题目:

医院数据库管理系统(难度系数1.0)

某医院病房计算机管理系统中需要如下信息:

科室:

科室名、科室地址、电话、主任姓名

病房:

病房号、床位号、所属科室名

医生:

工作证号、姓名、性别、年龄、职称、所属科室名

病人:

病历号、姓名、性别、诊断、主管医生、病房号

其中,一个科室有多个病房、多个医生;一个病房只能属于一个科室;一个医生只能属于一个科室,但可负责多个病人的诊治;一个病人的主管医生只有一个。

各阶段具体要求:

1、需求分析阶段

●定义数据项的含义和取值

2、概念结构设计阶段

●画出实体模型E-R图

3、逻辑结构设计阶段

●将实体模型转化为关系模型

●给出每个关系的主关键字和函数依赖集

●分析你所设计的关系数据库模式是否属于3NF

4、物理设计阶段

●确定所有字段的名称、类型、宽度、小数位数及完整性约束

●确定数据库及表的名称及其组成

●确定索引文件和索引关键字

5、数据库安全及维护设计阶段

●设计一个适合的数据库安全策略(用户身份认证、访问权限、视图)

6、实施阶段

●要求所有操作必须在查询分析器中用SQL语句或系统存储过程完成。

设计工作量:

(1)软件设计:

完成问题陈述中所提到的所有需求功能。

(2)论文:

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

工作计划:

安排两周时间进行课程设计,软件开发步骤如下,第一周完成1~4,第二周完成5~8,论文同步进行;

1)分组,定题目

2)需求分析

3)概念结构设计

4)逻辑结构设计

5)物理设计

6)数据库安全及维护设计

7)数据库上机实现

8)答辩

计划时间

指导老师

学生

注意事项

⏹提交文档

Ø长沙学院课程设计任务书(每学生1份)

Ø长沙学院课程设计论文(每学生1份)

Ø长沙学院课程设计鉴定表(每学生1份)

指导教师签名:

      日期:

    

教研室主任签名:

       日期:

        

系主任签名:

         日期:

        

长沙学院课程设计鉴定表

姓名

学号

专业

软件工程

班级

设计题目

医院数据库管理系统

指导教师

指导教师意见:

 

评定等级:

教师签名:

日期:

答辩小组意见:

 

评定等级:

     答辩小组长签名:

     日期:

    

教研室意见:

 

教研室主任签名:

日期:

 

系(部)意见:

 

系主任签名:

        日期:

     

说明

课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;

摘要

本题是用SQL语言的实现的图书馆管理系统,创建一个图书馆管理系统,实现增加,删除,修改等各种用途。

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

关键词:

SQL语言,医院数据库管理系统,查询分析器

实验内容

建表:

createtableOffice(

O_nochar(10)notnull,

O_namechar(20)notnull,

O_addresschar(40),

O_phoneint,

Odir_nochar(10)notnull,

primarykey(O_no)

);

createtableWard(

W_nochar(10)notnull,

Bed_nochar(10)notnull,

O_nochar(10)referencesOffice(O_no),

primarykey(W_no,Bed_no)

);

createtableDoctor(

D_nochar(10)notnull,

D_namechar(20)notnull,

D_sexchar(10),

D_classchar(20),

D_ageint,

O_nochar(10)referencesOffice(O_no),

primarykey(D_no)

);

createtablePatient(

R_nochar(10)notnullprimarykey,

P_ageint,

P_namechar(20),

P_sexchar(10),

W_nochar(10)notnull,

Bed_nochar(10)notnull,

foreignkey(W_no,Bed_no)referencesWard(W_no,Bed_no)

);

createtableRecord(

R_nochar(10)notnull,

In_timechar(20),

Out_timechar(20),

diagnsischar(100),

MD_nochar(10)notnull,

W_nochar(10)notnull,

Bed_nochar(10)notnull,

primarykey(R_no)

);

createtableCure(

D_nochar(10)notnull,

R_nochar(10)notnull,

C_timechar(20),

);

insertintoOffice(O_no,O_name,O_address,O_phone,Odir_no)

values('01','内科','F1','3600','D001')

insertintoOffice(O_no,O_name,O_address,O_phone,Odir_no)

values('02','外科','F2','3601','D002')

insertintoOffice(O_no,O_name,O_address,O_phone,Odir_no)

values('03','精神科','F3','3602','D003')

insertintoOffice(O_no,O_name,O_address,O_phone,Odir_no)

values('04','眼科','F4','3603','D004')

insertintoWard(W_no,Bed_no,O_no)

values('1','001','01')

insertintoWard(W_no,Bed_no,O_no)

values('1','002','01')

insertintoWard(W_no,Bed_no,O_no)

values('2','001','02')

insertintoWard(W_no,Bed_no,O_no)

values('2','002','02')

insertintoWard(W_no,Bed_no,O_no)

values('3','001','03')

insertintoWard(W_no,Bed_no,O_no)

values('3','002','03')

insertintoWard(W_no,Bed_no,O_no)

values('4','001','04')

insertintoWard(W_no,Bed_no,O_no)

values('4','002','04')

insertintoWard(W_no,Bed_no,O_no)

values('4','003','04')

insertintoWard(W_no,Bed_no,O_no)

values('4','004','04')

insertintoPatient(R_no,P_name,P_sex,P_age,W_no,Bed_no)

values('1111','张一','男','35','1','001')

insertintoPatient(R_no,P_name,P_sex,P_age,W_no,Bed_no)

values('1112','张二','男','26','1','002')

insertintoPatient(R_no,P_name,P_sex,P_age,W_no,Bed_no)

values('1113','张三','女','15','2','002')

insertintoPatient(R_no,P_name,P_sex,P_age,W_no,Bed_no)

values('1114','张四','男','10','4','003')

insertintoPatient(R_no,P_name,P_sex,P_age,W_no,Bed_no)

values('1115','张五','女','41','4','004')

insertintoDoctor(D_no,D_name,D_sex,D_age,D_class,O_no)

values('D001','王一','男','53','主任医师','01')

insertintoDoctor(D_no,D_name,D_sex,D_age,D_class,O_no)

values('D002','王二','男','46','主任医师','02')

insertintoDoctor(D_no,D_name,D_sex,D_age,D_class,O_no)

values('D003','王三','女','50','主任医师','03')

insertintoDoctor(D_no,D_name,D_sex,D_age,D_class,O_no)

values('D004','王四','女','45','主任医师','04')

insertintoDoctor(D_no,D_name,D_sex,D_age,D_class,O_no)

values('D005','王五','男','23','主治医师','01')

insertintoDoctor(D_no,D_name,D_sex,D_age,D_class,O_no)

values('D006','王六','男','31','主治医师','01')

insertintoDoctor(D_no,D_name,D_sex,D_age,D_class,O_no)

values('D007','王七','女','29','主治医师','02')

insertintoDoctor(D_no,D_name,D_sex,D_age,D_class,O_no)

values('D008','王八','男','35','主治医师','04')

insertintoRecord(R_no,In_time,Out_time,diagnsis,MD_no,W_no,Bed_no)

values('1111','2011.3.6','2011.4.3','高血压','D006','1','001')

insertintoRecord(R_no,In_time,Out_time,diagnsis,MD_no,W_no,Bed_no)

values('1112','2011.4.1','2011.4.8','肺炎','D005','1','002')

insertintoRecord(R_no,In_time,Out_time,diagnsis,MD_no,W_no,Bed_no)

values('1113','2011.4.1','2011.4.21','心脏病','D007','2','002')

insertintoRecord(R_no,In_time,Out_time,diagnsis,MD_no,W_no,Bed_no)

values('1114','2011.4.5','2011.4.10','角膜炎','D004','4','003')

insertintoRecord(R_no,In_time,Out_time,diagnsis,MD_no,W_no,Bed_no)

values('1115','2011.5.1','2011.5.10','白内障','D008','4','004')

查询:

selectP_nameas'病人姓名',In_timeas'住院时间',Out_timeas'出院时间'

fromPatient,Record

whereP_name='张四'andPatient.R_no=Record.R_no

selectD_nameas'主治医生'

fromDoctor,Record

whereD_no='D006'andR_no='1111'

selectP_nameas'姓名',P_ageas'年龄',In_timeas'住院时间',Out_timeas'出院时间'

fromPatient,Record

whereP_name='张一'andPatient.R_no=Record.R_no

selectavg(P_age)as'病人平均年龄'

fromPatient

selectavg(D_age)as'医生平均年龄'

fromDoctor

selectcount(Bed_no)as'床位数'

fromWard

修改信息:

selectD_name

fromDoctor

whereD_no='D002'

updateDoctor

setD_name='王九'

whereD_no='D002'

selectD_name

fromDoctor

whereD_no='D002'

selectD_name

fromDoctor

whereD_no='D006'

updateDoctor

setD_name='王十'

whereD_no='D006'

selectD_name

fromDoctor

whereD_no='D006'

删除信息:

delete

fromWard

whereW_no='2'andBed_no='002'

select*

fromWard

delete

fromDoctor

whereD_no='D008'

select*

fromDoctor

增加信息:

insertWard(W_no,Bed_no,O_no)

values('5','001','04')

select*

fromWard

insertDoctor(D_no,D_name,D_sex,D_age,D_class,O_no)

values('D015','小小','女','21','普通医生','03')

select*

fromDoctor

创建视图:

createviewV_doctor

as

selectD_no,D_name,D_sex,O_no

fromDoctor

selectD_no,D_name,D_sex,O_no

fromV_doctor

whereD_no='D003'

createviewV_office

as

selectOffice.O_no,O_name,D_name

fromOffice,Doctor

whereOdir_no=D_no

select*

fromV_office

whereO_no='01'

创建触发器:

createtriggerT_patient_1

onPatient

forupdate

as

ifupdate(W_no)

begin

declare@newW_nochar(10),@oldW_nochar(10)

select@newW_no=W_nofrominserted

select@oldW_no=W_nofromdeleted

updateRecordsetW_no=@newW_no

whereW_no=@oldW_no

end

updatePatient

setW_no='3'

whereR_no='1113'

创建登录信息:

useHOSPITAL

execsp_addlogin'doctor','1234','HOSPITAL'

execsp_grantdbaccess'doctor','HOSPITAL'

useHOSPITAL

grantallonPatienttoHOSPITAL

useHOSPITAL

execsp_addlogin'patient','12345','HOSPITAL'

--execsp_grantdbaccess'patient','hospital_1'

useHOSPITAL

execsp_grantdbaccess'patient','HOSPITAL1'

useHOSPITAL

grantselectonPatienttoHOSPITAL1

E/R图:

总结

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。

因此作为二十一世纪的大学来说掌握程序开发技术是十分重要的,而数据库又是最常见,功能最强大的一种高级语言,因此做好数据库语言课程设计是十分必要的。

回顾起此次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整两周的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,难免同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说SQL语句,通过这次课程设计之后,我等于把前面所学过的知识又重新温故了一遍。

但编程过程中我也得到了很多,不仅又捡起了以前的知识,还学到了一些新知识。

学会了创建数据库,学会了创建数据库多表之间的关系,避免多次写下繁琐的代码。

并且在每完成一个功能并且运行成功时,那种喜悦无以言说。

并且在编程的过程中,有些问题会问道同学,在交流的过程中增进了彼此的感情。

参考文献

 

JeffreyD.ullmanJenniferWidom《数据库系统基础教程》机械工业出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1