数据库课程设计.docx

上传人:b****5 文档编号:4183412 上传时间:2022-11-28 格式:DOCX 页数:12 大小:102.16KB
下载 相关 举报
数据库课程设计.docx_第1页
第1页 / 共12页
数据库课程设计.docx_第2页
第2页 / 共12页
数据库课程设计.docx_第3页
第3页 / 共12页
数据库课程设计.docx_第4页
第4页 / 共12页
数据库课程设计.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

数据库课程设计.docx

《数据库课程设计.docx》由会员分享,可在线阅读,更多相关《数据库课程设计.docx(12页珍藏版)》请在冰豆网上搜索。

数据库课程设计.docx

数据库课程设计

 

数据库原理与应用

课程设计说明书

题目:

医院病房计算机管理系统设计

 

院系:

信息科学与工程学院

专业班级:

计算机科学与技术09403班

学号:

201190484

学生姓名:

邵新敏

指导教师:

范青  

 

2011年12月18日

 

一概述

1.1设计前调查

由于现代经济和科技的发展,计算机数据库被越来越多得组织机构用来做管理使用。

几乎所有医院也都已经在使用计算机管理数据的机制,这样就大大减少了医院对病人管理的工作量。

随着医疗事业的迅猛发展,全面提高医院的软件管理水准,更是成为医疗事业发展的当务之急。

然而,传统的人工管理模式已经远远不能满足有效、快捷地处理运营中产生的大量信息数据的需要,从而使得医院无法及时、准确地掌握一线资料,继而影响对病人病情进行正确地分析和预测。

只有管理做到最细微之处,才能让病人体会到医院服务的高标准、高质量,而准确、快速、周全往往就是最基本的成功要素。

该课程设计要求设计一个医院病房对病人的数据库管理系统,数据库中要求包含病人的基本信息,科室的基本信息,医生的基本信息,以及对病房的管理基本信息等。

为了方便对病人病历的查询,该课程设计的设计过程中,注重数据库理论知识的巩固加深,与现实生活中的应用更紧密地结合起来。

1.2设计环境

①  MicrosoftSQLServer2005

②    MicrosoftVisualC++6.0

二需求分析

2.1系统功能要求设计

此系统实现如下系统功能:

(1)使得医院科室对病人的管理工作更加清晰、有条理。

(2)能够实现对病人信息的快速查询功能。

(3)本管理系统操作简便,设计时充分考虑到系统的安全性,完整性,并发控制等方面的功能要求。

(4)高效的管理系统将会使病人得到更多的实惠。

2.2系统概要分析图如下:

 

2.3系统模块设计

医院病房计算机管理系统应该包括科室管理、病房管理、医生管理和对病人的具体信息等四大板块进行恰到好处的管理。

在此管理系统中,病人作为此系统的核心成分,是必须加以重视的对象。

而作为管理层的医院科室管理系统,如何更好地实现对病人的人性化、智能化,快捷有效地服务于病人,也是此医院管理系统中不可或缺德重要分支。

缺少了病人的医院当然不是好的医院,所以,以病人为中心,科室决策层应该充分利用好医院中德医生和病房资源,加强对病人的照顾,如此运营下去,才能好评不断,发展才会更快。

2.4数据字典

数据项是数据库的关系中不可再分的数据单位,下表是利用SQLServer2005建立得“医院科室管理”数据库。

基本表清单及表结构描述如下:

数据库中用到的表:

数据库表名

关系模式名称

说明

Office

科室

科室基本信息表

Room

病房

病房基本管理表

Doctor

医生

医生基本信息表

Patient

病人

病人基本信息表

Office基本情况数据表,结构如下:

字段名

数据类型及长度

约束控制

说明

Oname

Char(12)

主键(primarykey)

科室名

Oaddress

Char(20)

Notnull

科室地址

Otelephone

Char(12)

Notnull

科室电话

Dname

Char(15)

Notnull

医生姓名

Room情况数据表,结构如下:

字段

数据类型及长度

约束控制

说明

Rnum

Int(3)

主键(primarykey)

病房号

Rbnum

Int(5)

Notnull

床位号

Oname

Char(12)

外键

所属科室

Doctor情况数据表,结构如下:

字段名

数据类型及长度

约束控制

说明

Dnum

Char(17)

主键(primarykey)

工作证号

Dname

Char(12)

Notnull

姓名

Dsex

Char(4)

‘男’或‘女’

性别

Dbirthday

Char(15)

Notnull

出生日期

Dtelephone

Char(12)

Notnull

联系电话

