住院管理系统课程设计.docx

上传人:b****6 文档编号:7376246 上传时间:2023-01-23 格式:DOCX 页数:14 大小:280.17KB
下载 相关 举报
住院管理系统课程设计.docx_第1页
第1页 / 共14页
住院管理系统课程设计.docx_第2页
第2页 / 共14页
住院管理系统课程设计.docx_第3页
第3页 / 共14页
住院管理系统课程设计.docx_第4页
第4页 / 共14页
住院管理系统课程设计.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

住院管理系统课程设计.docx

《住院管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《住院管理系统课程设计.docx(14页珍藏版)》请在冰豆网上搜索。

住院管理系统课程设计.docx

住院管理系统课程设计

课程设计

课程名称数据库

题目名称住院管理系统

学生学院计算机学院

专业班级

学号

学生姓名

指导教师___左亚尧____________

 

2013年1月17日

目录

一、系统定义…………………………………………………………….1

二、需求分析…………………………………………………………….1

三、系统设计…………………………………………………………….1

四、详细设计……………………………………………………………4

五、课程设计总结………………………………………………………11

六、参考文献……………………………………………………………11

一、系统定义

通过一个住院管理系统的设计,使医院住院管理工作系统化、规范化、自动化,从而达到提高医院管理效率的目的。

医院住院管理是医院管理系统的一个分系统,也是医院管理系统的重要组成部分。

住院管理又分为病人管理和病房管理两个子系统。

病人管理功能比较复杂,管理人员可以全局浏览医院的病人状况,也可以逐条浏览医院病人情况。

管理人员既可以简单查询病人状况,又可以高级查询病人状况,可以添加新的病人资料,可以修改、删除已经存在的病人。

病房管理用来实现对当前病床分配的情况进行查看。

管理人员可以很方便的将某个病房的某些病床分配给一个病人。

二、需求分析

1.功能需求

住院管理系统应实现以下功能:

病房管理模块可以很简单查询病床分配情况。

可以很方便的将医院的空病床分配给住院的病人,对于没有床位的病人直接进行分配,对于已有病房的床位可以进行增减。

另外还可以列出所有的空床位。

病人的管理模块,可以浏览医院当前所有病人的详细资料,可以方面的向该数据库系统中添加新入院病人的资料。

对于现有病人的资料也可以通过一些简单操作来进行修改,病人出院可以对其进行删除。

该病人管理模块可以提供了各种查询。

2.数据需求

某医院住院管理系统中需要如下信息:

科室:

科名,科地址,科电话

病房:

病房号,床位数,所属科室名

医生:

工作证号,姓名,职称,年龄,所属科室名

病人:

病历号,姓名,性别,诊断,病房号,床位号,主管医生

其中:

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

三、系统设计

1.概念结构设计

由需求分析可以知道:

某医院住院管理系统中需要如下信息:

科室:

科名,科地址,科电话

病房:

病房号,床位数,所属科室名

医生:

工作证号,姓名,职称,年龄,所属科室名

病人:

病历号,姓名,性别,诊断,病房号,床位号,主管医生

其中:

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

则E-R图如下所示:

2.逻辑结构设计

将E-R图转换成关系模型并对关系模式进行规范化,至少达到3NF

关系模型如下:

(1)科室(科名,地址,电话)

主码:

科名

(2)病房(病房号,床位数,科名)

主码:

病房号外码:

科名

(3)医生(医生号,姓名,职称,年龄,科名)

主码:

医生号外码:

科名

(4)病人(病历号,姓名,性别,诊断,病房号,床位号,医生号)

主码:

病历号外码:

病房号,医生号

3.物理结构设计

列名

数据类型

约束

科名

char(8)

主码

地址

char(20)

电话

char(12)

科室表

列名

数据类型

约束

病房号

char(4)

主码

床位数

char

(2)

科名

char(8)

外码

病房表

列名

数据类型

约束

医生号

char(10)

主码

姓名

char(4)

unique

职称

char(20)

年龄

smallint

科名

char(8)

外码

医生表

列名

数据类型

约束

病历号

char(4)

主码

姓名

char(8)

年龄

smallint

性别

char

(2)

诊断

char(20)

Notnull

床位号

char(4)

住院时间

datetime

出院时间

datetime

病房号

char(4)

外码

医生号

char(10)

外码

病人表

4.系统功能模块图

 

四、详细设计

1.创建对象

(1)创建数据库

CREATEDATABASEHospital

ONprimary

NAME=hospital,

FILENAME='d:

\DataBase\hospital.mdf',

SIZE=30,

FILEGROWTH=20%)

LOGON

NAME=hospital_log,

FILENAME='d:

\DataBase\hospital.ldf',

SIZE=3MB,

FILEGROWTH=1MB)

(2)创建基本表

--科室表

