ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:1.94MB ,
资源ID:6437728      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6437728.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(医院住院病人数据库设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

医院住院病人数据库设计.docx

1、医院住院病人数据库设计医院住院病人数据库设计 大学软件学院实验报告大学软件学院实验报告 课程:数据库原理与实用技术实验 学期:2012-2013学年第二学期 任课教师:薛 专业:网络工程学号:姓名:成绩:期末大作业:医院住院病人管理数据库设计 一、实验目的(1)掌握数据库设计的基本方法(2)掌握各种数据库对象的设计方法 二、实验内容 1.数据库概要设计:用文字简要描述实体之间的联系,画出 E-R 图(标出 各联系中实体的基数)。E-R 图提供了表示实体型、属性和联系的方法。1)实体型:用矩形表示,矩形框内写明实体名;2)属性:用椭圆形表示,并用无向边将其与相应的实体连接起来;3)联系:用菱形表

2、示,菱形框内写明联系名,并用无向边分别与有 关实体型连接起来,同时在无向边旁标上联系的类型。注意:如果一个联系也具有属性,则这些属性也要用无向边与该联系 连接起来。下而将根据要设计的住院数据库对其中涉及到的实体、实体属性和实 体间的联系进行分析和设计。(1)实体及其属性分析 根据木次课程设计所给出的初始条件,目前有以下实体:病人实体、病房实体、病床实体、医生实体、科室信息实体和住院登记实体。对于这 些实体,它们的实体及属性图如图 4-7 所示:住院数据库实体及其属性如下图:(2)分 E-R 图设计 在本次设计中,根据任务书所提供的业务规则,实体和实体之间可以 有以下几种联系:1)医生与病人之间

3、的联系,它们之间的联系图如图 1 所示;2)病人与病房以及病房与病床之间的联系,它们之间的联系图如图 2 所 75;3)医生与科室信息之间的联系,它们之间的联系图如图 3 所示;1:病人与医生联系图 2:病人与病房及病房与病床联系图 (一般来说,一个医生拥有一个办公科室)(3)基本 E-R 图设计 对于分 E-R 图,它们之间往往存在一些不一致的地方,即冲突。合并时 不能简单的将上述的各个分 E-R 图画在一起,必须要消除各个分 E-R 图中 的不一致,以形成一个能为全系统所有用户所共同理解和接受的统一的概 念模型。在上述分 E-R 图上可以做出修改,最终形成的基本 E-R 图如下图所示:医院

4、住院数据库基本 E-R 图:办公 科室 病房 2、数据表设计:将 E-R 图转换为数据表,给出创建各表的 SQL语句。一:关系模型设计 关系模型的逻辑结构是一组关系模式的集合。将 E-R 图转换为关系模型实 际上就是将实体型、实体型的属性和实体之间的联系转换为一组关系模式,这种转换需要遵守以下原则:1.一个实体型转换为一个关系模式。实体的属性就是关系的属性,实 体的码就是关系的码。2.对于实体之间的联系有以下几种情况:(1)一个 1:1的联系可以转换为一个独立的关系模式,也可以与任 意一端对应的关系模式合并。(2)一个 1:n的联系可以转换成为一个独立的关系模式,也可以与 n端对应的关系模式合

5、并。(3)一个 m:n 的联系转换为一个关系模式。(4)3个或者 3 个以上的实体之间的一个多元联系可以转换为一个 关系模式。(5)具有相同码的关系模式可以合并。按照上述的原则,根据设计好的 E-R 图,可以将其转换为以下一组关 系模式,其中关系模式的码用下横线标出。1病人(病案号,姓名,性别,电话号码,病房编号)此为病人实体型所对应的关系模式。其中病案号为次关系模式的码,而病 房编号为该关系模式的外码。2病房(病房编号,收费标准,所属科室,病床号)此为病房实体型所对应的关系模式。其中病房编号唯一确定一个病 房,所以为该关系模式的码。3医生(医生编号,姓名,性别,职称,电话号码,部门)此为医生

