《 数据库原理 》试卷(2)卷 标准答案
专业: 计算机科学技术 层次:本科 年级: 命题教师:杨爱民
一、单项选择题(每小题1分,共10分)
1.下面哪种数据模型只有一个根结点( B )
A)概念 B)层次 C)关系 D)网状
2.哪种模式不是数据库的模式( C )
A)模式 B)外模式 C)映像模式 D)内模式
3.视图定义是( D )
A)一个基表中导出的基表
B)一个基表中导出的虚表
C)一个或几个基表或视图中导出的基表
D)一个或几个基表或视图中导出的虚表
4.下面的关系模式是属于( A )S-D-L(sno学号,dept系,loc住所)
A)2NF B) 3NF C) 4NF D)BCNF
5.对数据库存储结构和存取方法的分析在( D )阶段
A)需求分析 B)概念结构 C)逻辑结构 D)物理设计
6.为了描述现实世界中的事物,在信息世界中所建立的模型称为( D )
A)关系模型 B) 网状模型 C) 层次模型 D) 概念模型
7. 在关系数据库中,只消除非主属性对码的部分依赖的范式是 ( C )
A) BCNF B) 1NF C) 2NF D) 3NF
8. 在数据库系统中,同一个外模式 ( C )
A) 只能被一个用户的一个应用程序使用
B) 不能被一个用户的多个应用程序使用
C) 可以被同一个用户的多个应用程序使用
D) 可以被所有用户的应用程序使用
9. 在数据库系统中,对全体数据的逻辑结构和特征的描述称为( B )
A) 子模式 B) 模式 C) 存储模式 D) 内模式
10.实体所具有的某一特性称为实体的 ( C )
A) 特征 B) 性质 C) 属性 D) 特点
二、判断题(认为对的,在题后的括号内打“√”,错的打“×”,错误的请给出反例说明。每小题2分,共10分)
1.任何一个二目关系是属于2NF的. ( √ )
2.任何一个二目关系是属于3NF的. ( √ )
3.任何一个三目关系是属于2NF的 ( × )
4.若R.A→R.B R.B→R.C 则 R.A→R.C ( √ )
5.若R.B→R.A R.C→R.A 则 R.(B,C)→R.A ( √ )
因为第1小题是错误的,故第2、3小题也是错误的。只需对第1小题举出反例。
设三目关系模式为R(S#,SD,C#),其中S#是学生号,SD是所在系,C#是课程号。模式R的语义:一个学生只属于一个系,可选多门课;一个系有若干学生,开若干门课;一门课程若干学生选修。因此,R有唯一的码(S#, C#),唯一的非主属性SD。因S#→SD,非主属性SD部分依赖于码(S#, C#),所以R不是2NF的,也不是3NF的。又虽有S#→SD,(SDS#),但S#不含码,故R不是BCNF的。
三、填空题(每空1分,共10分)
1.将数据转换成信息的过程称为 数据处理 。
2. 在E-R模型中,用菱形框表示 实体之间的联系 ,用椭圆形框表示 属性 ,用矩形框表示 实体 。
3. 数据库管理系统所支持的数据模型被分为 层次 、 网状 、
关系 和面向对象四种类型。
4. 一个工人可以加工多种零件,每一种零件可以由不同的工人来加工,工人和零件之间为 __多对多(m:n)_________的联系。
5. 二维表中的列和行在关系中分别称为 属性 和 元组 。
四、实用操作题(每小题3分,共30分)
设有学生—课程关系数据库,其中有学生关系S,课程关系C和学生选课关系SC,如下图所示:
关系S
学 号 姓 名 年龄 性别
S# SN SA SS |
S1 WANG 20 F S2 LI 23 M S3 CHEN 21 M S4 ZHANG 20 M S5 ZHANG 22 F |
课程号称 学时 教师 教师办公室
C# FO TE OF |
C1 200 ZHOU OF2 C2 120 LIU OF2 C3 80 LIU OF2 C4 80 WANG OF3 |
学号 课程号 成绩
S# C# G |
S1 C1 90 S1 C2 90 S1 C3 85 S1 C4 87 S2 C1 90 S3 C1 75 S3 C2 70 S3 C4 56 S4 C1 90 S4 C2 85 S5 C1 95 S5 C4 80 |
要求使用SQL语言写出下列操作:
1.找出全部开课的老师.
2.找出学习C1且成绩为90分以上(包括90分)的学生号.
3.把WANG老师的办公室改为OF1.
4.把全体男学生的成绩置零.
5.在表S中增加‘学生所在系’的列,其数据类型为变长字符串,最大长度为15.
6.找出没有选修课程C3的学生名.
7.求出男同学集合与年龄不大于20的学生集合.
8.求年龄在20岁与23岁之间(包括20岁和23岁)的学生号和年龄.
9.查询选修了C1课程的学生的学号及成绩,查询结果按分数的降序排列.
10.查询所有有成绩的学生号和课程号.
1.SELECT DISTINCT TE
FROM C
2.SELECT S#
FROM SC
WHERE C#=’C1’AND G>
3. UPDATE C
SET OF=’OF1’
WHERE TE=’WANG’
4. UPDATE SC
SET G=0
WHERE ‘M’=
(SELECT SS
FROM S
WHERE S.S#=SC.S#)
5. ALTER TABLE S
ADD SD VARCHAR(15)
6. SELECT SN
FROM S
WHERE NOT EXISTS
(SELECT *
FROM SC
WHERE S#=S.S# AND C#=’C3’)
7. SELECT *
FROM S
WHERE SS=’M’AND SA>20
8. SELECT S#,SA
FROM S
WHERE SA BETWEEN 20 AND 22
9. SELECT S#,G
FROM SC
WHERE C#=’C1’
ORDER BY G DESC
10.SELECT S#,C#
FROM SC
WHERE G IS NOT NULL
五、写出下列命令或命令组的功能(每题2分,共16分)
假定使用的“图书”、“读者”、“借阅”和ZGJK库文件结构如下:
图书(总编号 C(6),分类号 C(8),书名 C(16),作者 C(6),出版单位 C(16),单价 N(7,2))
读者(借书证号 C(4),单位 C(10),姓名 C(6),性别 C(2),职称 C(6),地址 C(16))
借阅(借书证号 C(4),总编号 C(6),借书日期 D())
ZGJK(职工号 C(6),姓名 C(6), 性别 C(2),出生日期 D(),职称 C(6),基本工资 N(7,2))
1.select *;
from 图书;
where 作者="李"
查询出“图书”数据库中作者姓“李”的所有图书。
2.select count(*) ;
from 图书;
where书名 like "%数据库%" AND 单价<=20.00
求出“图书”数据库中书名包含“数据库”、单价不高于20元的图书册数。
3.select MAX(单价) AS 最高价,MIN(单价) AS 最低价,AVG(单价) AS 平均价;
from 图书;
where出版单位="高等教育出版社"
求出“图书”数据库中"高等教育出版社"出版的图书的最高价、最低价和平均价。
4.select distinct 分类号,书名,作者;
from 图书;
order by分类号 desc
按分类号降序显示“图书”数据库中各种图书的分类号、书名和作者。
5.select *;
from 图书;
where 出版单位 in("清华大学北京大学")
order by分类号
按分类号升序显示“图书”数据库中由清华大学出版社和北京大学出版社出版的所有图书。
6.select count(*);
from 图书;
where 单价 between 50 and 100
统计出“图书”数据库中单价在50至100之间的图书数量。
7.select 借书证号,count(*);
from 借阅;
where 借书日期<{2001/01/01};
group by借书证号;
having count(*)>=3
分组统计出2000年底以前借阅的、借阅数不低于3本的借书证号和借阅数量。
8.select 单位,count(*);
from 读者,借阅;
where 读者.借书证号 = 借阅.借书证号;
group by 单位
按单位分组统计出各单位借阅图书的数量。
六,设计题(10分)
1.学校中有若干系,每个系有若干班级和教研室,每个教研室有若干教师,其中一些教授和副教授每人各带若干研究生。每个班有若干学生,每个学生选修若干课程,每门课可由若干学生选修。用E-R图画出此学校的概念模型。
1 1
n n
1 1
n n
n n
m m
七.请设计一个学生成绩管理系统,要求有学生表,选课成绩表,课程表,密码表。并提出主要的功能模块图,以及学生选课的E-R图(14分)答案(略)