《数据库系统原理》期中试题答案
一.选择题(每小题2分,共40分)
1.下列模型中数据抽象级别最高的是()
A.概念模型B.逻辑模型
C.外部模型D.物理模型
2.设有关系R(A,B,C)和S(B,C,D),下列各关系代数表达式不成立
...的是()
(R D(S)B.S
A.П
C.R∪S D.ПB(R)∩ПB(S)
3.根据关系数据基于的数据模型——关系模型的特征判断下列正确的一项:(___)
A.只存在一对多的实体关系,以图形方式来表示。
B.以二维表格结构来保存数据,在关系表中不允许有重复行存在。
C.能体现一对多、多对多的关系,但不能体现一对一的关系。
D.关系模型数据库是数据库发展的最初阶段。
4.下列说法错误的是()
A.一个基本表可以跨一个或多个存储文件
B.一个存储文件可以跨一个或多个基本表
C.每个存储文件与外部存储器上一个物理文件对应
D.每个基本表与外部存储器上一个物理文件对应
5.在SQL语言中,数值函数COUNT(列名)用于()
A.计算元组个数B.计算属性的个数
C.对一列中的非空值计算个数D.对一列中的非空值和空值计算个数
6.将弱实体转换成关系时,弱实体的主码()
A.由自身的候选关键字组成B.由父表的主码组成
C.由父表的主码和自身的候选关键字组成D.不确定
7.从一个数据库文件中取出满足某个条件的所有记录的操作是()
A.选择B.连接
C.投影D.复制
8.下面关于自然连接与等值连接的各个叙述中,不正确
...的是()
A.自然连接是一种特殊的等值连接
B.自然连接要求两个关系中具有相同的属性组,而等值连接不必
C.两种连接都可以只用笛卡尔积和选择运算导出
D.自然连接要在结果中去掉重复的属性,而等值连接则不必
9.SQL语言是关系数据库的标准语言,它是()
A.过程化的 B.非过程化的
C.格式化的 D.导航式的
10.设有关系表R)
R
A.a B.(a,b)
C.(b,c) D.(a,c)
11.在下面的数据库表中,若学生表的主码是学号,系别表的主码是系别号,用SQL语言不能
..执行的下面操作是:()
学生表系别表
A.从学生表中删除行(′005′,′王明′,20,′01′)
B.将行(′005′,′王山′,19,′04′)插入到学生表中
C.将学号为′001′的年龄改为18
D.将学号为′010′的系别号改为′04′
12.已知关系R和S如下表所示:
R S
试对R和S进行交运算,其结果的元组数应是()
A.0 B.1
C.4 D.6
13.现要查找缺少学习成绩(G)的学生学号(Sno)和课程号(Cno),相应的SQL语句SELECT Sno,Cno
FROM SC
WHERE
中WHERE后正确的条件表达式是()
A.G=0 B.G<=0
C.G=NULL D.G IS NULL
14.设有教师表Rl和学生表R2,如下表所示,则R1 R2的行数和列数分别为()Rl R2
教师编号教师姓名学号姓名教师编号125 吴亚利99321 梁山231
167 张小明99322 李双双125
231 刘朋99323 王萍231
99324 张杰125
A.行数为12,列数为5 B.行数为12,列数为4
C.行数为4,列数为4D.行数为4,列数为5
15.SQL语言的一次查询的结果是一个()
A.数据项B.记录
C.元组D.表
16.若将如下E-R模型转换成关系模型,正确的是()
A.转换成一个职工关系,将亲属的所有属性放入职工关系
B.转换成一个亲属关系,将职工的所有属性放入亲属关系
C.转换成两个关系,职工关系的主码包括亲属关系的主码
D.转换成两个关系,亲属关系的主码包括职工关系的主码.
17.在Transact-SQL语法中,SELECT语句的完整语法较复杂,但至少包括的部分(1),使用关键字(2)可以把重复行屏蔽,将多个查询结果返回一个结果集合的运算符是(3),如果在SELECT语句中使用集合函数时,一定在后面使用(4)。
⑴ A.SELECT,INTO B.SELECT,FROM
C.SELECT,GROUP D.仅SELECT
⑵ A.DISTINCT B.UNION
C .ALL
D .TOP ⑶ A .JOIN B .UNION C .INTO D .LIK
E ⑷ A .GROUP BY B .COMPUTE BY C .HA VING D .COMPUTE(错题) 二.填空(共60分)
1. 在名称为教学库的数据库中包含有学生、课程和选课三个表,它们的定义分别为: 学生(学生号 char(7),姓名 char(6),性别 char(2),出生日期 datetime, 专业 char(10),年级 int)
课程(课程号 char(4),课程名 char(10),课程学分 int 选课(学生号 char(7),课程号 char(4),成绩 int) SQL 语句为: select * from 学生
where 学生号 in
(select 学生号 from 选课
group by 学生号 having count(*)<2 ) or not exists (select * from 选课
where 学生.学生号=选课.学生号 )
上述SQL 查询语句的功能为:查询选修课程数目少于2门的学生信息,与其对应的关系代数表 达式:A B
A. A.=
B.σρρ-∞∏∞
课程号<>B.课程号学生号学生号学生号
学生学生((((选课)(选课))))。
(10分) 2.设有三个关系分别为:
A(Anum, Aname, Wqty, City)
B(Bnum, Bname, Price) AB(Anum, Bnum, Qty)
其中Anum 为商场编号,Aname 为商场名称,Wqty 为商场人数,City 为商场所在城市,Bnum 为商品号,Bname 为商品名称,Price 为价格,Qty 为销售商品数量。
基于以上关系回答下面(1)--(4)题。
(每小题6分,共24分)
(1)用SQL语句创建基于A、B、AB三个表的视图,其中包含在上海的商场名称以及销售的商品名称和价格。
Create view ShangHai_store&product As
Select Bname,price
From A,B,C
Where city=’shanghai’ and A.Anum=AB.Anum and B.Bnum=AB.Bnum
(2)查询所有商品的名称及销售总额的SQL语句
Select Bname ,sum(price*Qty)
From B,AB
Where B.Bnum=Ab.Bnum
Group by bnum,bname
(3)分析下面SQL语句:
SELECT Bname
FROM B
WHERE Bnum IN
(SELECT Bnum
FROM AB
WHERE Anum=′001′);
其相应的关系代数表达式为:
))
(
(
'001'
Anum
AB
B
Bname=
∞
∏σ。
(4)查询总共有多少家商场销售“西门子洗衣机”的SQL语句:
Select count(distinct Anum)
From A,B,C
Where A.Anum=AB.Anum and B.Bnum=AB.Bnum and Bname=’西门子洗衣机’
3.已知关系R和关系S,关系R具有列A1,A2,……,An,B1,B2,……Bn,关系S具有A1,A2,……,An,C1,C2,……Cn,则下列SQL语句相应的关系代数描述为:
A1A () R S ∞
∏, 2...An。
(本小题6分) SELECT A1……An FROM R
WHERE EXISTS
(SELECT * FROM S
WHERE R.A1=S.A1 AND R.A2=S.A2 AND …… R.An=S.An )
4.设有关系模式SCT (S#,C#,Tn ),其中,S#表示学生学号,C#表示课程编号,而Tn 表示教师姓名。
SCT 中有以下语义: 每个教师仅上一门课程。
学生与课程的关系确定之后,教师即唯一确定。
根据上述完成下面(1)--(4)小题(20分)
(1)则关系模式的基本函数依赖为:S#C Tn Tn C# →→,#;,关键码(候选键)为:S#,C#或者S#,Tn 。
(2)关系模式SCT 最高可以达到的范式级别为:3NF ,说明理由:Tn 不是超键-。
(3)如果该关系不是3NF ,将其分解成3NF :_____________________________该分解___无损分解(是或不是),___保持函数依赖(是或不是) (如果是3NF ,则该题目不必作答) (4)如果该关系不是BCNF ,将其分解成BCNF :(S#,Tn ) (C#,Tn )该分解是无损分解(是或不是),不是保持函数依赖(是或不是) (如果是BCNF ,则该题目不必作答)。