1、C)若XYZ,则XZ,YZ D)若XYZ,则XY,XZ 35. 设U是所有属性的集合,X、Y、Z都是U的子集,且Z=U-X-Y。下面关于多值依赖的叙述中,_是不正确的。 A)若XY,则XZ B)若XY,则XY C)若XY,且Y Y,则XY D)若Z=,则XY36. 在SQL中,表示选择操作的语句为_。 A)SELECT * FROM R WHERE C1 AND C2 OR C3 B)SELECT R.*,S.* FROM R,S WHERE R.A=S.B C)INSERT INTO R VALUE(a,b,c,d) D)UPDATE R SET A=a WHEREC1 AND C2 OR
2、C3 37. 设关系R和S的属性个数分别为r1和s2,则(RS)操作结果的属性个数为_。 A)r1+s2 B)r1-s2 C)r1s2 D)max(r1,s2)38. 查询处理最终可转化成基本的_代数操作。 A)关系 B)算法 C)空值 D)集合39.投影操作中不包含主码,需要去除重复_。 A)关系 B)列 C)属性 D)元组40.查询树是一种表示关系代数表达式的_结构。 A)树形 B)层次 C)星形 D)上述都不对41.在对关系数据库的基本操作中,_是表中选取满足某种条件的元组的操作,相当于在横向进行选择。 A)选择 B)扫描 C)检索 D)投影42.在SQL的SELECT语句中,对应关系代
3、数中“投影”运算的语句是 _。 A)SELECT B)FROM C)WHERE D)SET43. 当数据库被更新时,DBMS将自动读取数据字典中的_,进行完整性约束验证,保证数据库的完整性。A)完整性约束 B)安全性约束 C)隔离性约束 D)恢复性约束44.数据库管理系统允许用户把一个或多个数据库操作组成_,它是一组按顺序执行的操作单位。 A)命令 B)事务 C)文件 D)程序45. 对于同一个查询,使用不同的查询策略会得到_。A)不同的查询结果 B)相同的时间开销 C)不同的时间开销 D)近似的查询结果 二、判断题1.“年龄限制在1828岁之间”这种约束属于DBMS的安全性功能。A)对 B)
4、错2. 事务的原子性是指事务中包括的所有操作要么都做,要么都不做。 A)对 B)错3. 用户对SQL数据库的访问权限中,如果只允许删除基本表中的元组,应授予DROP权限。A)对 B)错4. SQL中的视图提高了数据库系统的并发控制。A)对 B)错5. 在SQL语言中,授予用户权限使用GRANT语句。A)对 B)错6. 当关系模式R(A,B)已属于3NF,它仍然存在一定的插入和删除异常。A)对 B)错7. 如果事务T对数据D已加X锁,则其他事务对数据D不能加任何锁。A)对 B)错8. 数据库副本的用途是故障后的恢复。A)对 B)错9. 若数据库中只包含成功事务提交的结果,则此数据库就称为处于一致
5、状态。A)对 B)错10. 数据库中的封锁机制是并发控制的主要方法。A)对 B)错11. 关系模式中各级模式之间的关系为3NF 2NF 1NF。A)对 B)错12. 当一个查询中具有选择和连接时,查询优化的方法是先执行连接后执行选择。 A)对 B)错13. 日志文件是用于记录对数据的所有更新操作。A)对 B)错14. SQL表达式中的通配符“%”表示任意一个单个字符,“_”(下划线)表示任意多个包括零个字符。A)对 B)错15.在数据库系统中,系统故障造成硬盘数据丢失。A)对 B)错三、简答题1简述数据库设计过程包括几个主要阶段。答:数据库设计过程包括四个主要阶段:需求分析、概念设计、逻辑设计
6、和物理设计。2数据库并发操作主要解决哪三个问题?如何保证并行操作的可串行性。答:数据库并发操作主要解决一下三个问题:1) 丢失更新问题2) 数据不一致分析问题3) 读“脏”数据问题为了保证并行操作的可串行性,在对任何数据集合进行读写操作之前,事务首先应获得对此数据集合的封锁,在释放一个封锁之后,事务不再获得任何其他封锁。3在关系数据库中能完全消除数据冗余吗?答:在关系数据库中不能完全消除数据冗余。要实现关系数据库中表与表之间的联系,必须通过公共属性来完成,这些公共属性可能是一个表的主键,也可能是另一个表的外键,有相应的参照完整性规则来保证表之间的联系。所以关系数据库中存在数据冗余,但能控制数据
7、的冗余度。4基本的封锁类型有几种?试述它们的含义。答:基本的封锁类型有排它锁(“X”锁)和共享锁(“S”锁)两种。若事务T对数据A加了X锁,则只允许事务T读取和修改数据A,其他事务都不能再对A加任何类型的锁,直到T释放A上的锁。若事务T对数据A加了S锁,则其他事务只有再对A加S锁,而不能加T锁,直到T释放A上的锁。5设教学数据库有三个关系:学生 S(S#,SNAME,AGE,SEX)学习 SC(S#,C#,GRADE)课程 C(C#,CNAME,TEACHER)写出下列代数表达式和元组表达式的汉语含义。(1)t|(u)(C(u)C3=LIUt1=u1t2=u2)答:(1)检索LIU老师所授课程
8、的课程号、课程名。(2)S#(TEACHER=LIU(SCC)答: (2)检索选修课程包含LIU老师所授课程的学生学号。四、程序设计题1有两个关系模式R(A,B,C)和S(D,E,F), 域关系演算表达式是:T=xy|(u)(v)(w)(R(xuv)S(vwy) ,写出使用SQL的操作语句。答:SELECT R.A,S.F FROM R,S WHERE R.C=S.D2数据模型如下,用SQL完成查询:销售全部商品的商店名。商店S(SNO,SNAME,CITY)商品P(PNO,PNAME,COLOR)销售SP(SNO,PNO,DATE,QTY)答SELECT SNAME FORM S WHERE
9、 NOT EXISTS( SELECT * FROM P WHERE NOT EXISTS ( SELECT * FORM P WHERE PNO=P.PNO AND SNO =S.SNO);3.设某工厂数据库中有两个基本表(如下所示),试建立一个有关女车间主任的职工号和姓名的视图,其结构如下:VIEW6(ENO, ENAME)。试写出创建视图VIEW6的SQL语句。车间基本表:DEPT(DNO,DNAME,MGR_NO),其属性分别表示车间编号、车间名和车间主任的职工号。职工基本表:EMP(ENO,ENAME,AGE,SEX,SALARY,DNO),其属性分别表示职工号、姓名、年龄、性别、工
10、资和所在车间的编号。答:CREATE VIEW VIEW6AS SELECT ENO,ENAMEFROM DEPT,EMPWHERE MRG_ENO=ENO AND SEX=女;4基于3题的基本表,把工资低于800的职工的工资提高10%。答:UPDATE EMP SET SALARY=SALARY*1.1 WHERE SALAEY8005设销售数据模型如下:厂家 S (SNO,SNAME,CITY )产品 P (PNO,PNAME,COLOR,WEIGHT)销售 SPJ (SNO,PNO,QTY)用SQL完成以下操作: 试建立一个有关产品“电钻”的产品号和厂家号的视图,其结构如下:View2(
11、ENO, SNO)答:CREATE VIEW View2(ENO, SNO) AS SELECT P.PNO,SNO FROM SPJ,P WHERE SPJ.PNO=P.PNO AND PNAME=电钻;6在以上销售数据库表中,用SQL语句完成以下操作:PN0为00227的产品数增加100;并检索出其对应的产品名。答:UPDATE SPJ SET QTY=QTY+100 WHERE PNO=00227;SELECT PNAME FROM PWHERE PNO=00227;六、应用题(本大题共10分)1东方货运公司数据库的样本数据如下。根据数据库的表结构和内容:1)指出每个表的主码和外码。如果
12、没有外码,则写“无”。2)卡车表存在实体完整性和参照完整性吗?请详细说明。3)具体说明卡车表与运货站表之间存在着什么关系?4)卡车表中包含多少个实体?表名称:卡车 车号货运站编号类型总行程购入日期1001501159002.711/06/901002502254523.811/08/901003503232116.609/29/91100450423256.901/14/92表名称:货运站货运编号地址电话经理501北京市东城区花市大街111号01067301234何东海502北京市海淀花园路101号01064248892吴明君表名称:型号类型汽车型号1DJS1302DLS1211答:1)表名称
13、主码外码卡车车号货运站编号,类型货运站货运站编号无型号类型无2) 实体完整性:在主码车号的这列中不存在空值; 参照完整性:外码“货运站编号”这列中的值都是货运站表中“货运站编号”这列中的值,外码“类型”这列中的 值都是型号表中“型号”这列中的值。3)货运站表和卡车表之间存在着一对多的关系,即每一个货运站可以有多辆车。如,样本数据中货运站501有两辆车:车号为1001和1003;货运站502有两辆车:车号为1002和1004。4)卡车表中包括4个实体,即表中每个元组(行)对应一个实体,每个实体就是一辆车。2. 学生运动会模型: (1)有若干班级,每个班级包括: 班级号,班级名,专业,人数 (2)
14、每个班级有若干运动员,运动员只能属于一个班,包括:运动员号,姓名,性别,年龄 (3)有若干比赛项目,包括:项目号,名称,比赛地点 (4)每名运动员可参加多项比赛,每个项目可有多人参加 (5)要求能够公布每个比赛项目的运动员名次与成绩 (6)要求能够公布各个班级团体总分的名次和成绩解题要求:画出每个实体及其属性关系、实体间实体联系的E-R图。根据试题中的处理要求:完成数据库逻辑模型,包括各个表的名称和属性;并指出每个表的主键和外键。答:(1)(2)班级(班级号,班级名,专业,人数) 主键:班级号运动员(运动员号,姓名,性别,年龄,班级号) 主键:运动员号 外键:班级号项目(项目号,项目名,比赛地
15、点) 主键:项目号比赛(运动员号,项目号,成绩,名次,得分) 主键:运动员号,项目号 外键: 运动员号;项目号数据库原理及应用期末复习题答案一、单项选择题1-10 C B D B D A B B C A11-15 D B B B B16-25 A C B C D C D C B B26-35 B D B A B B C A C C36-45 A A A D A A A A B C二、判断题1-15 B A B B A A A A A A A B A B B三、简答题1答:数据库设计过程包括四个主要阶段:需求分析、概念设计、逻辑设计和物理设计。2答:数据库并发操作主要解决以下三个问题。1)丢失更
16、新问题2)数据不一致分析问题3)读“脏”数据问题为了保证并行操作的可串行性,在对任何数据集合进行读写操作之前,事务首先应获得对此数据集合的封锁,在释放一个封锁之后,事务不再获得任何其他封锁。3答:在关系数据库中不能完全消除数据冗余。要实现关系数据库中表与表之间的联系,必须通过公共属性来完成,这些公共属性可能是一个表的主键,也可能是另一个表的外键,有相应的参照完整性规则来保证表之间的联系。所以关系数据库中存在数据冗余,但能控制数据的冗余度。4答:基本的封锁类型有排它锁(“X”锁)和共享锁(“S”锁)两种。若事务T对数据A加了X锁,则只允许事务T读取和修改数据A,其他事务都不能再对A加任何类型的锁
17、,直到T释放A上的锁。若事务T对数据A加了S锁,则其他事务只有再对A加S锁,而不能加T锁,直到T释放A上的锁。5. 答:(1)检索LIU老师所授课程的课程号、课程名。(2)检索选修课程包含LIU老师所授课程的学生学号。四、程序设计题1答:SELECT R.A,S.F FROM R,S WHERE R.C=S.D2答SELECT SNAME FORM S WHERE NOT EXISTS( SELECT * FROM P WHERE NOT EXISTS ( SELECT * FORM P WHERE PNO=P.PNO AND SNO =S.SNO);3答:CREATE VIEW VIEW6A
18、S SELECT ENO,ENAMEFROM DEPT,EMPWHERE MRG_ENO=ENO AND SEX=女;4答:UPDATE EMP SET SALARY=SALARY*1.1 WHERE SALAEY8005答:CREATE VIEW View2(ENO, SNO) AS SELECT P.PNO,SNO FROM SPJ,P WHERE SPJ.PNO=P.PNO AND PNAME=电钻;6答:UPDATE SPJ SET QTY=QTY+100 WHERE PNO=00227;SELECT PNAME FROM PWHERE PNO=00227;五、应用题1答:1)表名称主
19、码外码卡车车号货运站编号,类型货运站货运站编号无型号类型无2) 实体完整性:在主码车号的这列中不存在空值; 参照完整性:外码“货运站编号”这列中的值都是货运站表中“货运站编号”这列中的值,外码“类型”这列中的 值都是型号表中“型号”这列中的值。3)货运站表和卡车表之间存在着一对多的关系,即每一个货运站可以有多辆车。如,样本数据中货运站501有两辆车:车号为1001和1003;货运站502有两辆车:车号为1002和1004。4)卡车表中包括4个实体,即表中每个元组(行)对应一个实体,每个实体就是一辆车。2答:(1)(2)班级(班级号,班级名,专业,人数) 主键:班级号运动员(运动员号,姓名,性别,年龄,班级号) 主键:运动员号 外键:班级号项目(项目号,项目名,比赛地点) 主键:项目号比赛(运动员号,项目号,成绩,名次,得分) 主键:运动员号,项目号 外键: 运动员号;项目号.