数据库系统概论课程设计说明书某医院住院部信息系统.docx
《数据库系统概论课程设计说明书某医院住院部信息系统.docx》由会员分享,可在线阅读,更多相关《数据库系统概论课程设计说明书某医院住院部信息系统.docx(27页珍藏版)》请在冰豆网上搜索。
数据库系统概论课程设计说明书某医院住院部信息系统
学号
0806420116
成绩
课程设计说明书
设计名称数据库系统概论
设计题目某医院住院部信息系统
设计时间2011.1.4~2011.1.7
学院信息与控制工程学院
专业信息管理与信息系统
姓名陈宝香
2011年1月7日
目录
一、课程设计的目的-------------------------------------------------------------1
二、课程设计题内容要求--------------------------------------------------------1
三、设计说明------------------------------------------------------------------1
1系统的功能需求--------------------------------------------------------------1
2系统的功能设计--------------------------------------------------------------1
3数据库设计与实现------------------------------------------------------------2
3.1数据库的设计----------------------------------------------------------3
3.2数据库的实现----------------------------------------------------------6
4代码实现--------------------------------------------------------------------9
4.1添加记录功能主要代码--------------------------------------------------9
4.2修改记录功能主要代码-------------------------------------------------10
4.3删除记录功能主要代码-------------------------------------------------11
4.4关键字检索功能主要代码-----------------------------------------------11
5功能界面的实现-------------------------------------------------------------12
5.1登录功能界面---------------------------------------------------------12
5.2注册功能界面---------------------------------------------------------12
5.3系统功能界面---------------------------------------------------------12
添加记录功能---------------------------------------------------------12
修改记录功能---------------------------------------------------------14
删除记录功能---------------------------------------------------------16
关键字检索功能-------------------------------------------------------17
四、总结---------------------------------------------------------------------18
附录
某医院住院部信息系统
一、课程设计的目的
1.能够正确运用《数据库系统概论》等课程的基本理论和知识,结合一个模拟课题,初步掌握管理信息系统的方案设计、论证和分析方法。
2.了解在Windows环境下,使用SQLServer开发管理信息系统所需的计算机软、硬件环境。
3.理解SQLServer中数据库和表的概念,能根据题目的要求设计并建立数据库,建立数据库中表与表之间的关系。
4.通过编程和上机调试,进一步提高计算机的操作水平,提高解决实际问题的能力。
5.初步树立正确的程序设计思想,培养分析问题、解决问题的能力,提高查询资料和撰写书面文件的能力。
二、课程设计题内容要求
1.论述课题的性质、内容以及本次课程设计的目的和要求。
2.说明系统对计算机软、硬件环境的基本要求,对Windows操作系统和SQLServer数据库管理系统简要的说明。
3.数据库的建立,数据库中表的结构,各表中关键字的设置,表与表之间的关系。
4.数据输入、调试、修改并运行通过。
5.编写课程设计说明书。
三、设计说明
1系统的功能需求
需求分析是在于要弄清用户对开发的数据库应用系统的确切要求。
数据库设计的第一步是明确数据库的目的和如何使用,也就是说需要从数据库中得到哪些信息。
明确目的之后,就可以确定您需要保存哪些主题的信息(表),以及每个主题需要保存哪些信息(表中字段)。
在构造系统时,首先从需求出发构造数据库表,然后再由数据库表结合需求划分系统功能模块。
这样,就把一个大的系统分解成了几个小系统。
这里把系统划分为了两个部分:
医生护士信息管理,病人信息管理,能够实现以下功能:
①能够实现对所有医生、护士的基本信息的查询和编辑管理;
②能够实现对所有病人的基本信息的查询和编辑管理;
③能够实现对其他有关实体的基本信息的查询和编辑管理。
2系统的功能设计
系统结构示意图:
2.1能够存储一定数量的医护人员的信息,并方便有效的进行相应的数据操作和管理,这主要包括:
1)医护人员信息的添加
2)医护人员信息的删除
3)医护人员信息的修改
4)医护人员信息的关键字检索
2.2能够对一定数量的病人的信息存储与管理,这其中包括:
1)病人信息的添加
2)病人信息的删除
3)病人信息的修改
4)病人信息的关键字检索
2.3能够对其他有关实体的信息存储与管理,这其中包括:
1)信息的登记、删除及修改
2)信息的多关键字检索查询
2.4能够提供一定的安全机制,提供数据信息授权访问,防止随意删改、查询。
2.5对查询、统计的结果能够列表显示。
3数据库设计与实现
3.1数据库的设计
3.1.1概念设计阶段
(1)选择中层数据流为切入点,通常选择实际系统中的子系统;
(2)设计分E-R图,即各子模块的E-R图;
(3)生成初步E-R图,通过合并方法,做到各子系统实体、属性、联系统一;
医生护士管理子系统中各个实体及其属性如下:
医生(医生工号,医生姓名,工龄,职称,)
病人(病人编号,病人姓名,地址,入院日期,)
护士(护士工号,护士姓名,年龄)
科室(科室编号,科室名称,科室地址,联系电话)
手术(手术编号,手术名称,手术费用)
手术室(手术室编号,手术室名称)
其ER图如下:
病人病房管理子系统中各个实体及其属性如下:
病人(病人编号,病人姓名,地址,入院日期,)
医生(医生工号,医生姓名,工龄,职称,)
护士(护士工号,护士姓名,年龄)
病历(病历编号,病历详情)
手术(手术编号,手术名称,手术费用)
病房(病房编号,病房等级,病床总数,空床数目)
账单(账单编号,项目,金额)
其ER图如下:
(4)生成全局E-R图,通过消除冲突冗余等方面。
消除冲突:
①命名冲突:
异名同义,主任医师和医生含义相同;患者于病人含义相同。
②结构冲突:
主任医师与医生式同一实体,在不同E-R图中的属性不同,需要取并集。
消除冗余:
医生与病人之间的治疗的关系已经包含了主任医师与患者的联系所以可以省略。
3.1.2逻辑设计
实体型转换为关系模式。
实体的属性就是关系的属性,实体的码就是关系的码。
对于实体间的联系则有以下不同的情况:
一个m:
n联系转换为一个关系模式。
与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
一个1:
n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
一个1:
1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
三个或三个以上实体间的一个多元联系可以转换为一个关系模式。
与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合具有相同码的关系模式可合并。
由于科室与医生的联系方式是1:
n(一对多),可以将其之间的联系与n端实体医生合并,医生、病房与病人之间的维护联系是1:
n(一对多),科室、护士与病房之间的维护联系是1:
n(一对多),病人、手术室与手术之间的维护联系是1:
n(一对多),护士和手术室之间的维护联系是1:
n(一对多),同样也将其之间的联系与n端实体合并,具体的基本E-R图向关系模型的转化如下:
医生(医生工号,医生姓名,工龄,职称,手术编号,科室编号)
病人(病人编号,病人姓名,地址,入院日期,医生工号,病房编号,病历编号,账单编号)
科室(科室编号,科室名称,科室地址,联系电话)
手术(手术编号,手术名称,手术费用,手术室编号,病人编号)
手术室(手术室编号,手术室名称)
护士(护士工号,护士姓名,年龄,手术室编号)
病房(病房编号,病房等级,病床总数,空床数目,护士工号,科室编号)
病历(病历编号,病历详情)
账单(账单编号,项目,金额)
3.1.3物理设计
数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:
(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;
(2)对物理结构进行评价,评价的重点是时间和空间效率。
3.2数据库的实现
3.2.1建立数据库
createdatabaseyiyuan;
3.2.2建立数据表
(1)医生信息表的建立:
createtable医生
{
医生工号char(10)primarykey,
医生姓名char(20)notnull,
职称char(20)notnull,
手术编号char(10),
科室编号char(10),
foreignkey(手术编号)references手术(手术编号),
foreignkey(科室编号)references科室(科室编号),
}
(2)病人基本信息表的建立:
createtable病人
{
病人编号char(10)primarykey,
病人姓名char(20)notnull,
地址char(20)notnull,
医生工号char(10),
病房编号char(10),
病历编号char(10),
账单编号char(10),
foreignkey(手术编号)references手术(手术编号),
foreignkey(科室编号)references科室(科室编号),
}
(3)护士基本信息表的建立:
createtable护士
{
护士工号char(10)primarykey,
护士姓名char(20)notnull,
年龄char(20)notnull,
手术室编号char(10),
foreignkey(手术室编号)references手术室(手术室编号),
}
(4)病房基本信息表的建立:
createtable病房
{
病房编号char(10)primarykey,
病房等级char(20)notnull,
病床总数int
(2)notnull,
空床数目int
(2),
护士工号char(10),
科室编号char(10),
foreignkey(护士编号)references护士(护士编号),
foreignkey(科室编号)references科室(科室编号),
}
(5)科室基本信息表的建立:
createtable科室
{
科室编号char(10)primarykey,
科室名称char(20)notnull,
科室地址char(10)notnull,
联系电话char(10),
}
(6)手术基本信息表的建立:
createtable手术
{
手术编号char(10)primarykey,
手术名称char(20)notnull,
手术费用float(6),
手术室编号char(10),
科室编号char(10),
foreignkey(手术室编号)references手术室(手术室编号),
foreignkey(病人编号)references病人(病人编号),
}
(7)手术室基本信息表的建立:
createtable手术室
{
手术室编号char(10)primarykey,
手术室名称char(20)notnull,
}
(8)手术室基本信息表的建立:
createtable病历
{
病历编号char(10)primarykey,
病历详情char(40)notnull,
}
(9)账单基本信息表的建立:
createtable账单
{
账单编号char(10)primarykey,
项目int(4)notnull,
详情char(40),
金额float(8),
}
3.2.3建立视图
用于显示当前病人、医生、病房、账单基本信息的视图定义如下:
createviewbingrenview(病人姓名,医生姓名,病房编号,病房等级,账单详情,金额)
as
select病人姓名,医生姓名,病人.病房编号,病房等级,详情,金额
from病人,医生,病房,账单
where病人.医生工号=医生.医生工号and病人.病房编号=病房.病房编号and病人.账单编号=账单.账单编号
4代码实现(SQL查询,功能实现)
4.1添加记录功能主要代码
①从数据库相关表中获取数据
<%setcn=server.CreateObject("ADODB.Connection")
cn.open"dsn=yiyuan;uid=sa;pwd=123"
sql="select*from医生"
SetRs=cn.Execute(sql)
%>
②将从网页中获得的数据插入数据库的表中
<%setcn=server.CreateObject("ADODB.Connection")
cn.open"dsn=yiyuan;uid=sa;pwd=123"
sql="insertinto医生(医生工号,医生姓名,职称,手术编号,科室编号)values('"+request.form("1")+"','"+request.form("2")+"','"+request.form("3")+"','"+request.form("4")+"','"+request.form("5")+"')"
SetRs=cn.Execute(sql)
%>
4.2修改记录功能主要代码
①从数据库相关表中获取数据
<%setcn=server.CreateObject("ADODB.Connection")
cn.open"dsn=yiyuan;uid=sa;pwd=123"
sql="select*from医生"
SetRs=cn.Execute(sql)
%>
②从表中选择对应的医生工号的信息进行修改
<%setcn=server.CreateObject("ADODB.Connection")
cn.open"dsn=yiyuan;uid=sa;pwd=123"
sql="select*from医生where医生工号='"+request.form("xsno")+"'"
SetRs=cn.Execute(sql)
%>
③更新表中相应的医生的信息
<%
xsno=request.form("xsno")
xsxb=request.form("xsxb")
xsdw=request.form("xsdw")
xsmm=request.form("xsmm")
iflen(xsxb)=0then
xsxb=""
endif
iflen(xsdw)=0then
xsdw=""
endif
iflen(xsmm)=0then
xsmm=""
endif
setcn=server.CreateObject("ADODB.Connection")
cn.open"dsn=yiyuan;uid=sa;pwd=123"
sql="update医生set职称='"+xsxb+"',手术编号='"+xsdw+"',科室编号='"+xsmm+"'where医生工号='"+xsno+"'"
SetRs=cn.Execute(sql)
setrs=nothing
cn.close
%>
4.3删除记录功能主要代码
①从数据库相关表中获取数据
<%setcn=server.CreateObject("ADODB.Connection")
cn.open"dsn=yiyuan;uid=sa;pwd=123"
sql="select*from医生"
SetRs=cn.Execute(sql)
%>
②从表中删除相关的医生的信息
<%setcn=server.CreateObject("ADODB.Connection")
cn.open"dsn=yiyuan;uid=sa;pwd=123"
sql="deletefrom医生where医生工号='"+request.form("xsno")+"'"
SetRs=cn.Execute(sql)
%>
4.4关键字检索功能主要代码
①将输入的关键字与表中的信息对比,显示相关的信息
<%setcn=server.CreateObject("ADODB.Connection")
cn.open"dsn=yiyuan;uid=sa;pwd=123"
sql="select医生工号,医生姓名,职称,手术编号,科室编号from医生where医生姓名='"+request.form("t1")+"'"
SetRs=cn.Execute(sql)
%>
5功能界面的实现
5.1登录功能界面(暂无)
5.2注册功能界面(暂无)
5.3系统功能界面(以医生信息管理系统为例)
5.3.1添加记录功能
5.3.2修改记录功能
5.3.3删除记录功能
5.3.4关键字检索功能
四、总结
这次课设主要是完成了两个方面的任务,首先是数据库的设计与建立,第二是将数据库与网页嵌套,在网页中实现对数据库的查询、插入、删除、修改等功能。
首先,讨论数据库系统设计大体可分为需求分析、概念设计、逻辑设计、物理设计、数据库的实施及调试测试六大步骤。
要设计一个实用的的数据库,首先就是要能够满足用户的各种各样的需求,即需求分析阶段。
在这个阶段,必须对所要设计的系统有总体的构思和了解,知道自己要做什么,要实现什么,并且要实际的进行相关的调查,不能凭想象或自己的了解,这样会在后续的工作中遇到很多的问题。
第二,就是对数据库的安全性进行保护,建立角色、用户以及触发器等等,防止没有合法权限的人随意查看或者修改数据。
第二,在网页与数据库的连接过程中我遇到的第一个问题就是,数据库的登录。
因此为了避免这样的不变,在建立数据库之初就应该设置用户名、密码等重要的参数。
这次课程设计加深了我对数据库系统概论相关知识和SQLSERVER相关功能、网页与数据库的交互技术的理解。
例如对建立基本表、视图、触发器等,都比以前更加的熟练。
能够实现在网页中操作数据库中的数据,对其进行查询、插入、修改、删除。
并在解决遇到的各种问题的过程中,学到了很多新的实用的知识。
附录:
数据库中表的参考结构
1.“医生”表结构:
字段字段名类型宽度小数位
1医生工号字符型10
2医生姓名字符型20
3职称字符型20
4手术编号字符型10
5科室编号字符型10
说明:
医生工号可分为3部分:
大类、小类和序号
××××××
序号
小类
大类
例如,大类有耳鼻喉科、内分泌科、儿科类等;耳鼻喉类中有耳科、鼻科、喉咙科等;每个小类中还包含不同的人员等。
2.“病人”表结构:
字段字段名类型宽度小数位
1病人编号数值型6
2病人姓名字符型20
3地址字符型80
4入院日期日期型8
5医生工号字符型10
6病房编号字符型2
7病历编号字符型10
8账单编号字符型10
说明:
(1)病人编号应按病人科室等信息分类编号
(2)病历编号按入院日期等编号
(3)账单编号按病历编号等编号
3.“护士”表结构:
字段字段名类型宽度小数位
1护士工号字符型10
2护士姓名字符型20
3年龄数值型2
4手术室编号字符型10
说明:
护士工号按科室及序号编号
4.“病房”表结构:
字段字段名类型宽度小数位
1病房编号字符型10
2病房等级字符型10
3病房总数数值型2
4空房数目数值型2
5护士工号字符型10
6科室编号字符型10
5.“手术”表结构:
字段字段名类型宽度小数位
1手术编号字符型10
2手术名称字符型40
3手术费用字符型8
4手术室编号字符型10
5病人编号字符型10
6.“手术室”表结构:
字段字段名类型宽度小数位
1手术室编号字符型10
2手术室名称字符型50
7.“病历”表结构:
字段字段名类型宽度小数位
1病历编号字符型10
2病历详情字符型30
8.“科室”表结构:
字段字段名类型宽度小数位
1科室编号字符型3
2科室名称字符型20
3科室地址字符型10
4联系电话字符型11
9.“账单”表结构:
字段字段名类型宽度小数位
1账单编号字符型10
2项目字符型4
3详情字符型80
4金额浮点型8
参考文献:
王珊、萨师煊,《数据库系统概论》,高等教育出版社。