一、选择题
1. A 2. C 3. C 4. B 5. B
6. C 7. B 8. D 9. C 10. A
11. B 12. A 13. A 14. D 15. D 16. B 17. C
二、填空题
1.选取
2. 交
3. 相容(或是同类关系)
4. 并 差 笛卡尔积 选择 投影
5. 并 差 交 笛卡尔积
6. 选取 投影 连接
7. σf(R)
8. 关系代数 关系演算
9. 属性
10. 同质
11. 参照完整性
12. 系编号,系名称,电话 办公地点
13. 元组关系 域关系
14. 主键 外部关系键
15. R和S没有公共的属性
16. 关系
三、简答题
1.关系模型的完整性规则有哪几类?
关系模型中,有三类完整性约束,即实体完整性、参照完整性和用户自定义的完整性。其中,实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作关系的两个不变性。任何关系数据库系统都应该支持这两类完整性。除此之外,不同的关系数据库系统由于应用环境的不同,往往还需要一些特殊的约束条件,这就是用户自定义完整性,用户自定义完整性体现了具体领域中的语义约束。
2.举例说明什么是实体完整性和参照完整性。
实体完整性是指主码的值不能为空或部分为空。例如,学生关系中的主码“学号”不能为空,选课关系中的主码“学号+课程号”不能部分为空,即“学号”和“课程号”两个属性都不能为空。
参照完整性是指如果关系R2的外码X与关系R1的主码相符,则X的每个值或者等于R1中主码的某一个值或者取空值。例如,学生关系S的“系别”属性与系别关系D的主码“系别”相对应,因此,学生关系S的“系别”属性是该关系S的外码,学生关系S是参照关系,系别关系D是被参照关系,学生关系中某个学生(如S1或S2)“系别”的取值,必须在参照的系别关系中主码“系别”的值中能够找到,如果某个学生(如S11)“系别”取空值,则表示该学生尚未分配到任何一个系;否则,它只能取系别关系中某个元组的系别号值。
3.关系的性质主要包括哪些方面?为什么只限用规范化关系?
关系具有如下性质。
(1)列是同质的,即每一列中的分量必须来自同一个域,必须是同一类型的数据。
(2)不同的属性可来自同一个域,但不同的属性必须有不同的名字。
(3)列的顺序可以任意交换。但交换时,应连同属性名一起交换,否则将得到不同的关系。
(4)关系中元组的顺序(即行序)可任意,在一个关系中可以任意交换两行的次序。因为关系是以元组为元素的集合,而集合中的元素是无序的,所以作为集合元素的元组也是无序的。
(5)关系中不允许出现相同的元组。因为数学上集合中没有相同的元素,而关系是元组的集合,所以作为集合元素的元组应该是唯一的。
(6)关系中每一分量必须是不可分的数据项,或者说所有属性值都是原子的,即是一个确定的值,而不是值的集合。属性值可以为空值,表示“未知”或“不可使用”,但不可“表中有表”。
由于非规划化关系会导致数据冗余、插入异常、删除异常、更新异常等问题,因此在构建关系时,应使用规范化关系。
4.举例说明等值连接与自然连接的区别与联系。
所谓自然连接就是在等值连接的情况下,当连接属性X与Y具有相同属性组时,把在连接结果中重复的属性列去掉。
等值连接与自然连接的区别如下:
(1)等值连接中不要求相等属性值的属性名相同,而自然连接要求相等属性值的属性名必须相同,即两关系只有同名属性才能进行自然连接。如上图R中的C列和S中的D列可进行等值连接,但因为属性名不同,不能进行自然连接。
(2)在连接结果中,等值连接不将重复属性去掉,而自然连接去掉重复属性,也可以说,自然连接是去掉重复列的等值连接。如上图R中的B列和S中的B列进行等值连接时,结果有两个重复的属性列B,而进行自然连接时,结果只有一个属性列B。
5.解释下列概念:笛卡儿积、关系、同类关系、关系头、关系体、属性、元组、域、关系键、候选键(码)、主键(码)、外部键(码)、关系模式、关系数据库模式、关系数据库、关系数据库的型与值。
笛卡儿积(Cartesian Product)。给定一组域D1,D2,…,Dn(它们可以包含相同的元素,既可以完全不同,也可以部分或全部相同),则D1,D2,…,Dn的笛卡儿积为:
D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}。
关系(Relation)。笛卡儿积D1×D2×…×Dn的任一子集称为定义在域D1,D2,…,Dn上的n元关系(Relation),可用R(D1,D2,…,Dn)表示。
具有相同关系框架的关系称为同类关系。
关系头(Heading)。关系头由属性名A1,A2,…,An的集合组成,每个属性Ai对应一个域Di(i=1,2,…,n)。关系头(关系框架)是关系的数据结构的描述,它是固定不变的。
关系体(Body)。关系体是指关系结构中的内容或者数据,它随元组的插入、删除或修改而变化。
由于不同域(列)的取值可以相同,为了加以区别,必须对每个域(列)起一个名字,称为属性(Attribute)。
关系中的每个元素是关系中的元组。
域(Domain)。域是一组具有相同数据类型的值的集合,又称为值域(用D表示)。
候选码(Candidate Key)。能唯一标识关系中元组的一个属性或属性集,称为候选码,也称候选关键字或候选键。
关系键是一个表中的一个或几个属性,用来标识该表的每一行或与另一个表产生联系。
主码(Primary Key)。如果一个关系中有多个候选码,可以从中选择一个作为查询、插入或删除元组的操作变量,被选用的候选码称为主码,或称为主关系键、主键、关系键、关键字等。
如果关系R2的一个或一组属性X不是R2的主码,而是另一关系R1的主码,则该属性或属性组X称为关系R2的外码(Foreign key)或外部关系键。
关系的描述称为关系模式(Relation Schema)。它可以形式化地表示为:
R(U,D,DOM,F)
关系数据库的型称为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。
在一个给定的应用领域中,所有实体以及实体之间联系所对应的关系的集合构成一个关系数据库。
关系数据库的型称为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。关系数据库的值也称为关系数据库,是这些关系模式在某一时刻对应的关系的集合。
6.以第1章的图1-21所示的教学管理数据库为例,用关系代数表达式表示以下各种查询要求。
(1)查询T1老师所授课程的课程号和课程名。
(2)查询年龄大于18岁的男同学的学号、姓名、系别。
(3)查询“李力”老师所讲授课程的课程号、课程名、课时。
(4)查询学号为S1的同学所选修课的课程号、课程名和成绩。
(5)查询“钱尔”同学所选修课程的课程号、课程名和成绩。
(6)查询至少选修“刘伟”老师所授全部课程的学生姓名。
(7)查询“李思”同学未选修的课程号和课程名。
(8)查询全部学生都选修了的课程的课程号、课程名。
(9)查询选修了课程号为C1和C2的学生的学号和姓名。
(10)查询选修了全部课程的学生的学号和姓名。