Dprofession

Char(12)

Notnull

职称

Oname

Char(12)

外键

所属科室

Patient情况数据表,结构如下:

字段名

数据类型及长度

约束控制

说明

Pnum

Char(17)

主键(primarykey)

病历号

Pname

Char(12)

Notnull

姓名

Psex

Char(4)

Notnull

性别

Pbirthday

Char(20)

Notnull

出生日期

Precord

Char(100)

Notnull

诊断记录

Oname

Char(12)

Notnull

主管医生

Rnum

Int(3)

外键

病房号

三概念模型设计

3.1设计实体与联系

由需求分析的结果可知,本系统设计的实体包括:

(1)科室基本信息:

科室名,科室地址,科室电话,医生姓名。

(2)病房基本信息:

病房号,床位号,所属科室。

(3)医生基本信息:

工作证号,姓名,性别,出生日期,联系电话,职称,所属科室。

(4)病人基本讯息:

病历号,姓名,性别,出生日期,诊断记录,主管医生,病房号

这些实体间的联系包括:

(1)一个科室有多个病房、多名医生,而一个病房只属于一个科室;

(2)一个医生只属于一个科室,但可以负责多个病人的诊治;

(3)一个病人的主管医生只有一个。

3.2系统的局部E—R图

 

 

 

 

3.3系统的全局E—R图:

四逻辑和物理结构设计

4.1由系统E—R图转化而得到的关系模式如下:

(1)科室(科室名,科室地址,科室电话,医生姓名),其主关键字为科室。

(2)病房(病房号,床位号,所属科室),其中主关键字为病房号。

(3)医生(工作证号,姓名,性别,出生日期,联系电话,职称,所属科室),主关键字为工作证号。

(4)病人(病历号,姓名,性别,出生日期,诊断记录,主管医生,病房号),其主关键字为病历号。

(5)拥有(工作证号,科室名),其主关键字为工作证号。

(6)属于(病历号,科室名),主关键字为病历号。

(7)治疗(工作证号,病历号),主关键字为病历号。

4.2分解分析:

(1)各分量都是不可分割的数据项。

满足第一范式;

(2)每一个关系中的非码属性都完全函数依赖于码,符合第二范式;

(3)每个关系中的主属性不传递依赖关系中的每个关系键,符合第三范式;

(4)关系中所有非主属性对每个码都是完全依赖,且所有主码对于每个不包含它的码也是完全函数依赖,没有任何属性完全函数依赖非码的任何一组属性

4.3确定关系模型的存取方法和存储结构

在将概念模型转换成物理模型之后,我们可以对物理模型进行设计,双击物理模型的关系,可以对该关系的名称、注释等信息进行查询。

可对该关系的属性列进行设计,可分别设置其名称、码、数据类型以及主码、是否为空等。

在实际设计中最常用的存取方法是索引发,使用索引可以大大减少数据的查询时间,在建立索引时应遵循:

在经常需要搜索的列上建立索引; 在主关键字上建立索引;在经常用于连接的列上建立索引,即在外键上建立索引;在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的等规则。

才能充分利用索引的作用避免因索引引起的负面作用。

确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。

五、数据库的实施

数据库实施是指根据逻辑设计和物理结构设计的接轨,在计算机上建立起世纪的数据库结构、装入数据、进行测试和试运行的过程。

此阶段主要任务包括创建数据库,加载初始数据,数据库试运行,数据库的安全性和完整性控制数据库的备份与恢复,数据库性能的监督分析和改仅,数据库的重组和重构等。

5.1建立实际的数据库结构

(1)创建科室基本信息表:

createtableOffice()

Onumchar(12)notnull,

Oaddresschar(20)notnull,

Otelephonechar(15)notnull,

Dnamechar(12)notnull,

constraintPK_Officeprimarykey(Onum)

Go

(2)创建病房基本信息表:

