数据库习题精讲2
- 格式:doc
- 大小:98.00 KB
- 文档页数:5
第四章 习 题
1. 填空题
(1) 设F是基本关系R的一个属性或属性组,F不是R的码(主码或候选码),但F是关系S的主码,则称F是R的____外码_______,R为____参照关系_____表,S为_____被参照_____表。
(2) 设关系R和S的属性个数分别是3和4,元组个数分别是100和300,关系T是R和S的广义笛卡尔积,则T的属性个数是_____7_________,元组个数是___30000_________。
2. 单选题
(1) 在通常情况下,下面的关系中不可以作为关系数据库的关系是( D )。
A、R1(学生号,学生名,性别)
B、R2(学生号,学生名,班级号)
C、R3(学生号,学生名,宿舍号)
D、R4(学生号,学生名,简历)
(2) 一个关系数据库文件中的各条记录( B )。
A、前后顺序不能任意颠倒,一定要按照输入的顺序排列
B、前后顺序可以任意颠倒,不影响库中的数据关系
C、前后顺序可以任意颠倒,但排列顺序不同,统计处理的结果就可能不同
D、前后顺序不能任意颠倒,一定要按照码段值的顺序排列
(3) 同一个关系模型的任意两个元组值( A )。
A、不能全同 B、可全同 C、必须全同 D、以上都不是
(4) 设属性A是关系R的主属性,则属性A不能取空值(NULL)。这是( A )。
A、实体完整性规则 B、参照完整性规则 C、用户自定义完整性规则 D、域完整性规则
(5) 下列关系中的基本名词,能唯一地标识一个元组的是( A、C )。
A、主属性 B、属性
C、候选码 D、以上三都均可
(6) 外码必须为空值或等于被参照表中某个元组的主码。这是( B )。
A、实体完整性规则 B、参照完整性规则 C、用户自定义完整性规则 D、域完整性规则
(7) 当对关系R和S使用自然连接时,要求R和S含有一个或多个共有的( D )。
A、元组 B、行 C、记录 D、属性
(8) R-(R-S)等同于( A )。
A、R∩S B、R∪S C、R-S D、R×S
(9) 在关系代数运算中,不属于基本运算的是( D)。
A、差 B、交 C、并 D、乘积
3. 判断题
(1) 关系操作的方式是一次一集合。( √ )
(2) 笛卡尔积就是关系。( √ )
(3) 在一个关系模式中,候选码可有多个,主码只能有一个,主码可以不属于候选码。( × )【主码属于候选码】
(4) 主码中的属性叫做主属性。( × )[候选码中的属性叫做主属性]
4. 简答
(1) 简述关系的五个特征。
答:
(2) 何种情况下,外码的值不能为空? 答:设F是基本关系R的一个或一组属性,但不是关系R的主码(或候选码)。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码,并称基本关系R为参照关系,基本关系S为被参照关系或目标关系。所以被参照关系的主码非空时,外码值不能为空。
(3) 已知三个关系模式图书(书号,书名,出版社,负责人),读者(读者号,身份证号,姓名,性别,年龄),借阅(读者号,书号,借阅日期,归还日期)。指出每个关系模式的候选码,主码,外码,主属性。
答:图书关系模式的主码为:书号。候选码:书号。主属性:书号。
外码:无。、
读者关系模式的主码为:读者号。候选码:读者号,身份证号。
主属性:读者号,身份证号。外码:无。
借阅关系模式的主码为:书号。候选码:书号。主属性:书号。
外码:读者号。
(4) 简述连接、等值连接和自然连接的定义。
答:连接运算【Join】是从两个关系的笛卡尔积中选取属性间满足一定条件的远足。
自然连接:要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。(一种特殊的等值连接)
等值连接:是从关系R和S的广义笛卡尔积中选取A和B 属性值相等的那些元组。
5. 综合题
(1) 已知域D1=零件号集合={P1,P2,P3};D2=颜色集合={红色,蓝色};D3=产地集合={北京,上海}
用二维表表示D1×D2×D3的笛卡尔积,并计算笛卡尔积的基数。
零件号颜色产地P1红色北京P1红色上海P1蓝色北京P1蓝色上海P2红色北京P2红色上海P2蓝色北京P2蓝色上海P3红色北京P3红色上海P3蓝色北京P3蓝色上海
笛卡尔的基数为:12
(2) 已知关系R1,R2分别是
R1
A B C
a1 b1 c1
a2 b2
c2
R2
D E
d1 e1
d2 e2
d3 e3
求它们的广义笛卡尔积。
R1 R2=
A B C D E
a1 b1 c1 d1 e1
a1 b1 c1 d2 e2
a1 b1 c1 d3 e3
a2 b2 c2 d1 e1
a2 b2 c2 d2 e2
a2 b2 c2 d3 e3
(3)
选课
学号 课程号 成绩
001 c1 80
001 c2 90
002 c2 70
课程
课程号 课程名 先行课号
c1 数据结构 c3
c2 数据库 c4
c3 C语言 c4
c4 计算机文化基础
求 等值连接: 选课∞课程
选课.课程号=课程.课程号
选课∞课程 =
选课.课程号=课程.课程号
学号 选课。课程号 成绩 课程。课程号 课程名 先行课号
001 C1 80 C1 数据结构 C3
001 C2 90 C2 数据库 C4
002 C2 70 C2 数据库
C4
自然连接: 选课∞课程
选课∞课程=
学号 课程号 成绩 课程名 先行课号
001 C1 80 数据结构 C3
001 C2 90 数据库 C4
002 C2 70 数据库 C4
6. 语法题
(1) 对于学生选课关系,其关系模式如下:
学生(学号,姓名,年龄,所在系)
课程(课程名,课程号,先行课)
选课(学号,课程号,成绩)
试用关系代数完成下列查询:
① 求成绩不及格的学生学号和姓名
∏学号、姓名(σ成绩<60(选课)∝(学生))
② 求学过数据库课程的学生学号和姓名
∏学号、姓名(σ课程名=‘数据库’(课程)∝(选课)∝(学生))
③ 求数据库成绩不及格的学生学号和姓名
∏学号、姓名(σ课程名=‘数据库’∧成绩<60((课程)∝(选课))∝(学生))
④ 求学过数据库和数据结构课程的学生学号和姓名
∏学号、姓名((σ课程名=‘数据库’(课程)∩σ课程名='数据结构’(课程))∝(选 课)∝(学生))
⑤ 求学过数据库或数据结构课程的学生学号和姓名
∏学号、姓名((σ课程名=‘数据库’(课程)∪σ课程名='数据结构’(课程))∝(选
课)∝(学生))
⑥ 求没学过数据库课程的学生学号
∏学号(学生)-∏学号(σ课程名=‘数据库’(课程)∝(选课))
⑦ 求学过数据库的先行课的学生学号
∏学号(∏先行课(σ课程名=‘数据库’(课程))∝(课程)∝(选课))
⑧ 求选修了全部课程的学生学号和姓名
∏学号、姓名((选课)÷(课程))∝(学生))