杭州电子科技大学学生考试卷(A)卷参考答案
说明:所有题目均直接答在试卷上。
一、单项选择题(每小题2分,共20分)
1.SQL中的视图提高了数据库系统的 ( D )
A.完整性
B.并发控制
C.隔离性
D.安全性
2.记载数据库系统运行过程中所有更新操作的文件称为 ( C )。
A.更新文件
B. 后备文件
C.日志文件
D.数据文件3.如果事务T获得了数据项Q上的排它锁,则T对Q ( C )
A.只能读不能写
B.只能写不能读
C.既可读又可写
D.不能读不能写
4.在SQL中,SELECT语句的"SELECT DISTINCT"表示查询结果中 ( C )
A.属性名都不相同
B.去掉了重复的列
C.行都不相同
D.属性值都不相同
5.已知关系R如图1所示,可以作为R主码的属性组是( B )
R
图1
A. ABC
B. ABD
C. ACD
D. BCD
6.关系数据库中的哪一种基本数据操作不能同时操作两个关系( B )
A.交
B.选择
C.连接
D.并
7.事务的ACID性质,是指事务具有原子性、一致性和 ( C )
A.隔离性、透明性
B.独立性、透明性
C.隔离性、持久性
D.共享性、持久性
8.个别用户使用的数据视图的描述称为 ( A )
A.外模式
B.概念模式
C.内模式
D.存储模式
9.数据模型的三个组成部分是数据结构、数据操作和 ( c )。
A.数据安全性控制
B.数据一致性规则
C.数据完整性约束
D.数据处理逻辑
10.为实现嵌入式SQL语句与主语言之间的通信,特引进了以下概念(B )
A、视图、游标、SQL通信区;
B、SQL通信区、游标、主变量;
C、码、SQL通信区、主变量;
D、模式、视图、SQL通信区。
二、填空题(每空1分,共14分)
1.数据库的一大特点是数据共享,即用户可以并发访问数据库对象,但并发操作可能会引起丢失更新、不可重复读、读脏数据这几类数据不一致性的问题,于是就要进行并发控制。
并发控制的主要技术是封锁,封锁对象的规模称为封锁粒度。
2.在数据库设计中,将E-R模型转换成关系数据模型属于逻辑设计阶段,对数据库模式进行规范化处理,属于逻辑设计阶段,规划存储结构和存取方法属于物理设计阶段。
3.数据管理技术的发展经历了_人工管理_、__文件系统__和__数据库系统___段。
4.在数据库安全性控制技术中第一步就是用户标识与鉴定,在SQL Server这一步技术包含有两部分内容,一是用户登陆NT服务器的的认证;另一步是已经登陆到NT 的用户进一步成为SQL服务器帐户的认证,根据需要,这样的认证有 WINDOWS身份验证模式、混合模式两种模式。
5.SQL语言中,定义事务的语句主要有BEGIN TRANSACTION 、COMMIT 和_ROLLBACK_。
三、判断改错题(判断正误,错误的请改正。
每小题2分,共10分)
1.可以在基本表上定义视图,但不能在视图上定义视图。
“但不能”改为“也可以”。
(×)2.DBMS包括DB和DBS 。
改为:DBS包括DB和DBMS (×)
3.对关系R进行投影运算后,得到关系S,则关系R的元组数大于或等于关系S的元组数。
(√)
4.如果一个关系模式R属于BCNF,则R一定属于3NF。
(√)
5.在SQL的查询语句中,对应关系代数中“选择”运算的语句是SELECT。
(×)“SELECT”改为“WHERE”或“选择”改为“投影“。
四、问答题(共20分)
1.数据库的完整性与安全性有什么不同(5分)
数据的完整性和安全性是两个不同的概念。
前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出(Garbage In Garbage Out)所造成的无效操作和错误结果。
后者是保护数据库防止恶意的破坏和非法的存取。
也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。
2.什么是数据冗余在关系数据库中能完全消除数据冗余吗(5分)
数据库中数据重复存储的现象称为数据冗余。
在关系数据库中不能完全消除数据冗余。
因为要实现关系数据库中表与表之间的联系,必须通过公共属性来完成,这些公共属性可能是一个表的主键,也可能是另一个表的外键,有相应的参照完整性规则来保证表之间的联系。
所以关系数据库中存在数据冗余,但能控制数据的冗余度。
3.设有关系模式R(A,B,C),F是R上成立的函数依赖集,F={AC→B ,A B→C ,B→C},试问R在
函数依赖范围内最高能达到第几范式,并简要说明理由。
(6分)
R∈1NF。
候选码为AC和AB。
存在非主属性C对码AB的部分函数依赖,所以R∈1NF,
4.现有部门表(DEPARTMENT)及员工表(EMPLOYEE),假设各表中已有数据如下,请指出下面给出的各行数据中哪一行不能插入EMPLOYEE 表 ,为什么 (4分)
DEPARTMENT: (主码为DEPT_ID)
EMPLOYEE: (主码为EMP_ID,外部码为DEPT_ID)
A. (9213, jones, 1045, clerk, 30 )
B. (8997, grace, 1234 ,secretary, 40)
C. (5932, allen, 4567, clerk, null )
A行数据不能插入EMPLOYEE 表。
因为部门号30不在部门表的DEPT_ID取值范围内,违反了关系参照完整性约束的规定。
五、数据库设计题(12)
某大学教学数据库中有三个实体集。
一是“课程”实体集,属性有课程号、课程名称;二是“教师”实体集,属性有教师工号、姓名、职称;三是“学生”实体集,属性有学号、姓名、性别、年龄。
设教师与课程之间有“主讲”联系,每位教师可主讲若干门课程,但每门课程只有一位主讲教师,教师主讲课程将选用某本教材;教师与学生之间有“指导”联系,每位教师可指导若干学生,但每个学生只有一位指导教师;学生与课程之间有“选课”联系,每个学生可选修若干课程,每门课程可由若干学生选修,学生选修课程有个成绩。
(1)试画出E-R图;
(2)将E-R图转换成关系模型,并说明主码和外部码。
(1)E-R图如下
(2)转换成的关系模型具有4个关系模式:
教师(工号,姓名,职称)
学生(学号,姓名,性别,年龄,教师工号)
课程(课程号,课程名称,教师工号)
选课(学号,课程号,成绩)
六、关系代数及SQL语句题(共24分)
已知关系:
Student(Sno,Sname,Ssex,Sage,Clno, Sdept)
学号姓名性别年龄班级号系
Course(Cno,Cname,Cpno,Ccredit)
课程号课程名先修课号学分
SC (Cno,Sno,Grade)
课程号学号成绩
(一)用关系代数表示下列操作:(9分)
1.查询年龄介于20与23岁之间的学生姓名及年龄;
πSNAME,SAGE(σSAGE≥20∧SAGE≤23(Student))
2.查询没有选修1号课程的学生姓名;
πSNAME(Student)-πSNAME(σCNO=’1’(SC) Student)
此题可有多种答案
3.查询选修了“数据库概论”课程且成绩在90分以上的学生姓名。
πSname(σCname=’数据库概论’(Course) σGrade≥90(SC) Student)
此题可有多种答案
(二)用SQL语句完成下列操作:(15分)
1. 查询数学系姓王的学生姓名及年龄,并按学生年龄降序排序;select sname from student
where sdept=‘数学’and sname like ‘王%’
order by sage;
2. 查询每个班级每门课程的选课人数和平均分;
select clno,cno,count(*) 选课人数,avg(grade) 平均分
from student,sc
where =
group by clno,cno;
3.查询李爽同学没选修的课程名;
SELECT cname
FROM course
WHERE NOT EXISTS
(SELECT *
FROM sc
WHERE cno=
AND sno=
(SELECT sno
FROM student
WHERE sname='李爽'));
此题可有多种答案
4. 把对表Course的查询权限及对Ccredit字段的更新权限授予用户张三;
GRANT SELECT ,UPDATE(Ccredit) ON course TO 张三;
5. 将01311班全体学生成绩置空;
UPDATE sc
SET grade=NULL
WHERE sno IN
(SELECT sno
FROM student
WHERE clno='01311');。