createtableRoom(

RnumInt(3)notnull,

RbnumInt(5)notnull,

Onumchar(12)notnull,

constraintPK_Roomprimarykey(Rnum)

constraintPK_Onameforeignkey(Onum)

Go

(3)创建医生基本信息表

createtableDoctor(Dnumchar(17)notnull,

Dnamechar(12)notnull,

Dsexchar(4)notnull

Dbirthdaychar(15)notnull

Dtelephonechar(12)notnull

Dprofessionchar(12)notnull

Onumchar(12)notnull

constraintPK_Odoctorprimarykey(Dnum)

constraintPK_Onameforeignkey(Onum)

Go

(4)创建病人基本信息表

createtablePationt(Pnumchar(17)notnull

Pnamechar(12)notnull

Psexchar(4)notnull

Pbirthdaychar(20)notnull

Precordchar(100)notnull

Onamechar(12)notnull

Rnumint(3)notnull

constraintPK_Odoctorprimarykey(Pnum)

constraintPK_Onameforeignkey(Rnum)

Go

5.2装入数据

装入数据又称数据库加载,是数据库实施阶段的主要工作。

在数据库结构建立好之后,就可以向数据库中加载数据了。

由于本数据库系统属于小型数据库管理系统,可以直接采用人工添加的方法。

首先,将需要装入的数据从各个部门的数据文件中帅选出来,转换成符合此医院病房计算机管理系统数据库要求的数据格式,然后输入到计算机中,最后进行数据校验,检查输入的数据是否有误。

在装入数据的过程中,为了确保装入的数据准确无误,高度重视数据的校验工作。

在数据转换过程中应使用不同德方法进行多次校验,确认正确后方可入库。

5.3应用程序编码与调试

(1)登陆系统

BOOLCDenglu:

:

OnInitDialog()//初始化登陆窗口

{

CDialog:

:

OnInitDialog();

m=0;

//TODO:

Addextrainitializationhere

}

voidCDenglu:

:

Ondenglu()//登陆系统,输入账户密码三次错误退出系统

{

//TODO:

Addyourcontrolnotificationhandlercodehere

UpdateData();

intn=0;

CDlguanlidlgl;//Cdlgaunli是数据据库中账户表相应的类

dlgl.Open();

dlgl.MoveFirst();

while(!

dlgl.IsEOF())//读取数据库里面的账户信息

{

if(strcmp(dlgl.m_ID,m_yonghuming)==0&&strcmp(dlgl.m_code,m_code)==0)

//判断账户密码是否正确

{

this->EndDialog(0);

n++;//n是用来控制状态

}

dlgl.MoveNext();

}

if(n==0)

{

if(m==0)//m控制输入账户密码错误次数

MessageBox("对不起,您输入的账号或密码错误!

您还有2次输入机会!

");

if(m==1)

MessageBox("对不起,您输入的账号或密码错误!

您还有1次输入机会!

");

if(m==2)

MessageBox("对不起,您输入的账号或密码错误!

您已三次输入错误,系统将退出!

");

m++;

}

if(m>2)exit(0);

}

 

(2)病人病历入库登记系统

voidCRukudengji:

:

OnButton1()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

UpdateData();

CShujukuSetcaset;

CTimenow=CTime:

:

GetCurrentTime();//获取当前时间

if(Pname>0&&(Pname!

=""))//判断录入数据是否为0或为空

{

{

caset.Open();

caset.MoveFirst();

while(!

caset.IsEOF())

{

if(Pname==caset.m_column1)

{//比较录入条码与库存是否有相同,有则直接加1,没有则插入新项

caset.Edit();

caset.m_column5+=1;

caset.Update();

caset.Close();

CRkdjrkdj;

rkdj.Open();

rkdj.AddNew();

rkdj.m_column1=now;

rkdj.m_column2=Pname;

rkdj.m_column3=Psex;

rkdj.m_column4=Pirthday;

rkdj.m_column5=Precord;

rkdj.m_column6=Dnum;

rkdj.m_column7=Rnum;

rkdj.Update();

rkdj.Close();

MessageBox("录入成功!

");

this->EndDialog(0);

}

elsecaset.MoveNext();//移动到下一个记录集

}

elseMessageBox("录入信息不完整!

");

this->EndDialog(0);

}

六、数据库的维护

当试运行数据库合格后,数据库开发设计的工作就基本完成了,接下来就是正式运行中的调试,应为该系统比较简单,数据量小,数据库中几乎不会发生什么大的变化,但是还是需要做好数据的备份,在SQLserver2005中我们可以利用备份数据库的功能对已经设计好的数据做备份,如果数据库受到破坏或系统故障,我们便可轻松的利用备份文件恢复数据库的数据。

当然也可以利用其他各种方法进行数据维护。

七、总结

在本系统的设计中,SQLServer2005数据库的使用技术和VC++6.0的完美结合,为我们创造了一个具有高效简捷查询功能的数据库。

进一步深入理解数据库设计的整个过程,学会系统需求分析、数据库概念结构设计、逻辑结构设计、物理结构设计和数据库的实施和维护过程,提高数据库的使用效率。

综合提高训练编程能力,实现目标代码得能力及调试代码得能力。

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

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

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

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