医院病例数据库管理系统设计.docx

上传人:b****1 文档编号:1034668 上传时间:2023-04-30 格式:DOCX 页数:20 大小:20.92KB
下载 相关 举报
医院病例数据库管理系统设计.docx_第1页
第1页 / 共20页
医院病例数据库管理系统设计.docx_第2页
第2页 / 共20页
医院病例数据库管理系统设计.docx_第3页
第3页 / 共20页
医院病例数据库管理系统设计.docx_第4页
第4页 / 共20页
医院病例数据库管理系统设计.docx_第5页
第5页 / 共20页
医院病例数据库管理系统设计.docx_第6页
第6页 / 共20页
医院病例数据库管理系统设计.docx_第7页
第7页 / 共20页
医院病例数据库管理系统设计.docx_第8页
第8页 / 共20页
医院病例数据库管理系统设计.docx_第9页
第9页 / 共20页
医院病例数据库管理系统设计.docx_第10页
第10页 / 共20页
医院病例数据库管理系统设计.docx_第11页
第11页 / 共20页
医院病例数据库管理系统设计.docx_第12页
第12页 / 共20页
医院病例数据库管理系统设计.docx_第13页
第13页 / 共20页
医院病例数据库管理系统设计.docx_第14页
第14页 / 共20页
医院病例数据库管理系统设计.docx_第15页
第15页 / 共20页
医院病例数据库管理系统设计.docx_第16页
第16页 / 共20页
医院病例数据库管理系统设计.docx_第17页
第17页 / 共20页
医院病例数据库管理系统设计.docx_第18页
第18页 / 共20页
医院病例数据库管理系统设计.docx_第19页
第19页 / 共20页
医院病例数据库管理系统设计.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

医院病例数据库管理系统设计.docx

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

医院病例数据库管理系统设计.docx

医院病例数据库管理系统设计

题目:

医院病例数据库管理系统

学院管理与经济学部

专业工程管理

年级2012级

成员王艳旭(一班)54

需求分析,E-R图,数据修改,数据插入

杨志东(二班)

逻辑设计,物理设计,数据表、索引建立

谢中仁(二班)

视图建立,存储过程的建立

2013年12月16日

目录:

一、需求分析····················································3

1)医生信息管理

2)病人病例和病房管理

(1)数据检索

(2)数据插入

(3)数据修改

(4)数据统计与查询

二、概念设计····················································4

(1)医生实体

(2)职位实体

(3)病人实体

(4)病房实体

(5)全局E-R图

···················································6

···················································6

五、系统实现····················································8

1、数据库的建立

2、数据表的建立

3、数据的输入

4、索引的创建

5、视图的创建

6、存储过程的创建

一、需求分析

实现某医院病例数据库管理系统,系统使用对象是系统管理员,医生和病人,要求完成

以下工作:

1)医生信息管理,包括

系统管理员进行新医生到岗、现有医生离职处理

系统管理员可以修改任何医生的所有信息,如姓名、年龄、职称、科室

医生可以查阅自己的信息并修改其中某些基本信息,如联系方式等

2)病人病例和病房管理

医生可以添加新病人,修改或删除已有病人的信息

医生可以添加新的病例记录,形成病人治疗日志。

管理员可以任意查询所有医生或病人的情况和病例

管理员可以统计任意医生的病人或者任意病人的病例

病人能查看自己的基本信息和病例信息

(1)数据检索

i.系统管理员查询所有医生的情况

输入:

医生编号

输出:

姓名、年龄、联系方式、职称、科室。

ii.系统管理员查询所有病人的基本信息

输入:

病号

输出:

姓名、年龄、联系方式、地址。

iii.系统管理员查询所有病人的病例

输入:

病号

输出:

姓名、诊断结果、就诊日期、病房号、床号、入住日期、出院日期。

iv.医生查询自己的信息

输入:

医生编号

输出:

姓名、年龄、联系方式、职称、科室。

v.医生查询病人的病例

输入:

病号

输出:

姓名、诊断结果、就诊日期、病房号、床号、入住日期。

vi.病人查询自己的基本信息

输入:

病号

输出:

姓名、年龄、联系方式、地址。

vii.病人查询自己的病例

输入:

病号

输出:

姓名、诊断结果、就诊时间、病房号、床号、入住日期。

(2)数据插入

i.系统管理员插入医生数据。