6、实体型所对应的关系模式。其中医生编号唯一确定一个医生,所 以为该关系模式的码。4科室信息(科室编号,科室名,电话,主治医生姓名)此为科室实体型所对应的关系模式。其中科室编号唯一确定一个科室,所 以为该关系模式的码。一:数据字典:1病人信息的数据项描述:数据项名 数据项含 义 类型 长 度 允许空 备注 病案号 病人的编 号 VARCHA R 15 NOT NULL(主键)对应 唯 个病 人 姓名 病人姓名 VARCHA R 20 NULL 性别 病人性别 CHAR 2 NULL 只能取男 或女 年龄 病人年龄 char 50 NULL 电话 病人电话 VARCHA R 12 NULL 病房编号

7、 CHAR 4 NULL 住院时由系 统分配 病床号 int 2 NULL 一个病房一 般有 1-3个床 位 主治医师 CHAR 50 NULL 2病房信息的数据项描述:数据项 名 数据项 含义 类型 长度 允许空 备注 病房编 号 病房编 号 CHAR 50 NOT NULL(主键)病房 编号唯一 收费标 准 INT 4 NULL 单位为(元/天)所属科 室 VARCHAR 50 NULL 病床情 char 50 NULL 一个病房一 般有 1-3个床 位 况 3医生信息的数据项描述:数据项 名 数据项 含义 类型 长度 允许空 备注 医生编 号 医生编 号 VARCHA R 50 NOT

8、NLLL(主键)对应 唯 个医 生 姓名 医生姓 名 VARCHA R 50 NULL 性别 医生性 别 CHAR 2 NULL 只能取男 或,女,年龄 医生年 龄 CHAR 50 职称 医生职 称 VARCHA R 50 NULL 有可能有多 个职称 电话 医生电 话 VARCHA R 50 NULL 科室编 所属部 门 VARCHA R 50 NULL 4科室信息的数据项描述:数据项 名 数据项 含义 类型 长度 允许空 备注 编号 科室编 号 CHAR 50 NOT NLLL(主键)科室 编号唯一 科室名 VARCHA R 50 NULL 电话 VARCHA R 50 NULL 主治医

