四、T-SQL综合题(共35分)
1、有学生-课程关系数据库,各关系表描述如下: Student 列名 说明 数据类型 约束 Sno Sname Ssex Sage Sdept Course
SC 列名 Sno Cno 列名 Cno Cname 说明 数据类型 约束 学号 姓名 性别 年龄 院系 字符(8) 主键 字符(12) 非空,唯一 字符(2) 取‘男’或‘女’, 默认值 ‘男’ 整型 取值15~36,默认值22 字符(20) 默认 ‘计算机系’ 课程号 字符(8) 主键 课程名 字符(8) 非空 Teacher 教师名 字符(10) 唯一 说明 学号 课程号 数据类型 约束 字符(8) 主键,参照Student表,级联更新和删除 字符(8) 主键,参照Course表,级联更新,拒绝删除 短整型 取值0~100 Grade 成绩
(1)用关系代数表达式表示下列问题
1)检索选修了课程号为C5的学生学号、年龄和院系; (2分)
(难度系数B)正确答案:
∏学号, 年龄,院系(Student (?课程号=‘C5’ (SC) ) ) 或 ∏学号, 年龄,院系( ?课程号=‘C5’( SC Student))
2)检索选修了教师‘李华’所授课程的学生姓名和学号 ; (3分)
(难度系数B)正确答案:
∏姓名, 学号(Student (SC (?授课教师=‘李华’ (Course) ) ) ) 或 ∏姓名, 学号( ?授课教师=‘李华’( Student SC Course))
(2)用SQL语句实现下列问题
1)写出创建Student表的T-SQL语句 ; (5分)
(难度系数A)正确答案:
CREATE TABLE Student
( Sno CHAR(8) PRIMARY KEY, Sname CHAR(12) NOT NULL UNIQUE,
Ssex CHAR(2) CHECK(Ssex in('男','女')) DEFAULT '男',
Sage INT CHECK(Sage>=15 AND Sage<=36) DEFAULT 22, Sdept CHAR(20) DEFAULT ‘计算机系’);
2)检索课程名以\开头,且倒数第3个字符为 k的课程的详细情况;(4分)
(难度系数A)正确答案:
SELECT * FROM Course
WHERE Cname LIKE 'DB\\_%k_ _ _' ESCAPE ' \\ ';
3)向学生选修课程表中插入元组“学生S10选修课程号C4”。 (2分)
(难度系数C)正确答案:
INSERT INTO SC (Sno, Cno) VALUES( ‘S10’,’ C4’ )
4) 删除选课成绩在55分以下的学生记录; (4分)
(难度系数A)正确答案:
DELETE
FROM Student WHERE SNO IN
(SELECT SNO FROM SC
WHERE GRADE<55);
或
DELETE
FROM Student
WHERE Student.SNO = SC.SNO AND SC.GRADE<55 ;
5) 把“高等数学”课程成绩提高8%; (3分)
(难度系数B)正确答案:
UPDATE SC
SET Grade=Grade*1.08 WHERE Cno IN
(SELECT Cno FROM Course
WHERE Cname=‘高等数学’);
6)求出女同学的每一年龄组(超过3人)有多少人?要求查询结果按人数降序排列,人数相同的按年龄升序排列; (5分)
(难度系数A)正确答案:
SELECT Sage, COUNT(Sno) FROM Student WHERE Ssex=‘女’
GROUP BY Sage HAVING COUNT(Sno)>3
ORDER BY 2 DESC, Sage ASC //其中ASC也可以省略不写
7)定义视图S_age,其中包括学生学号以及每个学生选修课程的门数(要求成绩非空)和平均成绩; (5分)
(难度系数A)正确答案:
CREATE VIEW S_age (Sno, Cno_num, Avg_grade) AS SELECT Sno,COUNT(Cno),AVG(grade) FROM SC
WHERE grade IS NOT NULL
GROUP BY Sno
8)在Course表中增加一个类型为char(10)的职称(pro)列; (2分) (难度系数C)正确答案: alter table Course
add pro char(10)
五、综合应用题(共10分)
假设某商业集团数据库有一关系模式R如下:(10分) R(商店编号,商品编号,数量,部门编号,负责人) 现规定:(1)每个商店的每种商品只在一个部门销售。 (2)每个商店的每个部门只有一个负责人。 (3)每个商店的每种商品只有一个库存数量。 回答下列问题:
①写出R中的存在的基本函数依赖(3分)
②找出关系模式R的候选键(3分)
③关系模式R最高能不能达到第3范式,若不能如何分解? (4分)
①(难度系数B)正确答案:
(商店编号,商品编号)?部门编号 (1分)
(商店编号,部门编)?号负责人 (1分) (商店编号,商品编号)?数量 (1分) ②(难度系数A)正确答案: L类属性:商店编号,商品编号; LR属性类:部门编号;
R属性类:负责人,数量。 (1分)
+
因为:(商店编号,商品编号)=U (1分) 所以:关系模式R的候选键为: (商店编号,商品编号) (1分)
③判断R属于第几范式:
(难度系数B)正确答案:
非主属性为:部门编号,负责人,数量。
它们对候选键都是完全函数依赖关系,所以R属于2NF。 (2分) 但是:
(商店编号,商品编号)→(部门编号,商店编号) (商店编号,部门编号)→(负责人)
所以非主属性负责人对候选键传递依赖,那么R不满足第三范式,因此R最高满足第二范式。(2分)
《数据库原理及应用》试题2
一、选择题(每题1分,共20分)
1、在数据库中存储的是_________。
A、数据 B、数据模型
C、信息 D、数据以及数据之间的联系
(难度系数C)正确答案:D
2、DB、DBMS和DBS三者之间的关系是_________。
A、DBS与DB和DBMS无关 B、DB包括DBMS和DBS C、DBS包括DB和DBMS D、DBMS包括DBS和DB
(难度系数B)正确答案:C
3、在数据库中,产生数据不一致的根本原因是____。 A.数据存储量太大; B.没有严格保护数据 C.未对数据进行完整性控制 D.数据冗余 (难度系数B)正确答案:D
4、自然连接是构成新关系的有效方法。一般情况下,当对关系R和S使用 自然连接时,要求R和S含有一个或多个共有的__________。
A、属性 B、行 C、记录 D、元组 (难度系数A)正确答案:A
5、以下是信息世界的模型,且实际上是现实世界到机器世界的一个中间层次的是_________。
A、数据模型 B、E-R图 C、关系模型 D、概念模型 (难度系数C)正确答案:D
6、构成E—R模型的三个基本要素是_________。
A、实体、属性、联系; B、实体、属性值、关系; C、实体、实体集、联系; D、实体、实体集、属性; (难度系数B)正确答案:A
7、SQL语言中的“视图(VIEW)”对应于数据库系统三级模式结构中的_________。
A、内模式 B、外模式 C、 模式 D、都不对应 (难度系数B)正确答案:B
8、SQL的GRANT和REVOKE语句主要用来维护数据库的_________。 A、可靠性 B、完整性 C、安全性 D、一致性