ii.医生插入病人数据。

(3)数据修改

i.系统管理员修改所有医生的信息:

医生编号、姓名、年龄、联系方式、职称、科室、

任职时间。

ii.医生修改自己的部分信息:

联系方式。

iii.医生修改病人的信息:

姓名、年龄、联系方式、地址、诊断结果、就诊日期、病房号、

床号、入住日期。

(4)数据统计与查询

i.管理员:

显示所有医生的情况。

ii.管理员:

显示所有病人的情况。

iii.管理员:

显示所有医生的全部病人。

iv.管理员:

显示所有病人的全部病例。

二、概念设计

概念设计的任务是,在需求分析中产生的需求说明的基础上,抽象出满足应用需求的用

户的信息结构,即概念模型。

经需求分析,抽象出以下E—R模型。

(1)医生实体(图1)

(2)职位实体(图2)

(3)病人实体(图3)

(4)病房实体(图4)

(5)全局E—R图(图5)

三、逻辑设计

逻辑设计阶段将概念设计阶段产生的E-R图转换成RDBMS所支持的数据模型,即关系

模型。

根据图5的E-R图转换为以下关系模式:

医生(医生编号,姓名,年龄,联系方式,职位编号,任职时间)

职位(职位编号,职称,所属科室)

病人(病人编号,姓名,年龄,联系方式,住址)

病房(病房号,病床数,病房联系电话)

入住(病人编号,病房号,床位号,入住时间),主键为(病人编号,病房号)

就诊(病人编号,医生编号,诊断结果,就诊日期),主键为(病人编号,医生号)

查房(医生编号,病房号,值班时间),主键为(医生编号,病房号)

其中带有下划直线的属性为主键,带有下划波浪线的属性为外键。

以上关系模式均满

足3NF。

四、物理设计

物理设计阶段将关系模式设计为具体的RDBMS中的数据表。

根据以上关系模式构建的

数据表结构如表1~7所示。

表1医生表结构

字段名类型特殊属性

五、系统实

医生编号

char(4)

PRIMARYKEY

姓名

char(10)NOTNULL

1.数据库的建

年龄

char(10)NOTNULL

Create

联系方式

char(20)

NOTNULL

database医院

职位编号

char(4)

FOREIGNKEY

Onprimary

任职时间

char(20)

NOTNULL

