数据库课程设计医院管理系统.docx

上传人:b****0 文档编号:9364192 上传时间:2023-05-18 格式:DOCX 页数:41 大小:943.65KB
下载 相关 举报
数据库课程设计医院管理系统.docx_第1页
第1页 / 共41页
数据库课程设计医院管理系统.docx_第2页
第2页 / 共41页
数据库课程设计医院管理系统.docx_第3页
第3页 / 共41页
数据库课程设计医院管理系统.docx_第4页
第4页 / 共41页
数据库课程设计医院管理系统.docx_第5页
第5页 / 共41页
数据库课程设计医院管理系统.docx_第6页
第6页 / 共41页
数据库课程设计医院管理系统.docx_第7页
第7页 / 共41页
数据库课程设计医院管理系统.docx_第8页
第8页 / 共41页
数据库课程设计医院管理系统.docx_第9页
第9页 / 共41页
数据库课程设计医院管理系统.docx_第10页
第10页 / 共41页
数据库课程设计医院管理系统.docx_第11页
第11页 / 共41页
数据库课程设计医院管理系统.docx_第12页
第12页 / 共41页
数据库课程设计医院管理系统.docx_第13页
第13页 / 共41页
数据库课程设计医院管理系统.docx_第14页
第14页 / 共41页
数据库课程设计医院管理系统.docx_第15页
第15页 / 共41页
数据库课程设计医院管理系统.docx_第16页
第16页 / 共41页
数据库课程设计医院管理系统.docx_第17页
第17页 / 共41页
数据库课程设计医院管理系统.docx_第18页
第18页 / 共41页
数据库课程设计医院管理系统.docx_第19页
第19页 / 共41页
数据库课程设计医院管理系统.docx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数据库课程设计医院管理系统.docx

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

数据库课程设计医院管理系统.docx

数据库课程设计医院管理系统

内容摘要

数据库的设计是指对一个给定的应用环境,构造数据库模式,建立数据库及其应用系统,满足各种用户需求。

作为信息资源开发、管理和服务的一种有效的手段,数据库技术的应用已越来越广泛,从小型的单项事务处理系统到大型的信息系统大都用先进的数据库技术来保持系统数据的安全性、完整性和共享性。

对一个实际的系统来说,数据库表的设计在遵循数据库理论的同时,必须能用开发工具来实现用户在各方面提出的功能要求。

本医院管理系统是经过实地需求分析调查、通过概念机构设计与逻辑结构设计等过程后完成的一个小型管理系统,包括:

对医生、护士、收费人员、病人、药品及检查的各种基本信息的查询功能,对病人病房、收费的管理功能等。

同时对不同的人员授予不同的权利,保证了数据库的安全性。

关键词:

医院管理需求分析查询住院管理收费管理

'

第一章需求分析5

信息要求5

处理要求5

安全性和完整性要求5

第二章概念结构设计1

分E-R流程图1

总E-R流程图4

第三章逻辑结构设计5

关系模型5

:

设计用户子模式5

第四章物理结构设计6

第五章数据库实施9

创建医院管理系统9

创建必要索引10

建立视图10

建立必要的存储过程及触发器11

第六章数据库应用系统的实施和维护13

总结18

致谢19

参考文献20

附录20

 

 

医院管理系统

第一章需求分析

信息要求

本系统实现了以下信息:

基本信息模块:

包括行政人员信息、医生信息、护士信息、收费人员信息、病人信息、病房信息、药品信息。

管理信息模块:

人员管理(员工、病人)、药品管理、住院部管理、收费管理。

处理要求

要求本系统能够投入实际的使用并且满足基本的功能要求。

要求具有较高的可靠性、安全性和易维护性,具有较高的可移植性。

具体要求如下:

(1)基本信息查询

该查询主要是指对医生、病人等信息的查询。

(2)医患

病人来医院看病,为其选择科室,进而选择医生,对病人挂号登陆就医信息。

(3)收费

病人通过自己的编号可以到收费窗口查询和缴纳自己的药费和检查费。

