一、选择题(每题1分,共20分,有且只有一个正确答案)1.关系数据库用()实现数据之间的联系A. 关系B. 指针C. 表D. 公共属性(或外码)2.根据关系模型的完整性规则,一个关系中的主码()A.不能有两个B. 不可作为其他关系的外部码B.可以取空值 D. 不可以是属性组合3.SQL中,谓词unique可以测试一个集合是否( )A.只存在一个元组B.所有元组都不相同C.所有列的值都不相同D.存在一个空元组4.下列聚合函数中不忽略NULL值的是:( )A. SUMB. AVGC. COUNT(*)D. MAX5.属于BCNF的关系模式________。
A.已消除了插入、删除异常 B.已消除了插入、删除异常和数据冗余C.仍然存在插入、删除异常 D.在函数依赖范畴内,已消除了插入和删除的异常6.在关系演算中,元组变量的变化范围是()A.某一命名的关系B.数据库中的所有关系C. 某一个域D.数据库中的所有域7.在视图上不能完成的操作是()A.更新视图B. 查询C. 在视图上定义新的表D. 在视图上定义新的视图8. 对由SELECT--FROM —WHERE —GROUP--ORDER 组成的SQL 语句,其在被DBMS 处理时,各子句的执行次序为( )。
9. 在关系代数运算中,最费时间和空间的是( ) A .选择和投影操作 B. 笛卡尔积和连接操作 C .除法操作 D. 差操作10. 学生选课数据库系统包括三个表:学生S (S#,SN ,SEX ,AGE ,DEPT ),课程C (C#,CN ),学生选课SC (S#,C#,GRADE ),若查询至少选修了“王丽”选修的全部课程的学生的学号,如下SQL 语句中空白处的谓词应该是( ) select distinct S# from SC SCX where __________(select * from SC SCY where SCY.SN=‘王丽’ and__________(select * from SC SCZwhere SCZ.S#=SCX.S# and SCZ.C#=SCY.C#) );A. EXISTS NOT EXISTSB. NOT EXIST NOT EXISTC. NOT EXIST EXISTD. NOT EXISTS NOT EXISTS11. 有关系 S (S #,SNAME ,SAGE ),C (C #,CNAME ),SC (S #,C #,GRADE )。
其中S #是学生号,SNAME 是学生姓名,SAGE 是学生 年龄, C #是课我承诺,我将严格遵守考试纪律。
程号,CNAME是课程名称。
要查询选修“ACCESS”课的年龄不小于20的全体学生姓名的SQL语句是 SELECT SNAME FROM S,C,SC WHERE子句。
这里的WHERE子句的内容是()。
A.S.S# = SC.S# and C.C# = SC.C# and SAGE>=20 and CNAME=‘ACCESS’ ;B.S.S# = SC.S# and C.C# = SC.C# and SAGE in>=20 and CNAME in ‘ACCESS’;C.SAGE in>=20 and CNAME in ‘ACCESS’;D.SAGE>=20 and CNAME=’ ACCESS’;12.假设有学生关系(学号,姓名,课程号,系号,系名,成绩),为了消除数据冗余,需要将学生关系表分解为()A.1个表 B. 2个表C.3个表 D. 4个表13. 对于关系表R(A, B, C),S(C, D, E)和T(E, F)。
R的主键为C;T的主键为E;S的主键为C和E;关系表R有1000条记录;纪录S有1500条记录;纪录T有750条记录;那么,进行 时,最佳的连接顺序应该是 ( )连接操作R S TA. ()R S TB. ()R S TC. ()R T SD. 全部都一样14.下列说法正确的是()A.不遵守两段锁协议的并发调度一定是不可串行化的B.两段锁协议可以保证数据的可重复读C.X锁可由UNLOCK操作解除D.遵守两段锁协议的并发事务一定不会发生死锁15.假设A是关系表R的所有者,B,C,D是其他3个数据库普通用户,权限P是对于关系表R的某特定操作权限,经过下列步骤后除了A以外,还有哪些用户对R具有权限P?A.全部用户B. C,DC.只有CD.只有D16.关系表stock中包含以下字段:股票代码、股票名称、单价、交易所,对于SQL 语句:create view view_stock as select 股票名称as 名称,单价 from stock;执行该语句后产生的视图含有的字段名是()A. 股票、名称、单价B. 名称、单价C. 名称、单价、交易所D. 股票名称、单价、交易所17.日志文件主要用来记录:( )A 程序执行的结果B 程序的运行过程C 数据操作D 对数据的所有更新操作18.在ER模型中,如果有6个不同实体,有9个不同的二元联系,其中3个1:N联系,3个1:1联系,3个M:N联系,根据ER模型转换成关系模型的规则,转换成关系的数目是:()A. 6B. 9C.12D. 1519.下列说法不正确的是:( )A 事务之间不可以嵌套B “脏”数据的读出是并发控制遭到破坏的表现C ROLLBACK表示事务之间可以嵌套D 排他型锁也称为X锁或写锁20.设有事务T1和T2,其并发操作如下图所示,下面说法正确的是:( )A 该操作不存在问题B 该操作丢失数据C 该操作不能重复读D 该操作读“脏”数据二、填空题(每空1分,共20分)1.数据约束条件是完整性规则的集合,在关系模型中,任何关系必须满足____________ 与________________ 两个条件。
2.事务具有四个特性:它们是___ _____ 、___ _____ 、___ _____ 和____ ____ , 简称为ACID特性。
3.如果正在运行MySQL,可以使用___ _____命令执行SQL脚本文件;MySQL中查看执行效率的命令是___ _____ 。
4.声明游标的语句是declare ___ ___;创建存储过程的语句是create ___ _____。
5.嵌入式SQL语句中使用的主语言程序变量称为主变量,一个主变量可以附带一个__________变量,当该变量为负值时,不管主变量为何值,均认为主变量值为__________。
6.在数据库恢复时,对已经COMMIT但更新未写入磁盘的事务执行__________处理。
7.在事务等待图中,如果在图中______________,那么系统就会出现死锁现象。
8.数据库角色是被命名的一组与________ 相关的权限,角色是________的集合。
9.触发器按照所触发动作的间隔尺寸可以分为________ 触发器和_________触发器。
10.对一个效率低下的查询计划,常用的处理方法主要包括和等。
三、判断题(每题1分,共10分)1.一个数据库可以建立多个聚簇,一个基本表上只能建立一个聚簇索引。
()2.多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行它们时的结果相同。
()3.数据库物理设计与具体DBMS的类型无关。
()4. SQL中,与谓词<=some等价的是<=min。
()5.主码(primary key)是唯一码(unique key)的特例,而唯一码不一定是主键码。
()6.存在大量的update操作的情况下屏蔽索引能够大大提高性能。
()7.SQL查询中采用WHERE语句和相应的HAVING在本质上没有区别。
( )8.可串行化的调度是正确的调度,冲突可串行化调度是可串行化调度的充分必要条件。
()9.遵守两段锁协议的事务不可能发生死锁。
()10.在登录日志文件时,应该先写数据库的更新,后登录日志文件。
()四、简答题(每题5分,共10分)1.在基本类型锁的基础上为什么要引入意向锁,列出包括意向锁在内的锁的相容矩阵.2.请从用户权限管理的角度试述如何加强数据库的安全性。
五、问答题(共40分)1. 对于公司员工关系数据库,给出SQL表达式来表示下列查询要求: (共15分,每个小题3分)1)找出所有为First Bank Corporation工作且薪金超过1万美元的雇员名字、居住街道和城市2)找出数据库中工资比Small Bank Corporation的每一个雇员都高的所有雇员。
3)假设一个公司可以在好几个城市有分部,找出位于Small Bank Corporation所有所在城市的所有公司。
4)找出平均工资高于First Bank Corporation 平均工资的所有公司。
5)为First Bank Corporation所有工资不超出100000美元的经理增加10%的工资,对工资超出100000美元的只增加3%。
2. 设某汽车运输公司数据库中有三个实体集。
一是“车队”实体集,属性有车队号、车队名等;二是“车辆”实体集,属性有牌照号、厂家、出厂日期等;三是“司机”实体集,属性有司机编号、姓名、电话等。
设车队与司机之间存在聘用联系,每个车队可以聘用若干司机,但每个司机只能应聘于一个车队,车队聘用司机有个聘期;车队与车辆之间存在拥有联系,每个车队可拥有若干车辆,但每辆车只能属于一个车队;司机与车辆之间存在使用联系,每个司机可使用多辆汽车,每辆汽车可被多个司机使用。
请根据上述要求,1)用ER图描述此汽车运输公司的数据模型,并在图中注明联系的类型;(5分)2)把ER图转换为关系表,指明每一张表的主码和外码。
(5分)3.现在有一个蛋白质相互作用数据库,其中有一个非冗余表PPI(我们假设蛋白相互作用是无向的,所以A/B相互作用完全等同于B/A相互作用),列出了某种生物目前已知的蛋白质相互作用,其结构为pro1_id # 蛋白1的编号pro1_name # 蛋白1的名称pro2_id # 蛋白2的编号pro2_name # 蛋白2的名称pro1_GOid # 蛋白1对应的GO编号pro2_GOid # 蛋白2对应的GO编号pro1_GOcat # 蛋白1的GO功能分类pro2_GOcat # 蛋白2的GO功能分类(1)在图论中,无向图中与每个节点相连的节点的数目称之为该节点的度(degree),我们可以利用上面的数据表构建蛋白相互作用网络。
请用SQL查询计算每种蛋白在这个蛋白相互作用网络中的度。
(5分)(2)请写出上面(1)中SQL查询语句对应的关系代数式。
(5分)(3)PPI表是否符合第三范式?如果不符合,该如何修改使其符合第三范式?(要求写出合格的SQL语句并辅以文字说明) (5分)。