(name=医院病

表2职位表结构

字段名

类型

特殊属性

职位编号

char(4)

PRIMARYKEY

职称

char(10)

NOTNULL

所属科室

char(10)

表3病人表结构

字段名

类型

特殊属性

病人编号

char(4)

PRIMARYKEY

姓名

char(10)

NOTNULL

年龄

char(10)

NOTNULL

联系方式

char(20)

NOTNULL

住址

varchar

(30)

表4病房表结构

字段名

类型

特殊属性

病房号

char(4)

PRIMARYKEY

病床数

int

病例

病房联系方式char(11)

_data,filenam

表5入住表结构

e=医院病例

字段名

类型特殊属性

data.mdf')

病人编号

char(4)PRIMARY

KEY,

FOREIGNKEY

Logon

病房号

char(4)PRIMARY

KEY,

FOREIGNKEY

(name=医院病例

床位号

char(4)NOTNULL

_log,filename

入住时间

char(20)NOTNULL

=医院病例

表6就诊表结构

log.ldf')

字段名

类型

特殊属性

2.数据表的建立

病人编号

char(4)PRIMARY

KEY,

FOREIGNKEY

Use医院病例

Go

医生编号

char(4)PRIMARY

KEY,

FOREIGNKEY

诊断结果

varchar(100)NOTNULL

Createtable职位

就诊时间

char(20)

表7查房表结构

(职位编号

char(4)

PRIMARYKEY,

字段名

类型

特殊属性

医生编号

char(4)PRIMARY

KEY,

FOREIGNKEY

职称char(10)

NOTNULL,

所属科室char(10)

病房号

char(4)PRIMARY

KEY,

FOREIGNKEY

值班时间

char(20)NOTNULL

PRIMARY

KEY,

Createtable医生

(医生编号char(4)

姓名char(10)NOTNULL,

年龄char(10)NOTNULL,

联系方式char(20)NOTNULL,

职位编号char(4),

任职时间char(20)NOTNULL,

FOREIGNKEY(职位编号)references职位(职位编号)

Createtable病人

(病人编号char(4)PRIMARYKEY,

姓名char(10)NOTNULL,

年龄char(10)NOTNULL,

联系方式char(20)NOTNULL,

住址varchar(30)

Createtable病房

(病房号char(4)PRIMARYKEY,

病床数int,

病房联系方式char(11)

Createtable入住

(病人编号char(4),病房号char(4),

床位号char(4)NOTNULL,

入住时间char(20)NOTNULL,

PRIMARYKEY(病人编号,病房号),

FOREIGNKEY(病人编号)references病人(病人编号),

FOREIGNKEY(病房号)references病房(病房号))Createtable就诊(病人编号char(4),医生编号char(4),

诊断结果varchar(100)NOTNULL,

就诊时间char(20),

PRIMARYKEY(病人编号,医生编号),

FOREIGNKEY(病人编号)references病人(病人编号),

FOREIGNKEY(医生编号)references医生(医生编号),

Createtable查房

(医生编号char(4),病房号char(4),

值班时间char(20)NOTNULL,

PRIMARYKEY(医生编号,病房号),

FOREIGNKEY(医生编号)references医生(医生编号),

FOREIGNKEY(病房号)references病房(病房号))

3.数据的输入

Insertinto职位

Values('J1','眼科医生','眼科室')

Insertinto职位

Values

('J2','内科医生

','内科室')

Insert

into医生

Values

('D001','李明','

45','139****1111'

'J1',)

Insert

into医生

Values

('D002','张强',

'50','139****2222'

'J2',

Insert

into医生

Values

('D003','陈龙',

'54','139****3333'

'J1',

Insert

into医生

Values

('D004','刘红',

'36','139****4444'

'J2',

Insert

into病人

Values

('P001','张三',

'30','159****1111'

'北京市

')

Insert

into病人

Values

('P002','李四',

'39','159****2222'

'天津市

')

Insert

into病人

Values

('P003','王五',

'44','159****3333'

'廊坊市

')

Insert

into病人

Values

('P004','赵六',

'27','159****4444'

'唐山市

')

Insert

into病房

Values

('R101','4',)

Insert

into病房

Values

('R102','2',)

Insert

into入住

Values

('P003','R101'

'1',)

Insert

into入住

Values

('P004','R102'

'2',)

Insert

into就诊

Values

('P001','D001'

'白内障',)

Insert

into就诊

Values

('P002','D003'

'青光眼',)

Insert

into就诊

Values

('P003','D002'

'阑尾炎',)

Insert

into就诊

Values

('P004','D004'

'胃出血',)

Insert

into查房

Values

('D001','R101'

Insert

into查房

Values

('D002','R102'

4.索引的创建

(1)医生表:

按医生任职时间降序排列

Create

index医生_任职时间on医生(任职时间

desc)

(2)病人表:

按病人编号升序排列

Create

index病人_病人编号

on病人(病人编号

(3)职位表:

按职位编号升序排列

Create

(4)病房表:

按病房号升序排列

index职位_职位编号on职位(职位编号

Create

index病房_病房号

on病房(病房号)

5.视图的创建

①医生情况视图:

显示所有医生的情况

createview医生情况视图

as

select医生.医生编号,姓名,年龄,联系方式,职位.职称,所属科室

from医生join职位on医生.职位编号=职位.职位编号

②病人情况视图:

显示所有病人的情况

Createview病人情况视图

as

Select*

From病人

③医生与病人视图:

显示任意医生的全部病人

Createview医生与病人视图

as

Select医生.姓名as医生姓名,病人.姓名as病人姓名

From

就诊join医生on医生.医生编号=就诊.医生编号

Join病人on病人.病人编号=就诊.病人编号

④病例视图:

显示病人病例

createview病例视图

as

Select病人.姓名,就诊.*

From病人join就诊on病人.病人编号=就诊.病人编号

6.存储过程的创建

(1)检索数据

1管理员对医生检索:

输入医生编号,返回医生的姓名年龄联系方式职称科室

Createprocedure管理员对医生检索(@ynoint=null)

As

If@ynoisnull

Begin

Print'请输入医生编号'

End

Else

Begin

Select医生.年龄,姓名,联系方式,职位.职称,所属科室

From医生join职位on医生.职位编号=职位.职位编号

Where@yno=医生.医生编号

End

2管理员查询病人基本信息检索:

输入病人编号,返回病人的姓名、年龄、联系方式、地址

Createprocedure管理员查询病人基本信息检索(@Bnoint=null)

As

If@Bnoisnull

Begin

Print'请输入病人编号'

End

Else

Begin

Select病人.姓名,年龄,联系方式,住址

From病人

End

3病例检索:

输入病人编号,返回姓名、诊断结果、就诊日期、病房号、床号、入住日期

Createprocedure病例检索(@Bno2int=null)

As

If@Bno2isnull

Begin

Print'请输入病人编号来查询病例'

End

Else

Begin

Select病人.病人编号,姓名,就诊.诊断结果,就诊时间,入住.病房号,床位号,入住时间

From病人join就诊on病人.病人编号=就诊.病人编号

Join入住on入住.病人编号=病人.病人编号

End

4医生对个人信息检索:

输入医生编号,返回医生的姓名年龄联系方式职称科室

Createprocedure医生对个人信息检索(@ynoint=null)

As

If@ynoisnull

Begin

Print'请输入医生编号'

End

Else

Begin

Select医生.年龄,姓名,联系方式,职位.职称,所属科室

From医生join职位on医生.职位编号=职位.职位编号

Where@yno=医生.医生编号

End

5医生查询病人病例检索:

输入病人编号,返回姓名、诊断结果、就诊日期、病房号、床号、

入住日期

Createprocedure医生查询病人病例检索(@Bno2int=null)

As

If@Bno2isnull

Begin

Print'请输入病人编号来查询病例'

End

Else

Begin

Select病人.病人编号,姓名,就诊.诊断结果,就诊时间,入住.病房号,床位号,入住时间

From病人join就诊on病人.病人编号=就诊.病人编号

Join入住on入住.病人编号=病人.病人编号

End

6病人查询病人基本信息检索:

输入病人编号,返回病人的姓名、年龄、联系方式、地址

Createprocedure病人查询病人基本信息检索(@Bnoint=null)

As

If@Bnoisnull

Begin

Print'请输入病人编号'

End

Else

Begin

Select病人.姓名,年龄,联系方式,住址

From病人

End

7病人查询病人病例检索:

输入病人编号,返回姓名、诊断结果、就诊日期、病房号、床号、

入住日期

Createprocedure病人查询病人病例检索(@Bno2int=null)

As

If@Bno2isnull

Begin

Print'请输入病人编号来查询病例'

End

Else

Begin

Select病人.病人编号,姓名,就诊.诊断结果,就诊时间,入住.病房号,床位号,入住时间

From病人join就诊on病人.病人编号=就诊.病人编号

Join入住on入住.病人编号=病人.病人编号

End

(2)插入数据

1系统管理员插入医生数据.

Createprocedure系统管理员插入医生数据(@医生编号char(10),@姓名char(10),@年龄

char(10),@联系方式char(20),@职位编号char(4),@任职时间char(20),@职称char(10),@所

属科室char(10))

As

Insertinto医生

Values(@医生编号,@姓名,@年龄,@联系方式,@职位编号,@任职时间)

Insertinto职称

Values(@职位编号,@职称,@所属科室)

2医生插入病人数据

createprocedure医生插入病人数据(@病人编号char(4),@姓名char(10),@年龄char(10),@联

系方式char(20),@住址char(30))

As

Insertinto病人

Values(@病人编号,@姓名,@年龄,@联系方式,@住址)

(3)数据修改

a)医生信息修改

Createprocedure医生信息修改(@医生编号char(4),@姓名char(10)=姓名,@年龄char(10)=年

龄,@联系方式char(20)=联系方式,@职位编号char(4)=职位编号,@任职时间char(20)=任职时间)

As

Update医生

Set姓名=@姓名,年龄=@年龄,联系方式=@联系方式,职位编号=@职位编号,任职时间=@任职时间

Where医生编号=@医生编号

b)医生部分信息修改

Createprocedure医生部分信息修改(@医生编号char(4),@联系方式char(20)=联系方式)

As

Update医生

Set联系方式=@联系方式

c)病人信息修改

Createprocedure病人信息修改(@病人编号char(4),@姓名char(10)=姓名,@年龄char(10)=年

龄,@联系方式char(20)=联系方式,@住址varchar(30)=住址)

As

Upda

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

当前位置:首页 > 人文社科 > 法律资料

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

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