(4)住院

对住院的病人在住院部登录信息,住院部确定病人病房病床,安排所属区域护士对病人进行辅助治疗和看护。

安全性和完整性要求

该系统对不同人员进行了不同的权限设置:

行政人员可以查看医院数据库中的任何信息、医生只能查询病人及病人住院的信息,收费人员只能查看收费信息。

第二章概念结构设计

分E-R流程图

 

图2-1行政人员概念模型

 

图2-2医生概念模型

 

图2-3护士概念模型

 

图2-4病人概念模型

 

图2-5检查、药品概念模型

 

 

图2-6收费人员概念模型

 

图2-7病房病床概念模型

 

图2-8医患关系概念模型

 

 

图2-9病人住院概念模型

 

 

 

图2-10收费信息概念模型

 

总E-R流程图

图2-11总体E-R概念模型

 

第三章逻辑结构设计

关系模型

系统中所涉及的关系如下:

行政人员(行政人员编号,行政人员姓名,性别,年龄,职务,联系方式)

医生(医生编号,医生姓名,性别,年龄,所属科室,联系方式)

病人(病人编号,病人姓名,性别,年龄,就医科室,联系方式)

住院部(病房病床编号,所属科室,是否住人)

护士(护士编号,护士姓名,性别,年龄,所属科室)

检查及药品(检查或药品编号,检查或药品名称,单价,检查或存放地点)

收费人员(收费人员编号,收费人员姓名,性别,年龄)

医患(医生编号,病人编号,就医时间)

收费(收费流水账号,收费人员编号,病人编号,药品或检查编号,数量,价格)

住院管理(病床号,病人编号,医生编号,护士编号,入住时间)

设计用户子模式

根据用户的需求,也为了保护系统的安全性,本系统设计了下面一些视图:

病人基本信息查询表(病人编号,病人姓名,性别,年龄,就医科室,联系方式,主治医生编号,主治医生姓名,就医时间);

住院管理查询表(病床号,病人编号,病人姓名,所属区域,入住时间,所属区域护士编号,护士姓名);

收费信息表(收费流水账号,收费人员编号,病人编号,药品或检查编号,数量,价格)。

 

第四章物理结构设计

字段名

字段类型

长度

主键或外键

字段值约束

对应中文属性名

Ano

varchar

10

PrimaryKey

Notnull

行政人员编号

Aname

varchar

20

 

Notnull

行政人员姓名

Asex

char

2

 

 

行政人员性别

Aage

int

 

 

行政人员年龄

Adept

varchar

30

行政人员职务

Atel

varchar

11

行政人员联系方式

表4-1行政人员表

表4-2医生信息表

字段名

字段类型

长度

主键或外键

字段值约束

对应中文属性名

Dno

varchar

10

PrimaryKey

Notnull

医生编号

Dname

varchar

20

 

Notnull

医生姓名

Dsex

char

2

 

 

医生性别

Dage

int

 

 

医生年龄

Ddept

varchar

30

医生所属科室

Dtel

varchar

11

医生联系方式

表4-3护士信息表

字段名

字段类型

长度

主键或外键

字段值约束

对应中文属性名

Nno

varchar

10

PrimaryKey

Notnull

护士编号

Nname

varchar

20

Notnull

护士姓名

Nsex

char

2

护士性别

Nage

int

护士年龄

Ndept

varchar

30

Notnull

护士所属科室

表4-4病人信息表

字段名

字段类型

长度

主键或外键

字段值约束

对应中文属性名

Pno

varchar

10

PrimaryKey

Notnull

病人编号

Pname

varchar

20

Notnull

病人姓名

Psex

char

2

病人性别

Page

int

病人年龄

Pdept

varchar

30

Notnull

病人就医科室

Ptel

varchar

11

病人联系方式

表4-5收费人员信息表

字段名

字段类型

长度

主键或外键

字段值约束

对应中文属性名

Cno

varchar

10

PrimaryKey

Notnull

收费人员编号

Cname

varchar

20

Notnull

收费人员姓名

