数据库系统实验报告58.docx
《数据库系统实验报告58.docx》由会员分享,可在线阅读,更多相关《数据库系统实验报告58.docx(18页珍藏版)》请在冰点文库上搜索。
数据库系统实验报告58
实验五数据控制(完整性)
一实验目的
熟悉SQL语句对数据库进行完整性控制的方法。
二实验环境
微机;
Windowsxp操作系统;
安装了SQLSERVER。
三实验内容
使用SQL进行数据完整性控制:
包括三类完整性、check短语、constrain子句。
1、在创建下列关系表时完成如下约束:
定义实体完整性;参照完整性(外码、在删除S中的元组时级联删除SC中相应元组、当更新S中的Sno时同时更新SC中的Sno);用户定义完整性:
学生年龄<30、所在系取值唯一。
2、修改S中的约束条件,学号在100-1000之间。
学生关系表S:
学号
姓名
性别
年龄
所在系
Sno
Sname
Ssex
Sage
sdept
创建课程关系表C:
课程号
课程名
先行课
学分
Cno
Cname
Cpno
ccredit
创建成绩关系表SC:
学号
课程号
成绩
Sno
Cno
grade
3、用实验验证当操作违反了完整性约束时,系统如何处理?
如:
在S中插入一条记录,学号不在100-1000之间;在SC中插入一条记录,课程号在C表中没有。
4、删除C中的一条课程记录(该课程至少应有一学生选修,即在SC表中有记录),观察SC表中记录的变化。
5、删除2中增加的约束,再在S中插入一条记录,学号不在100-1000之间,结果如何?
四实验结果(写出每次实验步骤以及结果
1.在创建下列关系表时完成如下约束:
定义实体完整性;参照完整性(外码、在删除S中的元组时级联删除SC中相应元组、当更新S中的Sno时同时更新SC中的Sno);用户定义完整性:
学生年龄<30、所在系取值唯一。
2.修改S中的约束条件,学号在3901080400-3901080499之间。
3.用实验验证当操作违反了完整性约束时,系统如何处理?
如:
在S中插入一条记录,学号不在3901080400-3901080499之间;在SC中插入一条记录,课程号在C表中没有。
4.删除C中的一条课程记录(该课程至少应有一学生选修,即在SC表中有记录),观察SC表中记录的变化。
5.删除2中增加的约束,再在S中插入一条记录,学号不在3901080400-3901080499之间,结果如何?
实验六存储过程建立与调用
一、实验目的
理解存储过程的概念、建立和调用方法。
二、实验环境
Windowsxp操作系统,MSSQLSERVER2005
三、实验内容与步骤
1、建立五张表,每张表至少需要10条记录。
(1)/*员工人事表employee*/
emp_no
char(5)
Notnull
primarykey
员工编号
emp_name
char(10)
Notnull
员工姓名
sex
char
(1)
性别
dept
char(4)
所属部门
title
char(6)
职称
date_hired
datetime
到职日
birthday
datetime
生日
salary
int
薪水
addr
char(50)
住址
(2)/*客户表customer*/
cust_id
char(5)
Notnull
primarykey
客户号
cust_name
char(20)
Notnull,
客户名称
addr
char(40)
客户住址
tel_no
char(10)
客户电话
zip
char(6)
邮政编码
(3)/*销售主表sales*/
order_no
int
Notnull
primarykey
订单编号
cust_id
char(5)
Notnull,
客户号
sale_id
char(5)
业务员编号
tot_amt
numeric(9,2)
订单金额
order_date
datetime
订货日期
ship_date
datetime
出货日期
invoice_no
char(10)
发票号码
(4)/*销货明细表sale_item*/
order_no
int
Notnull,
primarykey
订单编号
prod_id
char(5)
Notnull,
primarykey
产品编号
qty
int
销售数量
unit_price
numeric(7,2)
单价
order_date
datetime
订单日期
(5)/*产品名称表product*/
pro_id
char(5)
Notnull
primarykey
产品编号
prod_name
char(20)
Notnull
产品名称
2、建立表的同时创建表的约束。
(1)为每张表建立主键约束。
(2)通过拖放操作加入外键。
(3)在表employee加入CHECK约束:
输入的员工编号必须以E开头的5位数编号,性别只能为M/F。
(4)为销售主表sales中的发票编号字段建立UNIQUE约束。
3、通过快捷菜单得到脚本。
4、利用存储过程,给employee表添加一条业务部门员工的信息。
5、利用存储过程从employee、sales、customer表的连接中返回所有业务员的姓名、客户姓名、销售金额。
6、利用存储过程查找“刘德华”的员工编号、订单编号、销售金额。
7、利用存储过程查找姓“李”并且职称为“职员”的员工的员工编号、订单编号、销售金额。
8、利用存储过程计算出订单编号为10003的订单的销售金额。
四实验结果(写出每次实验步骤以及结果)
4、利用存储过程,给employee表添加一条业务部门员工的信息。
5、利用存储过程从employee、sales、customer表的连接中返回所有业务员的姓名、客户姓名、销售金额。
6.利用存储过程查找“刘德华”的员工编号、订单编号、销售金额。
7.利用存储过程查找姓“李”并且职称为“职员”的员工的员工编号、订单编号、销售金额。
8.利用存储过程计算出订单编号为10003的订单的销售金额。
实验七触发器的建立与使用
一、实验目的
进一步熟悉SQL语句对数据库进行完整性控制的方法;理解触发器的概念、定义方法和触发条件。
二、实验环境
Windowsxp操作系统;安装了SQLSERVER。
三、实验内容
1、建立一个触发器,当向表employee插入一条记录时,自动显示employee中的记录。
2、针对employee表写一个DELETE触发器。
3、针对employee表写一个UPDATE触发器。
四、实验结果(写出每次实验步骤以及结果)
1.建立一个触发器,当向表employee插入一条记录时,自动显示employee中的记录。
2.针对employee表写一个DELETE触发器。
3.针对employee表写一个UPDATE触发器。
实验八数据库设计
一、实验目的
熟悉数据库设计的基本方法和步骤,搞清数据库设计各个阶段所要完成的任务。
通过该实验更加清楚地了解数据库设计的过程。
2、实验环境
Windows操作系统;安装了SQLSERVER。
三、实验内容
医疗保险综合管理系统数据库设计。
医疗保险综合管理系统具体要求如下:
●医保中心为参保单位/人员建档,并确定应缴费金额。
●医保中心为参保人员建立个人帐户并发医保卡。
●参保单位或人员定期(按月)到医保中心缴费,所缴费用按一定比例划入统筹帐户及个人帐户。
●对未缴费或欠缴单位/人员,医保中心发出催缴通知。
●参保人员持医保卡到指定医院门诊看病,费用由个人帐户支付,超支自理。
●参保人员到指定医院住院治疗,费用按统筹基金支付,同时个人也要负担一定比例。
统筹基金支付实行起付标准、分段计算、累加支付的办法。
●医保中心与定点医院/药房结算费用,交换数据(如黑名单等)。
●凡参加基本医疗保险,按时足额缴纳基本医疗保险费的,方可享受医疗保险待遇。
1.征缴业务
征缴业务是医保经办机构的核心业务之一,它是依据国家医疗保险征缴政策对参保单位和职工缴纳保费所开展的业务。
1.1档案管理
完成参保单位档案的新建,变更维护,注销等功能,建立参保单位档案后,根据单位提供的职工列表,完成参保个人基本档案的新建,变更维护,注销等功能。
建立个人基本档案后,办理一个医疗证卡用于标识身份,同时为每个参保职工建立一个个人帐户。
1.2征缴计划
每月生成所有参保单位应缴金额(注意职工的某些异动直接影响征缴计划)。
征缴标准如下:
◆基础数据
月社会平均工资(X)(上级提供)
职工月工资(Y)(职工基本信息中含有,参保单位提供)
◆缴费基数:
每个参保职工缴费基数(Z):
YY>X*300%Z=X*300%
X*60%最后参保单位缴费金额(M):
全体职工Z的总和*9%
1.3收款处理
收取现金做交费处理,打印现金收据。
检索本月未交费单位,按单位制作催缴单(每个单位一份邮递)和催缴明细表(一份含所有欠费单位,内部电话催缴用)
催缴后仍未缴费单位经领导核实后做冻结处理(对统筹基金、个人帐户同时冻结),个人将无法使用基金帐户。
1.4划拨处理
单位缴费后,每月定期向个人帐户中的自有资金划拨一定资金,该资金是个人支配,仅用于医疗支出。
根据以下标准,系统每月划拨一次。
◆个人帐户划拨比例
在职:
年令≤30(2+0.7)%
31<年令≤45(2+1)%
年令>45(2+1.5)%
退休:
(符合医保要求年令)4%
◆个人帐户月划拨金额=个人月工资*个人帐户划拨比例
扣除划拨给个人账户资金之外的收入,就是由医保中心支配的统筹基金。
2.支付业务
支付业务是医保经办机构(各医院)的核心业务之一,它是依据医保基金支付政策和经办机构的管理办法对参保职工就诊所发生的费用进行偿付所开展的业务。
它由门诊收费、住院收费、特殊报销及审核与结算组成。
具体如下:
2.1住院收费业务流程
病人持身份证、证卡在住院处办理入院登记手续,住院期间证卡停止门诊使用;住院期间发生的费用按日期分类记录,在病人出院时按照医疗保险政策计算各项费用:
总额、统筹记帐金额、个人自付金额及对病人转科业务的处理。
入院登记
登记入院病人基本信息
住院费用录入
录入病人住院发生的费用
出院结算
计算病人住院期间发生的费用,办理出院手续
转科
办理病人转科手续
住院病人查询
查询住院病人费用情况
2.2入院登记
每位病人住院都需要登记其基本信息,作为这位病人的基本信息以供使用。
2.3住院费用录入
录入分类费用(由费用字典提供),记录费用发生时所在科室。
确认后可以计算个人自付金额,检查预交款。
2.4出院结算
根据结算政策计算各项费用,填写出院疗效:
痊愈、好转、未愈、死亡,打印住院费用结算单。
结算方法如下:
1、首先按照住院次数,计算本次住院的最低起付金额,只有超出起付金额后才会采用医疗保险政策来计算,不足起付金额时,所有费用都由个人承担;
2、然后按照每个项目的自负比例计算个人应付金额和进入统筹金额;
3、对于计入统筹金额的部分,再根据统筹分段,按照比例计算出个人应付金额和统筹基金支付金额;
4、合计个人应付金额,先从个人账户中扣除,不足时收取现金,统筹基金支付金额也记入个人账户;
5、每人每年累计统筹基金支付金额最高不超过20000,超出后将全部自负。
2.5转科
实现科室的更改,每次费用总是记录在当前所在科室。
四、实验结果(写出每次实验步骤以及结果)
ER图:
关系模型: