《数据库原理与应用》实验报告三答案.docx
《《数据库原理与应用》实验报告三答案.docx》由会员分享,可在线阅读,更多相关《《数据库原理与应用》实验报告三答案.docx(19页珍藏版)》请在冰豆网上搜索。
《数据库原理与应用》实验报告三答案
广东金融学院实验报告
课程名称:
数据库原理与应用
实验编号
及实验名称
实验三数据库高级应用实验
系别
姓名
学号
班级
实验地点
实验日期
年月日
实验时数
8
指导教师
同组其他成员
无
成绩
一、实验目的及要求
1、掌握SQLServer存储过程的定义和使用。
2、掌握SQLServer触发器的定义和使用。
二、实验环境及相关情况(包含使用软件、实验设备、主要仪器及材料等)
1、计算机操作系统要求在windowsXP以上。
2、并要求SQLServer软件2000以后版本。
三、实验内容及要求
利用实验指导书中的关系数据库完成下面题目:
1、说明下面代码段的功能
SELECTtnameas‘姓名’,tSexas‘性别’,
casetrank
when‘教授’then‘高级职称’
when‘讲师’then‘中级职称’
else
‘初级职称’
end
fromteacher
创建一个有教师姓名、性别、职称的存储过程。
其中将级别为“教授”的教师职称显示为“高级职称”;
将级别为“讲师”的教师职称显示为“中级职称”;剩余级别的教师职称显示为“初级职称”。
2、完成下面代码的书写
计算student_course表的平时分数列的平均值。
如果小于80,则分数增加其值的5%;如果分数的最高值超过95,则终止该操作。
在以下代码划线处填入适当的内容以完成上述功能。
WHILE(SELECT_AVG_(NormalMark)FROMstudent_course)<80
BEGIN
UPDATEstudent_course
SETNormalMark=NormalMark
if(SELECTMAX(NormalMark)FROMstudent_course)>__95____
BREAK
ELSE
_CONTINUE____
END
注意:
实验前要先给所有同学的NormalMark赋一个初值,比如50。
3、根据要求完成下列题目
1)编写一个触发器:
在添加期末成绩成绩信息时,利用平时成绩、其中成绩和期末成绩来计算成绩总评。
如果没有期中成绩,则平时和期末成绩比重为2:
8,如果有期中成绩,则平时、期中、期末三者比重为2:
2:
6。
altertablestudent_course
addmidmarkint
go
updatestudent_coursesetmidmark=mark-2
go
CREATETRIGGERtrig_student_course
ONstudent_course
FORinsert,update
AS
begin
declare@nMarkint,@eMarkint,@mMarkint
declare@snovarchar(10),@ccnochar(10)
select@nmark=normalmark,@emark=exammark,@mMark=midmark,@sno=sno,@ccno=ccnofrominserted
if@mMark>0
updatestudent_course
setmark=@nmark*+@mMark*+@emark*
wheresno=@snoandccno=@ccno
else
updatestudent_course
setmark=@nmark*+@emark*
wheresno=@snoandccno=@ccno
end
2)创建一个带输入参数和输出参数的存储过程,要求实现如下功能:
输入学生学号,然后输出学生的选课门数、平均分以及所选学分。
CREATEPROCshow_course_Mark
(@snochar(9),
@sc_Countintoutput,
@avgMarkfloatoutput,
@creditintoutput)
AS
begin
select@sc_Count=count(*),@avgMark=avg(mark)
fromstudent_coursesc
wheresc.sno=@sno
select@credit=sum(credit)
fromstudent_coursesc,course_classcc
wheresc.ccno=cc.ccnoandsc.sno=@sno
end
3)调用2小题中的存储过程,并分别获得输出相关信息。
declare@sccountint
declare@avgMarkfloat
declare@creditsfloat
EXECshow_course_Mark'081710106',@sccountoutput,@avgMarkoutput,@creditsoutput
select'081710106'as'学号',@sccountas'选课门数',@avgMarkas'平均分',@creditsas'所选学分'
4、思考题
1)存储过程和触发器的异同点?
四、实验步骤及结果(包含简要的实验步骤流程、结论陈述)
五、实验总结(包括心得体会、问题回答及实验改进意见)
六、教师评语
1、完成所有的实验内容,实验步骤和实验结果基本正确。
2、至少完成主要的实验内容,实验步骤和实验结果基本正确。
3、仅完成部分的实验内容,实验步骤和结果基本正确。
4、虽然完成了主要实验内容,但是实验步骤和结果存在多处重大错误。
5、未能很好地完成规定的实验内容,且实验步骤和结果基本不正确。
6、其它:
评定等级:
优秀良好中等及格不及格
教师签名:
年月日
《数据库原理与应用》试题三
一.单项选择题(本大题共15小题,每小题2分,共30分)
1.对现实世界进行第二层抽象的模型是[]
A.概念数据模型B.用户数据模型
C.结构数据模型D.物理数据模型
2.数据库在磁盘上的基本组织形式是[]
A.DBB.文件C.二维表D.系统目录
3.在关系模型中,起导航数据作用的是[]
A.指针B.关键码C.DDD.索引
4.查询优化策略中,正确的策略是[]
A.尽可能早地执行笛卡尔积操作B.尽可能早地执行并操作
C.尽可能早地执行差操作D.尽可能早地执行选择操作
5.SQL中,“DELETEFROM表名”表示[]
A.从基本表中删除所有元组B.从基本表中删除所有属性
C.从数据库中撤消这个基本表D.从基本表中删除重复元组
6.设关系模式R(A,B,C),F是R上成立的FD集,F={A→B,C→B},
ρ={AB,AC}是R的一个分解,那么分解ρ[]
A.保持函数依赖集FB.丢失了A→B
C.丢失了C→BD.丢失了B→C
7.在关系模式R分解成数据库模式ρ时,谈论无损联接的先决条件是[]
A.数据库模式ρ中的关系模式之间有公共属性B.保持FD集
C.关系模式R中不存在局部依赖和传递依赖D.存在泛关系
8.在关系数据库设计中,子模式设计是在__________阶段进行。
[]
A.物理设计B.逻辑设计C.概念设计D.程序设计
9.如果有9个不同的实体集,它们之间存在着12个不同的二元联系(二元联系是指两个实体集之间的联系),其中4个1:
1联系,4个1:
N联系,4个M:
N联系,那么根据ER模型转换成关系模型的规则,这个ER结构转换成的关系模式个数为[]
A.9个B.13个C.17个D.21个
10.在DB技术,未提交的随后被撤消了的数据,称为[]
A.报废的数据B.过时的数据C.撤消的数据D.脏数据
11.SQL中的“断言”机制属于DBS的[]
A.完整性措施B.安全性措施C.物理安全措施D.恢复措施
12.ORDB中,同类元素的无序集合,并且允许一个成员可多次出现,称为[]
A.结构类型B.集合类型C.数组类型D.多集类型
13.在OODB中,包含其他对象的对象,称为[]
A.强对象B.超对象C.复合对象D.持久对象
14.在DDBS中,数据传输量是衡量查询时间的一个主要指标,导致数据传输量大的主要原因是[]
A.场地间距离过大B.数据库的数据量大
C.不同场地间的联接操作D.在CPU上处理通信的代价高
15.DDBS中,透明性层次越高[]
A.网络结构越简单B.网络结构越复杂
C.应用程序编写越简单D.应用程序编写越复杂
二、填空题(本大题共10小题,每小题1分,共10分)
16.数据管理技术的发展,与__________、__________和__________有密切的联系。
17.在DBS中存放三级结构定义的数据库称为__________。
18.SQL中,与操作符“NOTIN”等价的操作符是__________。
19.在关系数据库中,规范化关系是指__________。
20.两个函数依赖集F和G等价的充分必要条件是__________。
21.DBD中的概念模型应充分表达用户的要求,并且应该独立于_________________。
22.判断一个并发调度是否正确,可用__________概念来衡量。
23.ORDB中,复合类型有结构类型、列表类型、数组类型、__________和集合类型。
24.DDBS中,分布透明性可以归入__________范围。
25.在DDBS中,基于半联接查询优化策略的基本思想是__________。
三.简答题(本大题共10小题,每小题3分,共30分)
26.在层次、网状、关系、面向对象等数据模型中,数据之间联系是如何实现的?
27.设有关系R(A,B,C)和S(B,C,D),试写出与关系代数表达式
πB,C(σA>D(R⋈S))
等价的元组表达式、关系逻辑规则和SQL语句。
28.设有域表达式{t1t2t3|(∃u1)(∃u2)(∃u3)(R(t1u1t2)∧S(u2t3u3)∧u1>t3)},
试写出其等价的关系代数表达式、元组表达式和关系逻辑规则。
29.设教学数据库中,有两个基本表:
学生表:
S(S#,SNAME,AGE,SEX)
学习表:
SC(S#,C#,GRADE)
现有一个SQL语句:
SELECTSEX,AGE,AVG(GRADE)
FROMS,SC
WHERES.S#=SC.S#
GROUPBYSEX,AGE
ORDERBY3DESC;
试写出与此语句等价的汉语查询语句。
30.试写出3NF的定义。
当一个关系模式不是3NF时,会出现什么问题?
试举例说明。
31.试解释联系的元数、连通词和基数的三个概念。
32.有些事务只要读数据,为什么也要加S锁?
33.为什么只有PX协议还不够,还要提出PXC协议?
34.试解释DDBS的“分布透明性”概念。
“分布透明性”分成哪几个层次?
分布透明性在数据独立性中可以归入哪个范围?
35.关系代数的自然连接操作和半连接操作之间有些什么联系?
四.设计题(本大题共5小题,每小题4分,共20分)
36.设数据库中有两个基本表:
职工表EMP(E#,ENAME,AGE,SALARY,D#),
其属性分别表示职工工号、姓名、年龄、工资和工作部门的编号。
部门表DEPT(D#,DNAME,MGR#),
其属性分别表示部门编号、部门名称和部门经理的职工工号。
试指出每个表的主键和外键。
并写出每个表创建语句中的外键子句。
37.在第36题的两个基本表中,写出下列查询的关系代数表达式和SQL语句:
检索每个部门经理的工资,要求显示其部门编号、部门名称、经理工号、经理姓名和经理工资。
38.在第36题的两个基本表中,建一个年龄大于50岁的职工视图,属性为(D#,DNAME,E#,ENAME,AGE,SALARY)。
39.在第36题的两个基本表中,写一个断言,要求每个部门的经理工资应大于本部门所有职工的工资。
40.下面是用ORDB的定义语言定义的数据库:
CREATETYPEMyStringcharvarying;
CREATETYPEcnameMyString;
CREATETABLEdepartment(dnoMyString,
dnameMyString,
staffsetof(ref(employee)));
CREATETABLEemployee(enoMyString,
enameMyString,
salaryinteger,
childrensetof(cname),
works_forres(department));
(1)试画出上述数据库的对象联系图。
(2)试用ORDB的查询语言写出下列查询的SELECT语句:
检索部门编号为D6的部门中每个职工的子女名,要求显示职工的姓名、子女名。
五.综合题(本大题共2小题,每小题5分,共10分)
41.设有一个记录各个球队队员每场比赛进球数的关系模式
R(队员编号,比赛场次,进球数,球队名,队长名)
如果规定每个队员只能属于一个球队,每个球队只有一个队长。
1试写出关系模式R的基本FD和关键码。
2说明R不是2NF模式的理由,并把R分解成2NF模式集。
3进而把R分解成3NF模式集,并说明理由。
42.设某汽车运输公司数据库中有三个实体集。
一是“车队”实体集,属性有车队号、车队名等;二是“车辆”实体集,属性有牌照号、厂家、出厂日期等;三是“司机”实体集,属性有司机编号、姓名、电话等。
设车队与司机之间存在“聘用”联系,每个车队可聘用若干司机,但每个司机只能应聘于一个车队,车队聘用司机有个聘期;车队与车辆之间存在“拥有”联系,每个车队可拥有若干车辆,但每辆车只能属于一个车队;司机与车辆之间存在着“使用”联系,司机使用车辆有使用日期和公里数两个属性,每个司机可使用多辆汽车,每辆汽车可被多个司机使用。
(1)试画出ER图,并在图上注明属性、联系类型、实体标识符;
(2)将ER图转换成关系模型,并说明主键和外键。
(3)将ER图转换成对象联系图。
(4)将ER图转换成UML的类图。
《数据库原理与应用》试题三答案
一.单项选择题答案
1.C2.B3.B4.D5.A6.C7.D8.B
9.B10.D11.A12.D13.C14.C15.C
二.填空题答案
16.硬件软件计算机应用17.DD
18.<>ALL19.满足1NF(或属性值不可分解)
20.F+=G+21.硬件和DBMS
22.可串行化23.多集类型(或包类型)
24.物理独立性25.不参与连接的数据不在网络中传输
三.简答题答案
26.答:
层次、网状模型中,数据联系通过指针实现的。
关系模型中,数据联系通过外键与主键相联系实现的。
面向对象模型中,数据联系通过引用类型实现的,引用类型是指引用的不是对象本身,而是对象标识符。
27.答:
元组表达式如下:
{t|(∃u)(∃v)(R(u)∧S(v)∧u[2]=v[1]∧u[3]=v[2]∧u[1]>v[3]
∧t[1]=u[2]∧t[2]=u[3])}
关系逻辑规则如下:
W(b,c)←R(a,b,c)∧S(b,c,d)∧a>d
SQL语句:
FROMR,S
WHERER.B=S.BANDR.C=S.CANDA>D;
28.答:
等价的关系代数表达式如下:
π1,3,5(σ2>2(R×S))
等价的元组表达式如下:
{t|(∃u)(∃v)(R(u)∧S(v)∧u[2]>v[2]∧t[1]=u[1]∧t[2]=u[3]∧t[3]=v[2])}
关系逻辑规则如下:
W(x,y,z)←R(x,a,y)∧S(b,z,c)∧a>z
29.答:
检索每一性别每一年龄的学生的平均成绩,显示时,按平均成绩降序排列。
30.答:
如果关系模式R是1NF,并且R中每一个非主属性都不传递依赖于R的候选键,那么称R是3NF模式。
当一个模式不是3NF模式时,那么会存在非主属性对候选键的传递依赖,在关系中会存在数据冗余,进而引起操作异常。
例R(A,B,C)中,有A→B,B→C。
此时R的关键码是A,因此A→C是一个传递依赖。
设关系r的值如下:
ABC
a1b1c1
a2b1c1
a3b1c1
此时,A→B和B→C在上述关系中成立。
但三个元组中的c1冗余地出现了三次。
在修改时有可能引起异常。
31.答:
联系的元数是指一个联系涉及到的实体集个数。
联系的连通词是指联系涉及到的实体集之间实体对应的方式。
譬如二元联系的连通词有四种:
1:
1,1:
N,M:
N,M:
1。
联系的基数是对实体间联系方式更为详细的描述,应描述出有联系实体的数目的最小值和最大值。
32.答:
一个事务在读一批数据时,为了防止其他事务对这批数据进行修改,也应对这批数据加S锁,这样才能读到全部正确的数据。
33.答:
如果事务只执行PX协议,那么就有可能使其他事务发生丢失更新问题。
譬如事务T1对某数据修改后立即释放X封锁,此时其他事务就有可能对该数据实现X封锁,并进行修改。
但是事务T1尚未结束,若T1是以ROLLBACK操作结束。
那就使其他事务的更新丢失了。
因此X封锁必须保留到事务终点,即实现PXC协议。
34.答:
DDBS的分布透明性是指用户不必关心数据的逻辑分片,不必关心数据物理位置分配的细节,也不必关心各个场地上数据库的数据模型。
上述定义中的“三个不必”就是分布透明性的三个层次,即分片透明性、位置透明性和局部数据模型透明性。
分布透明性可以归入物理独立性范围。
35.答:
自然连接和半连接之间的联系可用下面两点来表示:
(1)半连接是用自然连接操作来定义的:
R⋉S=πR(R⋈S);
(2)连接操作用半连接方法来求的:
R⋈S=(R⋉S)⋈S。
四.设计题答案
36.答:
EMP表的主键为E#,外键为D#。
DEPT表的主键为D#,外键为MGR#
在EMP表的创建语句中,可写一个外键子句:
FOREIGNKEYD#REFERENCESDEPT(D#);
在DEPT表的创建语句中,可写一个外键子句:
FOREIGNKEYMGR#REFERENCESEMP(E#);
MGR#=E#
37.答:
关系表达式为:
πDEPT.D#,DNAME,MGR#,ENAME,SALARY(DEPT⋈EMP)
SELECT语句为:
SELECTDEPT.D#,DNAME,MGR#,ENAME,SALARY
FROMDEPT,EMP
WHEREMGR#=E#;
38.解:
CREATEVIEWVIEW5
ASSELECTDEPT.D#,DNAME,E#,ENAME,AGE,SALARY
FROMDEPT,EMP
WHEREDEPT.D#=EMP.D#ANDAGE>50;
39.解:
CREATEASEERTIONASSE8CHECK
(NOTEXISTS(SELECT*
FROMEMP,DEPT
WHEREE#=MGR#
ANDSALARY<=ALL
(SELECTSALARY
FROMEMP
WHERED#=DEPT.D#)));
40.解:
(1)对象联系图如图4所示
图4
FROMdepartmentasA,A.staffasB,B.childrenasC
WHEREA.dno=‘D6’;
FROMemployeeasB,B.childrenasC
WHEREB.works_for.dno=‘D6’;
五.综合题答案
41.解:
⑴根据每个队员只能属于一个球队,可写出FD队员编号→球队名;
根据每个球队只有一个队长,可写出FD球队名→队长名;
“每个队员每场比赛只有一个进球数”,这条规则也是成立的,因此还可写出FD:
(队员编号,比赛场次)→进球数。
从上述三个FD可知道,R的关键码为(队员编号,比赛场次)。
⑵从⑴可知,R中存在下面两个FD:
(队员编号,比赛场次)→(球队名,队长名)
队员编号→(球队名,队长名)
显然,其中第一个FD是一个局部依赖,因此R不是2NF模式。
对R应该进行分解,由第二个FD的属性可构成一个模式,即
R1(队员编号,球队名,队长名);
另一个模式由R的属性集去掉第二个FD右边的属性组成,即
R2(队员编号,比赛场次,进球数)。
R1和R2都是2NF模式,因此ρ={R1,R2}
⑶R2(队员编号,比赛场次,进球数)中,FD是(队员编号,比赛场次)→进球数,关键码为(队员编号,比赛场次),可见R2已是3NF模式。
R1(队员编号,球队名,队长名)中,FD有两个:
队员编号→球队名
球队名→队长名
关键码为队员编号,可见存在传递依赖,因此R1不是3NF模式。
对R1应分解成两个模式:
R11(队员编号,球队名),R12(球队名,队长名)。
这两个模式都是3NF模式。
因此,R分解成3NF模式集时,ρ={R11,R12,R2}。
42.解:
(1)ER图如图5所示。
图5
(2)转换成的关系模型应具有4个关系模式:
车队(车队号,车队名)
车辆(牌照号,厂家,生产日期,车队号)
司机(司机编号,姓名,电话,车队号,聘期)
使用(司机编号,车辆号,使用日期,公里数)
(3)图5的ER图的对象联系图如图6所示。
三个实体类型转换成三个对象类型,一个M:
N联系类型转换成一个对象类型。
因此对象联系图中共有四个对象类型,如图6所示。
图中未标出基本数据类型属性,具体如下:
车队(车队号,车队名)
车辆(牌照号,厂家,生产日期)
司机(司机编号,姓名,电话,聘期)
使用(使用日期,公里数)
图6
(4)图5的ER图的UML类图如图7所示。
图中,三个实体类型转换成三个类,一个M:
N联系类型转换成一个关联类。
图7