Csex

char

2

收费人员性别

Cage

int

收费人员年龄

表4-6检查及药品信息表

字段名

字段类型

长度

主键或外键

字段值约束

对应中文属性名

Dnum

varchar

10

PrimaryKey

Notnull

检查或药品编号

Dnam

varchar

20

Notnull

检查或药品名称

Dprice

money

检查或药品价格

Dstorage

varchar

30

检查地点或药品存放处

字段名

字段类型

长度

主键或外键

字段值约束

对应中文属性名

Hbednumber

char

6

PrimaryKey

Notnull

病床编号

Hdept

varchar

30

 

病床所属科室

Hflag

int

 

 Notnull

病床是否住人

表4-7病房病床信息表

表4-8医患关系表

字段名

字段类型

长度

主键或外键

字段值约束

对应中文属性名

Dno

char

6

PrimaryKey

Notnull

医生编号

Pnot

varchar

30

PrimaryKey

Notnull

病人编号

DPTime

int

看病时间

字段名

字段类型

长度

主键或外键

字段值约束

对应中文属性名

Pno

varchar

10

ForeignKey

病人编号

Dno

varchar

10

ForeignKey

医生编号

Nno

varchar

10

ForeignKey

护士编号

HTime

Date

入住时间

Hbednumber

char

6

PrimaryKey

Notnull

病床号

表4-9住院信息表

 

表4-10收费信息表

字段名

字段类型

长度

主键或外键

字段值约束

对应中文属性名

Tno

varchar

10

PrimaryKey

Notnull

收费流水账号

Cno

varchar

10

ForeignKey

收费人员编号

Pno

varchar

10

ForeignKey

病人编号

Dnum

varchar

10

ForeignKey

药品或检查编号

Tnumber

int

数量

Tprice

money

6

价格

 

第五章数据库实施

创建医院管理系统

--创建医院管理系统数据库

CREATEDATABASEhospitalsystem

ON

(NAME=hospital_data,

FILENAME='e:

\05\',

SIZE=10MB,

MAXSIZE=300MB,

FILEGROWTH=10%)

LOGON

(NAME=hospital_log,

FILENAME='e:

\05\',

SIZE=5MB,

MAXSIZE=200MB,

FILEGROWTH=2MB)

--例举创建各类信息表

创建医生信息表

CREATETABLEDoctor

(DnoVARCHAR(10)PRIMARYKEY,

DnameVARCHAR(20),

DsexVARCHAR

(2),

DageINT,

DdeptVARCHAR(50),

DtelVARCHAR(11)

);

创建病人信息表

CREATETABLEPatient

(PnoVARCHAR(10)PRIMARYKEY,

PnameVARCHAR(20),

PsexVARCHAR

(2),

PageINT,

PtelVARCHAR(11),

PdeptVARCHAR(50)

);

创建医生病人关系表

CREATETABLEDoctor_Patient

(DnoVARCHAR(10),

PnoVARCHAR(10),

DPTimeDate,

PRIMARYKEY(Dno,Pno),

FOREIGNKEY(Dno)REFERENCESDoctor(Dno),

FOREIGNKEY(Pno)REFERENCESPatient(Pno)

);

创建住院病人信息表

createtablePHouse

(PnoVARCHAR(10),

DnoVARCHAR(10),

NnoVARCHAR(10),

HTimeDate,

HbednumberCHAR(6)PRIMARYKEY,

FOREIGNKEY(Dno)REFERENCESDoctor(Dno),

FOREIGNKEY(Pno)REFERENCESPatient(Pno),

FOREIGNKEY(Nno)REFERENCESNurse(Nno)

);

创建收费信息表

CREATETABLECharge

(TnoVARCHAR(10)PRIMARYKEY,

CnoVARCHAR(10),

PnoVARCHAR(10),

DnumVARCHAR(10),

TnumberINT,

TpriceMONEY,

FOREIGNKEY(Cno)REFERENCESCharger(Cno),

FOREIGNKEY(Pno)REFERENCESPatient(Pno),

FOREIGNKEY(Dnum)REFERENCESDrug(Dnum)

);

创建必要索引

CREATEINDEXAdministor_INDEXONAdministor(Ano);

CREATEINDEXDoctor_INDEXONDoctor(Dno);

CREATEINDEXNurse_INDEXONNurse(Nno);

CREATEINDEXPatient_INDEXONPatient(Pno);

CREATEINDEXDrug_INDEXONDrug(Dnum);

CREATEINDEXHouse_INDEXONHouse(Hbednumber);

建立视图

--创建医生信息视图

CREATEVIEW医生信息_VIEW

AS

SELECTDno医生编号,Dname医生姓名,Dsex性别,Dage年龄,

Ddept部门,Dtel电话

FROMDoctor;

SELECT*FROM医生信息_VIEW

WHERE医生编号='D001';

--创建收费人员信息视图

CREATEVIEW收费人员信息_VIEW

AS

SELECTCno收费人员编号,Cnam收费人员姓名,Cage年龄,Csex性别

FROMCharger;

SELECT*FROM收费人员信息_VIEW

WHERE收费人员编号='C001';

--创建病人信息视图

CREATEVIEW病人信息_VIEW

AS

SELECT病人编号,Pname病人姓名,Psex性别,Page年龄,Ptel电话,Pdept就诊科室,

主治医生编号,Dname主治医生姓名,DPTime就诊时间

FROMPatient,Doctor,Doctor_Patient

WHERE=AND=;

SELECT*FROM病人信息_VIEW

WHERE病人编号='P001';

--创建住院部管理视图

CREATEVIEW住院部信息_VIEW

AS

SELECT病房床位编号,病人编号,Pname病人姓名,Hdept所属区域,所属护士编号,Nname所属护士姓名

FROMHouse,Nurse,Patient,PHouse

WHERE=AND=AND=;

SELECT*FROM住院部信息_VIEW

WHERE病房床位编号='240902';

--创建药品信息视图

CREATEVIEW检查及药品信息_VIEW

AS

SELECTDnum编号,Dnam名称,Dprice单价,Dstorage位置

FROMDrug;

--创建收费信息视图

CREATEVIEW收费信息_VIEW

AS

SELECTTno收费编号,Cno收费员编号,Pno病人编号,Dnum药品编号,Tnumber数量,Tprice价格

FROMCharge;

建立必要的存储过程及触发器

触发器一检查病人挂号与医生科目是否相同

CREATETRIGGER病人医生

ONDoctor_Patient

FORINSERT

AS

DECLARE@DDEPTVARCHAR(20),@PDEPTVARCHAR(20),@DNOVARCHAR(20),@PNOVARCHAR(20)

BEGIN

SELECT@DNO=DnoFROMINSERTED

SELECT@PNO=PnoFROMINSERTED

SELECT@DDEPT=DdeptFROMDoctorWHEREDno=@DNO

SELECT@PDEPT=PdeptFROMPatientWHEREPno=@PNO

IF(@DDEPT=@PDEPT)

PRINT'插入成功'

ELSE

BEGIN

PRINT'无法插入'

ROLLBACK

END

END

GO

触发器二检查病人病房科目是否相,同病床是否有人

CREATETRIGGER病人住院

ONPHouse

FORINSERT

AS

DECLARE@BEDNUMVARCHAR(10),@PNOVARCHAR(20),@PDEPTVARCHAR(30),@HDEPTVARCHAR(30),@FLAGINT

SELECT@PNO=PnoFROMINSERTED

SELECT@BEDNUM=HbednumberFROMINSERTED

SELECT@PDEPT=PdeptFROMPatientWHEREPno=@PNO

SELECT@HDEPT=HdeptFROMHouseWHEREHbednumber=@BEDNUM

SELECT@FLAG=HflagFROMHouseWHEREHbednumber=@BEDNUM

IF(@FLAG=1)

BEGIN

PRINT'病房正在被使用!

'

ROLLBACK

END

ELSE

BEGIN

