首页 数据库原理及应用_课程设计说明书

数据库原理及应用_课程设计说明书

举报
开通vip

数据库原理及应用_课程设计说明书内蒙古科技大学 课程设计说明书(论文) 课程名称:数据库原理及应用 题 目:住院部数据库系统 课题等级:80 班 级:10计算机(2)班 学 号:1067111204 学生姓名:范振辉 指导教师:丁雨 内蒙古科技大学课程设计任务书 课程名称 数据库原理及应用 设计题目、等级 住院部数据库系统(题目等级80) 指导教师 丁雨 时间 两周 一、教学要求 1.从附录一中选择一个题目进行数据库应用系统设计。 2.功能设计:用Visual FoxPro,Visual Bas...

数据库原理及应用_课程设计说明书
内蒙古科技大学 课程设计说明书( 论文 政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载 ) 课程名称:数据库原理及应用 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 目:住院部数据库系统 课题等级:80 班 级:10计算机(2)班 学 号:1067111204 学生姓名:范振辉 指导教师:丁雨 内蒙古科技大学课程设计任务书 课程名称 数据库原理及应用 设计题目、等级 住院部数据库系统(题目等级80) 指导教师 丁雨 时间 两周 一、教学要求 1.从附录一中选择一个题目进行数据库应用系统设计。 2.功能设计:用Visual FoxPro,Visual Basic、PB等开发工具与数据库管理系统SQL-SEVER或Access制作一个小型管理系统。所设计的小型管理系统应包含输入输出、查询、插入、删除等基本功能。设计课题可以从候选的项目中选出,根据题目的基本需求,画出流程图,编写程序,并写出详细的设计说明书。(本项实际系统设计与实现可选,但必须有功能设计过程) 3.数据库的设计: 根据数据库应用系统设计过程,通过需求分析和系统分析,进行数据库的概念结构设计、逻辑结构设计等工作: · 概念结构设计的E-R图 · 数据库逻辑结构设计是以表格的形式说明数据库中有几个表,每个表的表名以及每个表的各字段名,类型和约束(主、外码); · 确定表之间的关联(一对一、一对多、多对多) · 运用数据库理论确定每个表至少属于3NF。 二、设计资料及参数 将你选的题目资料给出的信息整理后填在此处。 三、设计要求及成果 1.按照数据库应用系统设计步骤进行数据库结构设计。 2.使用开放工具及数据库管理系统开放应用系统(可选)。 3.书写论文(具体要求见论文模板)。 四、进度安排 1.安排工作。 2、数据库结构设计、功能设计。 3、检查E-R图,关系表。 4、应用系统验收。 5、上交论文。 五、评分 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 1.数据库结构正确性(30%)。 2.数据库结构复杂性,由题目等级决定(30%)。 3.设计报告完成的质量(30%)。 4.出勤(10%)。 5.成绩采用五级分制评定。 六、建议参考资料 1、《数据库系统教程》(第三版) 施伯乐等著 高等教育出版社 2、根据实际情况填写 3、 住院部数据库系统(题目等级80) Dulia是南亚的一家中型传染病医院。由于住院部收治的基本上都是烈性传染病(如爱滋病、登革热、黄热病等等),为了生活垃圾处理的方便,住院部同药房、门诊部是隔离的,位于远郊。 由于地处热带,当地的传染病发病率本来就很高,加上最近双腺淋巴性鼠疫的流行,更使得本已处在一片混乱中的住院部的信息管理雪上加霜。事实上,截止2001年底,Dulia的本部已基本实现了档案管理的无纸化,只是由于地域性和资金筹备等方面的原因,住院部的数据电子化问题迟迟未得到解决。这样,住院部实际上已同药房、门诊部产生了信息处理层次上的脱节。目前,在州政府的支持下,Dulia领导层终于决定租用光缆,将本部与住院部的系统进行连接,并全面升级住院部的信息管理系统。本小组被授权设计该系统的数据库部分。 通过调研,我们发现以下几个方面存在严重的问题: 1. 病历的电子化问题。由于病情发展、变化,病人需要在不同的医生处接受不同的治疗,但接手的医生往往得不到病史资料,或还得重写一份病人简史,造成人力、资源上很大的浪费以及时间上的不及时。 2. 对医护人员缺乏有效、合理的管理。有护士向我们抱怨她连值三个夜班,整整四十八小时没闭眼,而她的同事却按正常日程上班,或还有的同事工作时间没事可干。而医生方面也存在着类似的问题。 3. 缺乏对药品存货的严格管理。(住院部有自己的药品仓库。)就拿血液仓库来说,有一次血库工人将待处理的爱滋病病人的废血当作O型血输给一例出血性麻风病人,结果造成了近五年最大的一起医疗纠纷和社会丑闻。 4. 以床位为代表的医疗器械的管理。Dulia的出入院受理处非常繁忙,每天有大量病人进出。在一个病人出院,下一个病人入院的时候,有很长一段时间病床是空着的,而这个信息并没得到及时的更新,住院部居然不能很快的安排下一个病人进驻这张病床。所以,经常出现病房里明明有空位,外面却有很多病人没有床位的情况。有时甚至还会有两个病人被注册在一张病床上的事情发生。 经以上分析,我们一致认为,该住院部有以下几方面的信息需求: 1. 病人的信息需求:包括病人本身的信息和病历信息,及住院期间的费用信息等。 2. 住院部工作人员的工作信息需求:除包括工作人员自身状况信息、月薪等信息外,还要有医生正在给多少病人看病的医生工作信息、护士值班情况信息,以及这些安排是否合理以便进行人事管理。 3. 药品信息需求:尤其是住院部药品仓库库存状况,药品使用状况,药品计量等信息。 4. 住院部内各种设施使用状况信息:尤其是床位使用状况信息,还有其他设备(氧气瓶、手术台等)使用情况的信息。 关键词:医院,数据库 目录 I住院部数据库系统(题目等级80) 2第一章 需求分析概要 21.1项目开发背景 31.2系统分析 31.2.1可行性分析 41.2.2需求分析 5第二章 ER图 第三章 逻辑结构 5 3.1数据表资料 5 8第四章 数据库的实现 84.1数据库的创建 84.2基本表的创建 134.3数据录入 264.4基本查询 36第五章 总结 37参考文献 第一章需求分析概要 1.1项目开发背景 人类社会进入二十一世纪,医院作为一个特殊服务行业,其发展应适应于市场经济的发展。目前,我国的医疗体制正处于改革阶段,需要医疗市场的进一步规范化,这就要求医院加强自身的管理,利用现代化的管理工具对医院的工作进行必要的管理,无疑将提高工作效率、信息的准确程度,根除现行的人工管理模式存在着的某些弊端,达到减支增效的目的。有利于提高医疗水平和服务质量,更好的服务于社会。 ----医院管理系统是利用电子计算机和通讯设备,为医院所属各部门提供病人诊疗信息和行政管理信息的收集、存储、处理、提取和数据交换的能力,并满足所有授权用户的功能需求。 随着计算机性能不断提高,价格不断下降,计算机已在医院医疗、教学、科研、管理的各个方面得到越来越广泛的应用。计算机化的医院信息系统已成为现代化医院运营必不可少的基础设施与技术支撑环境。就好象一个现代化医院的成功运行离不开功能完整、美观舒适的建筑物,技术娴熟的医护人员,性能齐全、高精确的医疗设备一样,它也离不开 计算机化的医院信息系统。 计算机网络只是一种工具,如何有效地利用这一工具,关键还是在于人。医院的工作以病人为中心,如果适当改变医院原有的工作方式和流程,利用计算机管理为病人提供方便,不仅可以提高医疗水平和服务质量,同时也会相应地提高医院的经济效益和社会效益,扩大医院的声誉。 在医院管理信息系统是在今天医疗事业的迅猛发展的前提下,以前的手工录入或早期的医药管理应用软件以逐渐不能满足用户的要求,而在这些问题当中,落后的医药管理已严重的影响医院工作人员的工作效率, 基于以上的原因,从而提出了医药管理管理系统的设计目标。 通过信息数据高度共享,在强大的数据库的支持下,将医院的全面管理水平和服务质量提升到更高层次。医药管理系统结合医院管理工作的特点,充分利用局域网、广域网、大型分布式数据库等先进的计算机技术,运用系统的理论与方法将医院各组成部分的信息处理过程综合成有机整体,及时而有效地为医院日常管理和发展提供决策依据,使医院信息管理工作尽快达到规范化、制度化、科学化的要求,并实现医院信息技术全电子无纸化和胶片管理的最终目标 。 1.2系统分析 1.2.1可行性分析 1.2.1.1技术可行性 开发软件所需要的技术是否具备是通过该系统的目标来衡量的,一般情况下我们可以从软件的环境条件、硬件的性能要求、相应的开发及操作人员的能力水平等方面综合进行分析和考虑。 从系统开发及实施的可行性和灵活性考虑,本系统的软件开发环境主要选择了当前较为流行的Visual C#.NET来进行前台的管理设计,而后台则选用了功能强大的SQL server 2005数据库。 从硬件角度来说,要求相对较低,所以选择的空间较大,一般情况下计算机硬盘在100MB左右,内存在512M以上都是可以满足开发环境的。根据现在计算机水平的发展和普及,系统在硬件方面是可行的。当然,硬件环境的配置越高,系统的开发与运行相对就会更加高效与快捷,可行性也会大幅度提高。 1.2.1.2经济可行性 在软件的开发过程中,在世界上普遍采用的一种研究工程项目是否可行的科学。它通过各种有效的方法,对工程项目进行分析,从技术、经济、财务等方面加以 评价 LEC评价法下载LEC评价法下载评价量规免费下载学院评价表文档下载学院评价表文档下载 ,最终给投资决策者提供是否选择该项目进行投资的依据 1.2.2需求分析 1.病人的信息需求:包括病人本身的信息和病历信息,及住院期间的费用信息等。 2.住院部工作人员的工作信息需求:除包括工作人员自身状况信息、月薪等信息外,还要有医生正在给多少病人看病的医生工作信息、护士值班情况信息,以及这些安排是否合理以便进行人事管理。 3.药品信息需求:尤其是住院部药品仓库库存状况,药品使用状况,药品计量等信息。 4.住院部内各种设施使用状况信息:尤其是床位使用状况信息,还有其他设备(氧气瓶、手术台等)使用情况的信息。 第3章 逻辑结构 3.1数据表资料 患者信息数据表 病历信息数据表 医生信息数据表 护士信息数据表 手术台信息数据表 床位信息数据表 值班种类信息数据表 仓库信息数据表 药品信息数据表 用药信息数据表 手术信息数据表 床位使用信息数据表 第4章 数据库的实现 4.1数据库的创建 create database 医院管理系统 4.2基本表的创建 --建数据库/表 create database 住院部数据库系统 use 住院部数据库系统 go create table 医护人员( 工号char(5) primary key, 姓名char(20) not null, 性别char(2) check(性别='男' or 性别='女'), 年龄int check(年龄>0), 毕业学校char(20) ) go create table 医生( 工号char(5) primary key, 科室char(15) not null, 主治char(20) ) alter table 医生 add constraint 医生外键foreign key(工号) references 医护人员(工号) create table 护士( 工号char(5) primary key, 专业方向char(20) ) create table 病人( 病人号char(5)primary key, 姓名char(15) not null, 性别char(2)check(性别='男' or 性别='女'), 年龄int check(年龄>0), 主治医生编号char(5) foreign key(主治医生编号) references 医生(工号) ) create table 药品( 药品号char(5) primary key,--int identity(1,1),可以制作流水单号 药品名称char(20) not null, 整量单位char(5), 散量单位char(5), 散整比 int, 使用说明char(40), 价格money check(价格>0) ) --alter table 药品 --alter column 使用说明char(40) create table 病历( 病历号char(5) primary key, 诊断结果信息char(40) ) create table 处方( 处方号char(5), 药品号char(5) foreign key references 药品(药品号), 用法 char(20), 数量 int, primary key(处方号,药品号) ) create table 体检( 体检号char(5) , 体检项目char(20) , 价格money check(价格>0), primary key(体检号,体检项目) ) /* alter table 体检 add constraint 体检主键 primary key (体检号,体检项目) alter table 体检 alter column 体检项目char(20) */ create table 诊断( 病人号char(5) foreign key references 病人(病人号), 医生号char(5) foreign key references 医生(工号), 病历号char(5) foreign key references 病历(病历号), 处方号char(5) , 体检号char(5) , 诊断时间datetime, primary key(病人号,医生号,诊断时间) ) /*create table 设备( 设备类别char(5) primary key, 收费说明char(10),--(元/次,元/天,元/ml) 价格money )*/ create table 床位( 设备号char(5) primary key, --(元/天) 房间 char(10), 价格money check(价格>0) ) create table 床位占用( 占用编号char(5) primary key, 病人号char(5) foreign key references 病人(病人号), 设备号char(5) foreign key references 床位(设备号), 开始时间datetime, 结束时间datetime, ) create table 氧气瓶( 设备号char(5) primary key, --(元/ml) 价格money check(价格>0), 剩余量float check(剩余量>0) ) create table 氧气瓶占用( 病人号char(5) foreign key references 病人(病人号), 设备号char(5) foreign key references 氧气瓶(设备号), 开始时间datetime, 结束时间datetime, 使用量float check(使用量>0), primary key(病人号,设备号,开始时间) ) create table 手术台( 设备号char(5) primary key, --(元/次) 价格money check(价格>0) ) create table 手术( 病人号char(5) foreign key references 病人(病人号), 医生号char(5) foreign key references 医生(工号), 设备号char(5) , 开始时间datetime, 结束时间datetime primary key(病人号,医生号,设备号,开始时间) ) create table 值班表( 护士号char(5)foreign key references 护士(工号), 床位号char(5)foreign key references 床位(设备号), 日期datetime, 属性char(10), --(上午班,下午班,晚班) primary key(护士号,床位号,日期,属性) ) create table 购买药品( 购药单号char(5) primary key, 病人号char(5) foreign key references 病人(病人号), 药品号char(5) foreign key references 药品(药品号), 数量int check(数量>0), 时间datetime ) create table 仓库( 仓库号char(5) primary key, 仓库名称char(20) not null, 仓库容量float check(仓库容量>0)--立方米 ) create table 药品存储( 仓库号char(5)foreign key references 仓库(仓库号), 药品号char(5) foreign key references 药品(药品号), 剩余量float check(剩余量>0), primary key(仓库号,药品号) ) select * from 病人 4.3数据录入 --插入数据 use 住院部数据库系统 go insert into 医护人员 values('0001','神农','男',85,'上古医学院') insert into 医护人员 values('0002','黄帝','男',45,'上古中医学院') insert into 医护人员 values('0003','扁鹊','男',55,'中华医学院') insert into 医护人员 values('0004','张仲景','男',45,'东汉医学院') insert into 医护人员 values('0005','华佗','男',35,'三国医学院') insert into 医护人员 values('0006','孙思邈','男',65,'隋朝医学院') insert into 医护人员 values('0007','鉴真','男',45,'唐代医学院') insert into 医护人员 values('0008','李时珍','男',43,'明朝医学院') insert into 医护人员 values('0009','白求恩','男',45,'加拿大医学院') insert into 医护人员 values('0010','范昌龄','男',45,'老寨医学院') insert into 医护人员 values('0011','苏俊丹','女',45,'包头医学院') insert into 医护人员 values('0012','张苗苗','女',45,'呼市医学院') insert into 医护人员 values('0013','赵希坤','男',45,'内蒙古医学院') insert into 医护人员 values('0014','阮志婷','女',45,'安阳医学院') insert into 医护人员 values('0015','程丽婷','女',45,'包头医学院') insert into 医护人员 values('0016','齐正伟','男',45,'江西医学院') insert into 医护人员 values('0017','李家洋','男',45,'四川医学院') insert into 医护人员 values('0018','蔡莎莎','女',45,'四川医学院') insert into 医护人员 values('0019','王娟娟','女',45,'宁夏医学院') insert into 医护人员 values('0020','孟彬彬','男',45,'河南医学院') go insert into 医生 values('0001','内科','中医草药') insert into 医生 values('0002','内科','经脉') insert into 医生 values('0003','全科','各种疑难杂病') insert into 医生 values('0004','全科','各种疑难杂病') insert into 医生 values('0005','外科','麻醉') insert into 医生 values('0006','制药科','抗衰老') insert into 医生 values('0007','眼科','白内障') insert into 医生 values('0008','草药科','各种疑难杂病') insert into 医生 values('0009','外科','枪伤') insert into 医生 values('0010','儿童科','感冒') go insert into 护士 values('0011','计算机') insert into 护士 values('0012','自动化') insert into 护士 values('0013','医科') insert into 护士 values('0014','护理') insert into 护士 values('0015','公共服务') insert into 护士 values('0016','英语') insert into 护士 values('0017','自动化') insert into 护士 values('0018','会计') insert into 护士 values('0019','金融') insert into 护士 values('0020','内科') go insert 病人(病人号,姓名,性别,年龄,主治医生编号) values('0001','曹操','男',47,'0005') insert 病人(病人号,姓名,性别,年龄,主治医生编号) values('0002','蔡桓公','男',43,'0003') insert 病人 values('0003','关羽','男',37,'0005') insert 病人 values('0004','解放军','男',25,'0009') insert 病人 values('0005','范振辉','男',21,'0010') insert 病人 values('0006','孙少安','男',33,'0010') insert 病人 values('0007','孙少平','男',27,'0010') insert 病人 values('0008','孟冰冰','女',16,'0001') insert 病人 values('0009','郑晓莹','女',22,'0002') insert 病人 values('0010','杨少明','男',13,'0004') go insert into 药品 values('0001','感康','盒','片',12,'成人饭后服用一天两次,一次一片',10) insert into 药品 values('0002','红霉素','盒','瓶',10,'注射,一天一次,一次一瓶',15) insert into 药品 values('0003','急支糖浆','瓶','瓶',1,'口服,一天三次,一次ml',10) insert into 药品 values('0004','创可贴','盒','片',20,'外用,不可连续使用,伤口较大时请包扎',10) insert into 药品 values('0005','头孢氨苄','盒','片',10,'口服,一天三次,一次一片',3) insert into 药品 values('0006','金嗓子','盒','片',12,'口服,一天三次,一次一片',1.5) insert into 药品 values('0007','阿莫西林','盒','片',12,'口服,一天三次,一次二片',2) insert into 药品 values('0008','阿托品','盒','瓶',5,'注射,一天三次,一次一瓶',40) insert into 药品 values('0009','维生素C','瓶','片',50,'口服,一天三次,一次一片,不可连续服用',9) insert into 药品 values('0010','鱼肝油','瓶','瓶',1,'口服,一天三次,一次ml,建议长期服用',27) go insert into 病历 values('0001','唇干,喉肿,咳嗽,属于重感冒') insert into 病历 values('0002','重感冒,头疼,咳嗽') insert into 病历 values('0003','偏头疼') insert into 病历 values('0004','腿部外伤感染') insert into 病历 values('0005','头晕,贫血') insert into 病历 values('0006','箭伤感染') insert into 病历 values('0007','枪伤感染') insert into 病历 values('0008','头疼,发烧') insert into 病历 values('0009','食欲不振') insert into 病历 values('0010','胃疼,吐酸水') go insert into 处方 values('0001','0001','一天三次,一次一片',2) insert into 处方 values('0002','0003','一天三次,一次ml',1) insert into 处方 values('0002','0009','一天三次,一次一片',1) insert into 处方 values('0003','0009','一天次,一次一片',3) insert into 处方 values('0003','0010','一天三次,一次ml',4) insert into 处方 values('0003','0005','一天三次,一次一片',5) insert into 处方 values('0004','0007','一天三次,一次一片',3) insert into 处方 values('0005','0001','一天两次,一次一片',3) insert into 处方 values('0007','0006','一天三次,一次一片',2) insert into 处方 values('0007','0004','一次一片',3) go insert into 体检 values('0001','血常规 检测 工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训 ',180) insert into 体检 values('0002','测试骨龄',170) insert into 体检 values('0003','血压检验',15) insert into 体检 values('0004','尿常规检验',150) insert into 体检 values('0005','胃镜检测',120) insert into 体检 values('0006','拍X片子',50) insert into 体检 values('0007','磁共振扫描',300) insert into 体检 values('0008','称体重',3) insert into 体检 values('0009','量身高',3) insert into 体检 values('0010','肺活量检测',30) go insert into 诊断 values('0001','0005','0003','','0007','2011-1-4 18:51:36') insert into 诊断 values('0001','0005','0004','','0010','2011-2-4 18:51:36') insert into 诊断 values('0002','0003','0009','0002','0004','2013-5-15 7:51:36') insert into 诊断 values('0003','0005','0006','0003','0002','1911-4-4 8:51:36') insert into 诊断 values('0004','0009','0007','0004','','1947-12-4 8:51:36') insert into 诊断 values('0005','0010','0001','0001','','1986-11-4 7:51:36') insert into 诊断 values('0006','0010','0010','','0005','1978-5-4 8:51:36') insert into 诊断 values('0007','0010','0002','','0005','1978-2-4 8:51:36') insert into 诊断 values('0008','0002','0008','','0003','2012-1-4 8:51:36') insert into 诊断 values('0009','0004','0005','','0003','2012-1-4 8:51:36') insert into 诊断 values('0010','0006','0004','0007','0006','2011-3-4 8:51:36') go insert into 床位 values('0001', '单间',80) --'元/天' insert into 床位 values('0002', '单间',80) insert into 床位 values('0003', '双人间',70) insert into 床位 values('0004', '单间楼下',70) insert into 床位 values('0005', '四人间',60) insert into 床位 values('0006', '四人间',60) insert into 床位 values('0007', '四人间',60) insert into 床位 values('0008', '多人间',20) insert into 床位 values('0009', '多人间',20) insert into 床位 values('0010', '多人间',20) go insert 床位占用 values('0001','0002','2011-10-11 12:30','2011-12-11 12:30') insert 床位占用 values('0002','0002','2012-10-11 12:30','2011-12-11 12:30') insert 床位占用 values('0002','0003','2011-10-11 12:30','2011-12-11 12:30') insert 床位占用 values('0001','0005','2011-10-11 12:30','2011-12-11 12:30') insert 床位占用 values('0001','0006','2011-10-11 12:30','2011-12-11 12:30') insert 床位占用 values('0004','0002','2011-10-11 12:30','2011-12-11 12:30') insert 床位占用 values('0005','0002','2011-10-11 12:30','2011-12-11 12:30') insert 床位占用 values('0006','0002','2011-10-11 12:30','2011-12-11 12:30') insert 床位占用 values('0007','0002','2011-10-11 12:30','2011-12-11 12:30') insert 床位占用 values('0008','0002','2011-10-11 12:30','2011-12-11 12:30') go insert into 氧气瓶 values('0001', 12,140) insert into 氧气瓶 values('0002', 12,1200) insert into 氧气瓶 values('0003', 12,1100) insert into 氧气瓶 values('0004', 12,1300) insert into 氧气瓶 values('0005', 12,1450) insert into 氧气瓶 values('0006', 12,1700) insert into 氧气瓶 values('0007', 12,870) insert into 氧气瓶 values('0008', 12,100) insert into 氧气瓶 values('0009', 12,500) insert into 氧气瓶 values('0010', 12,1005) go insert 氧气瓶占用 values('0001','0002','2011-10-11 12:30','2011-12-11 12:30',240) insert 氧气瓶占用 values('0002','0004','2011-10-11 12:30','2011-12-11 12:30',240) insert 氧气瓶占用 values('0003','0005','2011-10-11 12:30','2011-12-11 12:30',240) insert 氧气瓶占用 values('0004','0007','2011-10-11 12:30','2011-12-11 12:30',240) insert 氧气瓶占用 values('0005','0008','2011-10-11 12:30','2011-12-11 12:30',240) insert 氧气瓶占用 values('0006','0009','2011-10-11 12:30','2011-12-11 12:30',240) insert 氧气瓶占用 values('0007','0001','2011-10-11 12:30','2011-12-11 12:30',240) insert 氧气瓶占用 values('0008','0004','2011-10-11 12:30','2011-12-11 12:30',240) insert 氧气瓶占用 values('0009','0006','2011-10-11 12:30','2011-12-11 12:30',240) insert 氧气瓶占用 values('0010','0007','2011-10-11 12:30','2011-12-11 12:30',240) go insert into 手术台 values('0001', 120) insert into 手术台 values('0002', 120) insert into 手术台 values('0003', 120) insert into 手术台 values('0004', 120) insert into 手术台 values('0005', 120) insert into 手术台 values('0006', 120) insert into 手术台 values('0007', 120) insert into 手术台 values('0008', 120) insert into 手术台 values('0009', 120) insert into 手术台 values('0010', 120) go insert 手术 values('0001','0005','0002','2011-10-11 12:30','2011-12-11 12:30') insert 手术 values('0002','0002','0002','2011-10-11 12:30','2011-12-11 12:30') insert 手术 values('0003','0005','0002','2011-10-11 12:30','2011-12-11 12:30') insert 手术 values('0004','0009','0002','2011-10-11 12:30','2011-12-11 12:30') insert 手术 values('0005','0010','0002','2011-10-11 12:30','2011-12-11 12:30') insert 手术 values('0006','0010','0002','2011-10-11 12:30','2011-12-11 12:30') insert 手术 values('0007','0002','0002','2011-10-11 12:30','2011-12-11 12:30') insert 手术 values('0008','0004','0002','2011-10-11 12:30','2011-12-11 12:30') insert 手术 values('0009','0006','0002','2011-10-11 12:30','2011-12-11 12:30') insert 手术 values('0010','0007','0002','2011-10-11 12:30','2011-12-11 12:30') go insert 值班表 values('0011','0002','2011-10-11 10:30','上午班') insert 值班表 values('0011','0003','2011-10-11 10:30','上午班') insert 值班表 values('0011','0004','2011-10-11 10:30','上午班') insert 值班表 values('0011','0002','2011-10-11 22:30','夜班') insert 值班表 values('0011','0003','2011-10-11 22:30','夜班') insert 值班表 values('0011','0004','2011-10-11 22:30','夜班') insert 值班表 values('0014','0001','2011-10-11 12:30','上午班') insert 值班表 values('0015','0005','2011-10-11 12:30','上午班') insert 值班表 values('0016','0006','2011-10-11 12:30','上午班') insert 值班表 values('0017','0007','2011-10-11 12:30','上午班') insert 值班表 values('0018','0008','2011-10-11 12:30','上午班') insert 值班表 values('0019','0009','2011-10-11 12:30','上午班') insert 值班表 values('0020','0010','2011-10-11 12:30','上午班') go insert 购买药品 values('0001','0001','0010',3,'2011-10-11 12:30') insert 购买药品 values('0002','0002','0010',3,'2011-10-11 12:30') insert 购买药品 values('0003','0001','0009',3,'2011-10-11 12:30') insert 购买药品 values('0004','0004','0007',3,'2011-10-11 12:30') insert 购买药品 values('0005','0005','0001',3,'2011-10-11 12:30') insert 购买药品 values('0006','0006','0002',3,'2011-10-11 12:30') insert 购买药品 values('0007','0007','0002',3,'2011-10-11 12:30') insert 购买药品 values('0008','0008','0003',3,'2011-10-11 12:30') insert 购买药品 values('0009','0009','0006',3,'2011-10-11 12:30') insert 购买药品 values('0010','0010','0004',3,'2011-10-11 12:30') go insert 仓库 values('0001','昆北库',2000) insert 仓库 values('0002','青北库',2000) insert 仓库 values('0003','包总库',8000) insert 仓库 values('0004','昆南库',2000) insert 仓库 values('0005','昆东库',2000) go insert 药品存储 values('0001','0001',100) insert 药品存储 values('0002','0002',200) insert 药品存储 values('0003','0003',400) insert 药品存储 values('0004','0004',150) insert 药品存储 values('0005','0005',170) insert 药品存储 values('0002','0006',200) insert 药品存储 values('0003','0007',200) insert 药品存储 values('0002','0008',30) insert 药品存储 values('0002','0009',20) insert 药品存储 values('0004','0010',25) 4.4基本查询 --用查询查看曹操床位费用详情 select 病人.病人号,病人.姓名,床位.设备号,床位.价格,床位占用.开始时间,床位占用.结束时间,convert(int,( (YEAR(床位占用.结束时间)-YEAR(床位占用.开始时间))*365+ (month(床位占用.结束时间)-month(床位占用.开始时间))*30+(day(床位占用.结束时间)-day(床位占用.开始时间))),105)*价格单次总费用 from 病人join 床位占用on (病人.病人号=床位占用.病人号)join 床位on (床位占用.设备号=.床位.设备号) where 姓名='曹操' --用查询查看曹操床位总费用 select /*病人.病人号,病人.姓名,床位.设备号,床位.价格,床位占用.开始时间,床位占用.结束时间,*/sum(convert(int,( (YEAR(床位占用.结束时间)-YEAR(床位占用.开始时间))*365+ (month(床位占用.结束时间)-month(床位占用.开始时间))*30+(day(床位占用.结束时间)-day(床位占用.开始时间))),105)*价格) 总费用 from 病人join 床位占用on (病人.病人号=床位占用.病人号)join 床位on (床位占用.设备号=.床位.设备号) where 姓名='曹操' -存储过程/触发器/事务 /* 我们要做的是: 查看某个病人的所有病历信息 查看病人的费用信息 查看某个设备(床位,氧瓶,手术台)的历史使用情况 查看当前某类所有设备的使用情况(被那个病人使用中/未被使用) 查看某个药品信息(基本信息,库存信息,) 查看药品被购买信息,处方使用信息 */ use 住院部数据库系统 go create proc 查找病人详细信息 @name char(15) as select 病人.病人号,姓名,性别,年龄,诊断结果信息 from 病人 join 诊断on(病人.病人号=诊断.病人号) join 病历on(诊断.病历号=病历.病历号) where 姓名=@name exec 查找病人详细信息'曹操' create proc 查找病人主治医生信息 @name char(15) as select 医护人员.工号医生编号,医护人员.姓名,医护人员.年龄,医护人员.毕业学校,病人.病人号被治疗过的病人号,病人.姓名被治疗过的病人姓名 from 病人,医生,医护人员 where 病人.姓名=@name and 病人.主治医生编号=医生.工号and 医护人员.工号=医生.工号 exec 查找病人主治医生信息'曹操' create proc 查看当前可用床位信息 --@time datetime as select distinct 床位.设备号空闲床位号,价格 from 床位left join 床位占用on (床位.设备号=床位占用.设备号) where 结束时间is null or 结束时间@shuliang )) begin set @eerror=@eerror+@@error update 药品存储set 剩余量=剩余量-@shuliang where 药品号=@yaopinhao print '药品数量足够,购药成功' commit transaction end else begin set @eerror=@eerror+@@error print '药品数量不够,或者不存在此购药单号,不能购药' delete 购买药品where 购药单号=@gouyaodanhao set @eerror=@eerror+@@error if(@eerror<>0) rollback tran else commit tran end --用查询查看曹操床位费用详情 select 病人.病人号,病人.姓名,床位.设备号,床位.价格,床位占用.开始时间,床位占用.结束时间,convert(int,( (YEAR(床位占用.结束时间)-YEAR(床位占用.开始时间))*365+ (month(床位占用.结束时间)-month(床位占用.开始时间))*30+(day(床位占用.结束时间)-day(床位占用.开始时间))),105)*价格单次总费用 from 病人join 床位占用on (病人.病人号=床位占用.病人号)join 床位on (床位占用.设备号=.床位.设备号) where 姓名='曹操' --用查询查看曹操床位总费用 select /*病人.病人号,病人.姓名,床位.设备号,床位.价格,床位占用.开始时间,床位占用.结束时间,*/sum(convert(int,( (YEAR(床位占用.结束时间)-YEAR(床位占用.开始时间))*365+ (month(床位占用.结束时间)-month(床位占用.开始时间))*30+(day(床位占用.结束时间)-day(床位占用.开始时间))),105)*价格) 总费用 from 病人join 床位占用on (病人.病人号=床位占用.病人号)join 床位on (床位占用.设备号=.床位.设备号) where 姓名='曹操' --用事务知识查看曹操床位总费用 create proc 查看病人床位费用 @name char(15), @tprice money output as --declare @name char(15) --declare @tprice money set @tprice=0 --set @name='曹操' --declare @tprice money select /*病人.病人号,病人.姓名,床位.设备号,床位.价格,床位占用.开始时间,床位占用.结束时间,*/@tprice= sum(convert(int,( (YEAR(床位占用.结束时间)-YEAR(床位占用.开始时间))*365+ (month(床位占用.结束时间)-month(床位占用.开始时间))*30+(day(床位占用.结束时间)-day(床位占用.开始时间))),105)*价格) from 病人join 床位占用on (病人.病人号=床位占用.病人号)join 床位on (床位占用.设备号=.床位.设备号) where 姓名=@name declare @price money exec 查看病人床位费用'曹操',@price output select @price as 曹操的病床总费 --用游标知识查看费用 declare @name char(15) set @name='曹操' declare cur_病人床位费用cursor for select /*病人.病人号,病人.姓名,床位.设备号,床位.价格,床位占用.开始时间,床位占用.结束时间,*/convert(int,( (YEAR(床位占用.结束时间)-YEAR(床位占用.开始时间))*365+ (month(床位占用.结束时间)-month(床位占用.开始时间))*30+(day(床位占用.结束时间)-day(床位占用.开始时间))),105)*价格单次总费用 from 病人join 床位占用on (病人.病人号=床位占用.病人号)join 床位on (床位占用.设备号=.床位.设备号) where 姓名=@name for read only go open cur_病人床位费用 declare @price money declare @cprice money set @cprice=0 fetch from cur_病人床位费用into @price while @@FETCH_STATUS=0 begin print N'病人床位单次费用'+convert (char(10),@price) set @cprice=@cprice+@price fetch next from cur_病人床位费用into @price END select @cprice as 病人床位总费用 go close cur_病人床位费用 go deallocate cur_病人床位费用 --用查询查看曹操氧气瓶费用详情 select 病人.病人号,病人.姓名,氧气瓶.设备号,氧气瓶.价格,氧气瓶占用.开始时间,氧气瓶占用.结束时间,氧气瓶占用.使用量,使用量*价格单次总费用 from 病人join 氧气瓶占用on (病人.病人号=氧气瓶占用.病人号)join 氧气瓶on (氧气瓶占用.设备号=.氧气瓶.设备号) where 姓名='曹操' --用查询查看曹操药品费用详情 select 病人.病人号,病人.姓名,药品.药品号,药品.价格,购买药品.时间,购买药品.数量,数量*价格单次总费用 from 病人join 购买药品on (病人.病人号=购买药品.病人号)join 药品on (购买药品.药品号=.药品.药品号) where 姓名='曹操' --用查询查看曹操手术台费用详情 select 病人.病人号,病人.姓名,手术台.设备号,手术台.价格,手术.开始时间,手术.结束时间,价格单次总费用 from 病人join 手术on (病人.病人号=手术.病人号)join 手术台on (手术.设备号=.手术台.设备号) where 姓名='曹操' use 住院部数据库系统 --用查询查看曹操床位总费用 select /*病人.病人号,病人.姓名,床位.设备号,床位.价格,床位占用.开始时间,床位占用.结束时间,*/sum(convert(int,( (YEAR(床位占用.结束时间)-YEAR(床位占用.开始时间))*365+ (month(床位占用.结束时间)-month(床位占用.开始时间))*30+(day(床位占用.结束时间)-day(床位占用.开始时间))),105)*价格) 总费用 from 病人join 床位占用on (病人.病人号=床位占用.病人号)join 床位on (床位占用.设备号=.床位.设备号) where 姓名='曹操' ----------------------------费用详单----------------------------------------- --用查询查看曹操床位费用详情 select 病人.病人号,病人.姓名,床位.设备号,床位.价格,床位占用.开始时间,床位占用.结束时间,convert(int,( (YEAR(床位占用.结束时间)-YEAR(床位占用.开始时间))*365+ (month(床位占用.结束时间)-month(床位占用.开始时间))*30+(day(床位占用.结束时间)-day(床位占用.开始时间))),105) 使用量,convert(int,( (YEAR(床位占用.结束时间)-YEAR(床位占用.开始时间))*365+ (month(床位占用.结束时间)-month(床位占用.开始时间))*30+(day(床位占用.结束时间)-day(床位占用.开始时间))),105)*价格单次总费用 from 病人join 床位占用on (病人.病人号=床位占用.病人号)join 床位on (床位占用.设备号=.床位.设备号) where 姓名='曹操' union --用查询查看曹操氧气瓶费用详情 select 病人.病人号,病人.姓名,氧气瓶.设备号,氧气瓶.价格,氧气瓶占用.开始时间,氧气瓶占用.结束时间,氧气瓶占用.使用量,使用量*价格单次总费用 from 病人join 氧气瓶占用on (病人.病人号=氧气瓶占用.病人号)join 氧气瓶on (氧气瓶占用.设备号=.氧气瓶.设备号) where 姓名='曹操' --用查询查看曹操药品费用详情 select 病人.病人号,病人.姓名,药品.药品号,药品.价格,购买药品.时间,购买药品.数量,数量*价格单次总费用 from 病人join 购买药品on (病人.病人号=购买药品.病人号)join 药品on (购买药品.药品号=.药品.药品号) where 姓名='曹操' --用查询查看曹操手术台费用详情 select 病人.病人号,病人.姓名,手术台.设备号,手术台.价格,手术.开始时间,手术.结束时间,价格单次总费用 from 病人join 手术on (病人.病人号=手术.病人号)join 手术台on (手术.设备号=.手术台.设备号) where 姓名='曹操' 第5章 总结 通过本次课程设计,我更加深入的了解到了数据库设计的各种方法,了解到了需求分析的主要内容,以及概念结构设计、逻辑结构设计、物理结构设计中需要特别注意的地方,以及概念结构设计、逻辑结构设计、物理结构设计之间的关系及设计方法,使得更好的理解课本知识,学以致用,但设计过程中也遇到了各种各样的问题,由于我们教学过程中比较注重前面部分的基础知识学习,所以系统的数据库设计方法很清楚,所以很多知识理解都比较透彻,虽然时间有限,设计出来的系统难免出错,但我想以后应该多做一些系统,这样应该会更加的理解。 参考文献 教材:《数据库系统教程》 作者:施伯乐 丁康宝 汪卫 教材:《SQL Server 2008 完全学习手册》 作者:郭郑州 陈军红 PAGE 8
本文档为【数据库原理及应用_课程设计说明书】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
北溟愚鱼
暂无简介~
格式:doc
大小:279KB
软件:Word
页数:0
分类:工学
上传时间:2018-09-23
浏览量:12