第二章 关系数据库


1.关系数据模型中,二维表的列称为________,二维表的行称为________。

正确答案: 属性 记录或元组


2.用户选作元组标识的一个候选码为________,其属性不能取________。

正确答案: 主码 空值


3.关系代数运算中,传统的集合运算有_____,_____,_____,_____。

正确答案: 笛卡尔积 并 交 差


4.关系代数运算中,基本的运算是________,________,________,________,________。

正确答案: 并 差 笛卡尔积 选择 投影


5.关系代数运算中,专门的关系运算有________,________,________。

正确答案: 选择 投影 连接


6.关系数据库中基于数学上的两类运算是________和________。

正确答案: 关系代数 关系演算


7.关系代数中,从两个关系中找出相同元组的运算称为________运算。

正确答案: 交


8.R S表示R与S的________。

正确答案: 自然连接


9.设有学生关系:S(XH,XM,XB,NL,DP)。在这个关系中,XH表示学号,XM表示姓名,XB表示性别,NL表示年龄,DP表示系部。查询学生姓名和所在系的投影操作的关系运算式是________________。

正确答案: π2,5(S) 或 πXM,DP(S)


10.在“学生-选课-课程”数据库中的3个关系如下:S(S#,SNAME,SEX,AGE);SC(S#,C#,GRADE); C(C#,CNAME,TEACHER),查找选修“数据库技术”这门课程学生的学生名和成绩,若用关系代数表达式来表示为________________。

正确答案: πSNAME,GRADE(S(SC(σCNAME=’数据库技术’©)))


11.已知系(系编号,系名称,系主任,电话,地点)和学生(学号,姓名,性别,入学日期,专业,系编号)两个关系,系关系的主码是________,系关系的外码是________,学生关系的主码是________,学生关系的外码是________。

正确答案: 系编号 没有 学号 系编号


12. 试述关系模型的三个组成部分。

正确答案: 关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。


13. 试述关系数据语言的特点和分类。

正确答案: 关系数据语言可以分为三类: 关系代数语言,例如ISBL 关系演算语言,包括:元组关系演算语言,例如APLHA,QUEL 域关系演算语言,例如QBE 具有关系代数和关系演算双重特点的语言 例如SQL 这些关系数据语言的共同特点是,具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。


14.定义并理解下列术语,说明它们之间的联系与区别: (1) 域,笛卡尔积,关系,元组,属性 (2)主码,候选码,外部码 (3)关系模式,关系,关系数据库

正确答案: 域:域是一组具有相同数据类型的值的集合。 笛卡尔积: 给定一组域D1,D2,…,Dn,这些域中可以有相同的。这组域的笛卡尔积为: D1×D2×…×Dn={ (d1,d2,…,dn)|diDi,i=1,2,…,n } 其中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组(Tuple)。 元素中的每一个值di叫作一个分量(Component)。 关系:在域D1,D2,…,Dn上笛卡尔积D1×D2×…×Dn的子集称为关系,表示为 R(D1,D2,…,Dn) 元组:关系中的每个元素是关系中的元组。 属性:关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可 以相同,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。 候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码(Candidate key)。 主码:若一个关系有多个候选码,则选定其中一个为主码(Primary key)。 外部码:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外部码(Foreign key),简称外码。 基本关系R称为参照关系(Referencing relation),基本关系S称为被参照关系(Referenced relation)或目标关系(Target relation)。关系R和S可以是相同的关系。 关系模式:关系的描述称为关系模式(Relation Schema)。它可以形式化地表示为: R(U,D,dom,F) 其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,dom为属性向域的映象集合,F为属性间数据的依赖关系集合。 关系:在域D1,D2,…,Dn上笛卡尔积D1×D2×…×Dn的子集称为关系,表示为 R(D1,D2,…,Dn) 关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。 关系数据库:关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。


15.试述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?

正确答案: 关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。 其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。 1) 实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。 2) 参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必 须为: • 或者取空值(F的每个属性值均为空值); • 或者等于S中某个元组的主码值。 3) 用户定义的完整性是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。    在参照完整性中,外部码属性的值可以为空,它表示该属性的值尚未确定。但前提条件是该外部码属性不是其所在关系的主属性。 例如,在下面的“学生”表中,“专业号”是一个外部码,不是学生表的主属性,可以为空。其语义是,该学生的专业尚未确定。 学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名) 而在下面的“选修”表中的“课程号”虽然也是一个外部码属性,但它又是“选修”表的主属性,所以不能为空。因为关系模型必须满足实体完整性。 课程(课程号,课程名,学分) 选修(学号,课程号,成绩)


16. 等值连接与自然连接的区别是什么?

正确答案: 连接运算中有两种最为重要也最为常用的连接,一种是等值连接(equi-join),另一种是自然连接(Natural join)。 Θ为“=”的连接运算称为等值连接。 它是从关系R与S的笛卡尔积中选取A、B属性值相等的那些元组。即等值连接为: R A=B S = { tr ts| tr∈R ∧ ts∈S ∧ tr[A] = ts[B] }   自然连接(Natural join)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。即若R和S具有相同的属性组B,则自然连接可记作: R S = { tr ts| tr∈R ∧ ts∈S ∧ tr[B] = ts[B] }


17. 代数的基本运算有哪些?如何用这些基本运算来表示其他的关系基本运算?

正确答案: 在八种关系代数运算中,并、差、笛卡尔积、投影和选择五种运算为基本的运算。其他三种运算,即交、连接和除,均可以用五种基本运算来表达。 交运算: R  S = R-(R-S) 连接运算 R S = AB(RS) AB 除运算:R(X,Y) S(Y,Z) = X® - X ( X®  Y(S) R ) X、Y、Z 为属性组,R中的Y和S中的Y可以有不同的属性名,但必须出自相同的域集。