IF(@HDEPT!

=@PDEPT)

BEGIN

PRINT'无法插入,病人居住科室不对!

'

ROLLBACK

END

ELSE

UPDATEHouseSETHflag=1WHEREHbednumber=@BEDNUM

END

GO

插入收费信息表的存储过程

CREATEPROC收费

@TNOVARCHAR(10),@CNOVARCHAR(10),@PNOVARCHAR(10),@DNUMVARCHAR(10),@TNUMBERINT

AS

DECLARE@TPRICEMONEY,@DPRICEMONEY

SELECT@DPRICE=DpriceFROMDrugWHEREDnum=@DNUM

SET@TPRICE=@TNUMBER*@DPRICE

INSERTINTOChargeVALUES(@TNO,@CNO,@PNO,@DNUM,@TNUMBER,@TPRICE)

GO

EXEC收费'11','C001','P001','000123',4

EXEC收费'12','C001','P002','000127',3

EXEC收费'13','C001','P003','000901',1

SELECT*FROMCharge;

第六章数据库应用系统的实施和维护

图6-1用户登录界面

图6-2系统主界面

图6-3员工管理界面

图6-4医生信息查询窗口

通过本窗体可以查询医生的基本信息。

--创建医生信息视图

CREATEVIEW医生信息_VIEW

AS

SELECTDno医生编号,Dname医生姓名,Dsex性别,Dage年龄,

Ddept部门,Dtel电话

FROMDoctor;

SELECT*FROM医生信息_VIEW

WHERE医生编号='D001';

图6-5病人信息查询窗口

通过本窗口可以对病人的信息进行查询(包括:

病人基本信息、主治医生及就医时间)。

--创建病人信息视图

CREATEVIEW病人信息_VIEW

AS

SELECT病人编号,Pname病人姓名,Psex性别,Page年龄,Ptel电话,Pdept就诊科室,

主治医生编号,Dname主治医生姓名,DPTime就诊时间

FROMPatient,Doctor,Doctor_Patient

WHERE=AND=;

SELECT*FROM病人信息_VIEW

WHERE病人编号='P001';

图6-6住院信息查询窗口

通过本窗口可以查询病房的信息(包括:

病床基本信息、病人信息、所属护士信息)。

--创建住院部管理视图

CREATEVIEW住院部信息_VIEW

AS

SELECT病房床位编号,病人编号,Pname病人姓名,Hdept所属区域,所属护士编号,Nname所属护士姓名

FROMHouse,Nurse,Patient,PHouse

WHERE=AND=AND=;

SELECT*FROM住院部信息_VIEW

WHERE病房床位编号='240902';

DROPVIEW住院部信息_VIEW;

图6-7收费信息查询窗口

通过本窗口可以查到病人所要缴纳费用的具体信息(如具体检查费用、药品费用等)。

--创建收费信息视图

CREATEVIEW收费信息_VIEW

AS

SELECTTno收费编号,Cno收费员编号,Pno病人编号,Dnum药品编号,Tnumber数量,Tprice价格

FROMCharge;

SELECT*FROM收费信息_VIEW

WHERE病人编号='P001';

DROPVIEW收费信息_VIEW;

图6-8检查项目及药品信息查询窗口

通过本窗口可以查询到药品的具体信息(如数量、编号、单价、存储位置等),还可以查到检查项目的具体信息。

--创建检查药品信息视图

CREATEVIEW检查及药品信息_VIEW

AS

SELECTDnum编号,Dnam名称,Dprice单价,Dstorage位置

FROMDrug;

SELECT*FROM检查及药品信息_VIEW

WHERE编号='000123';

总结

本次课程设计根据其具体情况,设计完成的是医院管理系统。

通过本次课程设计巩固了刚学习的数据库理论知识,同时加强了对数据库应用方面的理解,深刻体会到了理论结合实践的学习方法。

同时,在本次课程设计的完成过程中,学会了通过MicrosoftOfficeExcel和C#软件来画窗体,用Word画E-R图。

并且对数据库设计步骤

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2