数据库习题精讲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((课程)∝(选课))∝(学生))

④ 求学过数据库和数据结构课程的学生学号和姓名

∏学号、姓名((σ课程名=‘数据库’(课程)∩σ课程名='数据结构’(课程))∝(选 课)∝(学生))

⑤ 求学过数据库或数据结构课程的学生学号和姓名

∏学号、姓名((σ课程名=‘数据库’(课程)∪σ课程名='数据结构’(课程))∝(选

课)∝(学生))

⑥ 求没学过数据库课程的学生学号

∏学号(学生)-∏学号(σ课程名=‘数据库’(课程)∝(选课))

⑦ 求学过数据库的先行课的学生学号

∏学号(∏先行课(σ课程名=‘数据库’(课程))∝(课程)∝(选课))

⑧ 求选修了全部课程的学生学号和姓名

∏学号、姓名((选课)÷(课程))∝(学生))