createtable科室表(

科名char(8)primarykey,--列级完整性约束条件,是主码

地址char(20),

电话char(12)

--医生表

createtable医生表(

医生号char(10)primarykey,--列级完整性约束条件,是主码

姓名char(4)unique,

职称char(20),

年龄smallint,

科名char(8),

foreignkey(科名)references科室表(科名)

--表级完整性约束条件,“科名”是外码,被参照表是“科室表”,被参照列是“科名”

--病房表

createtable病房表(

病房号char(4),

床位数char

(2),

科名char(8),

primarykey(病房号),--表级完整性约束,主码

foreignkey(科名)references科室表(科名)

--表级完整性约束条件,“科名”是外码,被参照表是“科室表”,被参照列是“科名”

--病人表

createtable病人表(

病历号char(4)primarykey,--列级完整性约束条件,是主码

姓名char(8),

年龄smallint,

性别char

(2),

诊断char(20)NOTNULL,

病房号char(4),

床位号char(4),

入院时间datetime,

出院时间datetime,

医生号char(10),

foreignkey(病房号)references病房表(病房号),

--表级完整性约束条件,“病房号”是外码,被参照表是“病房表”,被参照列是“病房号”

foreignkey(医生号)references医生表(医生号)

--表级完整性约束条件,“职工号”是外码,被参照表是“医生表”,被参照列是“医生号”

2.系统功能实现

(1)病人一览

--创建病人一览存储过程

createprocedure病人一览

as

select*

from病人表;

以后一览病人信息可通过存储过程“病人一览”来实现。

在SQL查询分析器中的对象浏览器找到存储过程“病人一览”并打开。

按“执行”

(2)病人查询

--创建病人查询存储过程

createprocedure病人查询

@病历号char(4)

as

select*

from病人表

where病历号=@病历号;

以后查询病人可通过存储过程“病人查询”来实现。

在SQL查询分析器中的对象浏览器找到存储过程“病人查询”并打开。

在“值”中输所要查询病人的病历号。

如输入‘1001’,按执行。

(3)增加病人

--创建增加病人存储过程

createprocedure增加病人

@病历号char(4),

@姓名char(8),

@年龄smallint,

@性别char

(2),

@诊断char(20),

@病房号char(4),

@床位号char(4),

@入院时间datetime,

@医生号char(10)

as

insert

into病人表(病历号,姓名,年龄,性别,诊断,病房号,床位号,入院时间,医生号)

values(@病历号,@姓名,@年龄,@性别,@诊断,@病房号,@床位号,@入院时间,@医生号);

以后增加病人可通过存储过程“增加病人”来实现。

在SQL查询分析器中的对象浏览器找到存储过程“增加病人”并打开。

在“值”的那一栏输入对应参数的内容。

如:

@病历号='1005'

@姓名='陈雷'

@年龄=8

@性别='男'

@诊断='感冒'

@病房号='1001'

@床位号='5'

@入院时间='2013-01-12'

@医生号='100001'

执行后,打开病人表可查到新增的病人:

(4)删除病人

--创建删除病人存储过程

createprocedure删除病人

@病历号char(4)

as

delete

from病人表

where病历号=@病历号;以后删除病人可通过存储过程“删除病人”来实现。

在SQL查询分析器中的对象浏览器找到存储过程“删除病人”并打开。

在“值”中输所要删除病人的病历号。

如‘1005’

可通过病人查询来检测:

执行后输出结果为

(5)病房一览

此功能输出所有各病房的床位数和已用床位数。

--创建病房一览存储过程

createprocedure病房一览

as

select病房表.病房号,床位数,count(*)--count(*)为病人占用床位数

from病人表,病房表

where病人表.病房号=病房表.病房号

groupby病房表.病房号,床位数;

以后一览病房可通过存储过程“病房一览”来实现。

在SQL查询分析器中的对象浏览器找到存储过程“病房一览”并打开。

按执行(无名列为已占床位数)。

(6)病房查询

查询某一病房床位数与床位占用情况。

--创建病房查询存储过程

createprocedure病房查询

@病房号char(4)

as

select病房表.病房号,床位数,count(*)--count(*)为病人占用床位数

from病人表,病房表

where病人表.病房号=病房表.病房号and病房表.病房号=@病房号

groupby病房表.病房号,床位数;

以后查询病房可通过存储过程“病房查询”来实现。

在SQL查询分析器中的对象浏览器找到存储过程“病房查询”并打开。

在“值”中输入要查询的病房号,如‘2001’,执行。

(无名列为已占床位数)

(7)病房修改

此功能修改某一病房的床位数。

--创建病房修改存储过程

createprocedure病房修改

@病房号char(4),

@床位数char

(2)--修改后的床位数

as

update病房表

set床位数=@床位数

where病房号=@病房号;

以后修改病房可通过存储过程“病房修改”来实现。

在SQL查询分析器中的对象浏览器找到存储过程“病房修改”并打开。

在“值”的那一栏输入对应参数的内容。

如:

@病房号='1001'

@床位数='7'

打开病房表,可看到:

病房1001的床位数经修改后变成7。

五、课程设计总结

医院住院管理系统是我第一次使用SQL的数据库,从需求分析、概念结构设计、逻辑结构设计、物理结构设计到各部分功能的实现,不但让我对数据库设计有了更深的理解,而且让我学到很多关于数据库设计的知识和技术,同时也温习了SQL语言的有关知识,锻炼了我的动手能力。

这次课程设计由于时间和能力上的不足,我没有做人机界面,另一方面,这让我深切体会到存储过程的方便性。

在没有人机界面的情况下,我通过创建存储过程来实现系统的功能,打开存储过程,窗口方便简洁,避免了每一步都要通过输入SQL语言来完成,大大加快效率。

通过这次医院住院管理系统的设计,不但让我学到很多知识,更重要的是让我看到了自己的不足之处,在以后的学习和工作中,我一定不懈努力,提高自己这方面的能力。

六、参考文献

数据库系统概论——王珊,萨师煊

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

当前位置:首页 > 小学教育 > 语文

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

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