9、生姓名 VARCHA R 50 NULL 关系图如下:嗇表2病房信息中的数据,位置是医院管理中、Wocal)上 病房编号 1 收费标准 所属科室 1病床情况 1 1 的表3医生信息托激据,位舌是医院管理中、(local)上 医生编号 1匹称 电话 1科玄缩号 1 協表4科室信息中的数据,位置是医院管理中、(local)上 科室编号 T 1主治医生姓名I 1 基本表的设计 完成数据库的逻辑和物理设计后,需要运用 SQL语言对数据库中所涉 及的表进行定义,同时要考虑与表有关的完整性约束条件。1.建立病人表:CREATE TABLE 病人(病案号 VARCHAR(15)PRB-IARY KEY,姓名

10、 VARCHAR(20)NOT NULL,性别 CHAR(2)CHECK(性别 IN(男,女),年龄 VARCHAR(IOO)NOT NULL,电话 VARCHAR(12),病房编号 CHAR(50)NOT NULL,病床号 INT,主治医生姓名 CHAR(50),FOREIGN KEY(病房编号)REFERENCES 病房(病房编号);Foreign key(主治医生姓名)references 医生(医生姓名),2.建立医生表:create table 医生 医生编号 VARCHAR(50)not null,医生姓名 CHAR(10),性别 CHAR(5),年龄 CHAR(20),职称 VA

11、RCHAR(50),电话 VARCHAR(50),科室编号 VARCHAR(50),primary key(医生编号),Foreign key(科室编号)references 科室(科室编号),);3.建立病房表:create table 病房(病房编号 CHAR(50)not null,收费标准 INT,所属科室 VARCHAR(50),病房情况 CHAR(50),primary key(病房编号),);4.简历科室表 create table 科室(编号 VARCHAR(50)not null,科室名 CHAR(10),主治医生姓名 CHAR(5),电话 CHAR(20),primary

12、key(科室编号),);1插入病人信息 insert into 病 人 values C 001,T8J 333333,TO】,TJ 陈一);T8J 433333,T02,T陈二);T8533333,T03,,TJ 陈三);T8J 633333,T04,,T,陈四 (所舅响的行勤为 1行)(所劉响的行数为 1行)(所敷响的行数为 1行(觴响的行数为 1 行 插入病房基木信息 insert into 病房 values(10r,300,外科,、3 床位);insert into 病房 values C 102:400内科J 3 床位);insert into 病房 values(103,J 50

13、0,J 儿科,3 床位);insert into 病房 values C 104,600,、妇科,3 床位);房房房房 病病病病 o o o O ntntntnt 1 i i i values r 101 300,values(?102,40CT,values C 103500,values 104J,?600J,位位位位 mR 一&W 3 3 3 3,S 科科科斜 外内儿妇 插入医生基木信息 insert into 医生 values(001 insert into 医生 values(002,,,2111,,,2,);insert into 医生 values(003,,,3111,,,3

14、,);insert into 医生 values(004 (所影响的行数对 1行)(所影响的行數为 1行)(所影响的行数对 1行)(所影响的行敎为 1行),4111,4);陈一,男,30,中级 陈二,女,50,高级 陈三,男,30,中级 陈四,女,40,高级 12 3 4 D D o O 11 11 1*234 级级级级 30503040 12 3 4 DODD o ooo 5 s S 0-c e e e u ullu naialal V V V V 主生生生 医医 fes inscut into insert into insert into insert into(折影咆旳行魏为 1行)(

15、斯影响的行数为 1行 所影响的行数为 1行(历影响的行數为 1行)插入科室基本信息(所影响的行数为 1行)(斯影响的行敎为 i 行)(所彩响的行数为 1行)嵋影响的行数为 1 行)3、完整性约束:根据需要给数据表添加数据完整性,并说明添加的理由。建立完整性约束:保证医生的真实性,和医生编号的正确性 create rule a rule as 医生编丐 like 0-9 0-9 0-9 exec Sp bindrule a rule,医生.匪生编号“:4 III 命令已成功完成。|已将规则绑定到表的列上。建立完整性约束:保证病人的真实性,和病人编号的正确性 create rule b rule“

16、病案号 lik 0-9 0-S 0-9JM exec Sp bindrule b rule,病人病案号 f:4 III 命令已成功芫成。已将规则绑定到聂的列上。建立完整性约束:保证科室的真实性,和科室编号的正确性 create rule cl rule exec Sp bindrule clrule 科室科室编号 as 科室编号 like 0-9 0-9 0-9J 4 HI 命令已成功完成。已将规则绑走到克的列上。建立完整性约束:保证病房的真实性,和病房编号的正确性 create rule d_rule as Wno like wj0-9,;exec Sp_bindrule d_rule,病房

17、病房 Wno;exec Sp_bindrule c2_rule,病房病腭编号 create rule c2_rule as 病房编号 like?0-9 0-9 0-9?命令已成功宾成&验证存入的信息:Solect*fron.JSA Select 力 from 病馬 Select from 科室 insert into 炳入 values(006,小断,央,5,533333 3 104,2 3 轴老、;(所耕财的行数为 1行)查看是否存入:Select*froni 病人|I 病裳号业名性易年龄电话 病房编 E病床 E i 主治匡生姓名 査找功能:s?elect xfroni 5A where:仃

18、 3,4、存储过程、触发器和视图:根据需要给数据库添加几个实用的存储过程、触发器和视图,并说明它们各自的功能。一:建立触发器:用企业管理器为表病人创建一个级联更新触发器 trrigger_Co 要求:若修 改病人表中一病人的编号,则表病房中与该病人相关的编号自动修改。1、启动企业管理器,选择数据库-医院管理,将其展开,单击“表”对 象。2、打开“触发器属性”对话框。在右窗格中,用鼠标右键单击表对象病人,在打开的快捷菜单中选择“所有任务”一“管理触发器”选项,打开“触 发器属性”对话框。3、创建 SQL语句。在“文本”输入框内输入下面语句:create trigger trigger c on

19、病人 for update as if update(病房编号)begin declare 病房编号_new nvarchar(50),病房编号_old nvarchar(50)select 病房编号_new 二病房编号 from inserted select 病房编号_old 二病房编号 from deleted update病房 set 病房编号二病房编号_new where病房编号=病房编号 _old end for update as 1 jpdatei 病房编号 i begin dpcbe 病房 n7archai;50i,病房编号_old nvarchar SC seleci 病房

20、编号一 nev 厂病房编号 from inserted selecl 病房编号_old-病房编号 Tom deleted update 病京编号二病忘编号_new where病房编号=病序縮号_old end 三 彳 1.III 1 检查语法(C)1 另存为模板(S)1 11/7 确定 关闭 应用 帮朋 文本(T).名称(N):v新建 二 j 二.建立存储过程:存储过程是保存起来的可以接受和返回用户提供的参数的 Transact-SQL 语句的集合。可以创建一个过程供永久使用,或在一个会话中临时使用,或在所有会话中临时使用。也可以创建在 Microsoft SQL Server 启动时 自动运

21、行的存储过程。它可以实现模块化编程。具有对数据库立即访问的 功能。可以加快程序的运行速度。可以减少网络流量。可以提高数据库的 17/2017 安全性。自动执行存储过程。Create Proc医生治疗的情况 as select 医生.医生编号,病人.病案号 from 医生 inner join 病人 on医生.医生编号二病人.病案号 exec sp_depends 医生治疗的情况医生治疗的情况 J?卓询rc-zuizuoiuvi-.masier.rc-zuizuoiuvrv Create Proc医生治寿的,惰貝 as select 医生.疸生编号,病人爲案号 iron医生 imxcr juix

22、.病人 on 底生.医生编号-病人病案号|命令已成力芫矿 exec 医生治疗的悄况,L name type updated selected column 1 dbo5p_depends stored procedure no no b jnamc 2 dbo.病人.user table no no 病案号 3 dbo.医生 user table no no 医生涌号 Create Proc病人情况 as select*from 病人 Return exec sp_depends 病人情况 exec sp dep ends 病人情况 3.创建视图:视图是虚表,它就像一个窗口,透过它可以看到数据

23、库中自己感兴趣的数 据及其变化。创建视图显示医生与病人对应情况 create view病人与医生 as select 病案号,姓名,医生姓名 from 医生 inner join 病人 on医生.医生编号二病人.病案号 命令已成功完成。4.数据库的备份 备份数据库选择医院病房管理数据,右键选择“所有任务”,然后选择“备份数据库”,弹出对话框,点击“添加”,弹出对话框,选择要保存备 份文件的路径和指定文件名,点击“确定”完成备份工作。5、实验小结。在这些天中,我们学到了很多东西,包括建表,导入数据,查询,插 入。最重要的是我们有机会用电脑自己进行实践,没接触的时候总是觉得 它比较深奥或是不可接近的新型语言,尽管自己心理上有些陌生感。学习 数据库就和我们平时的其它科目学习一样感觉它有永无止境的知识 SQL Server 数据库的实验学习使我对数据库的有了新的进步,以后再看 到也就不至于什么也不懂,其实那么多数据库我觉得学好一门就行,只是 他们的语言可能不大一样,学好一门后就可去认识其它的,这样应该有事 半功倍的效果。因此,我感谢老师给了我有用的知识,以便我在以后学习 或认识更多的内容能有新的方法和思维,也能更加有效和快速的去消化吸 收新的东西。希望在今后中,SQL Server 能给我更多帮助。

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

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