文档库

最新最全的文档下载
当前位置:文档库 > 课后练习答案2

课后练习答案2

第2章 关系数据库

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

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

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

答:关系数据语言可以分为三类:

关系代数语言。

关系演算语言:元组关系演算语言和域关系演算语言。

SQL :具有关系代数和关系演算双重特点的语言。

这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。

3. 定义并理解下列术语,说明它们之间的联系与区别:

(1) 域,笛卡尔积,关系,元组,属性

(2) 候选码,主码,外部码

(3) 关系模式,关系,关系数据库

答:

(1)

a) 域:域是一组具有相同数据类型的值的集合。

笛卡尔积:给定一组域D1,D2,……,Dn ,这些域中可以有相同的域。这组域的笛卡尔积为(){}n i D d d d d D D D i i n n ,...,2,1,|,...,,2121=∈=??????

其中,每一个元素(d1,d2,…,dn )称为一个n 元组(n0-tuple )或简称元组(tuple )。元素中的每一个值di 称为一个分量(component )。

b) 关系:在域D1,D2,……,Dn 上,笛卡尔积D1×D2×…×Dn 的子集称为关系,表示为 R(D1,D2,…,Dn)

值得注意的是,这里用较为形式化的方法来定义关系。在第一章中则是用通俗的语言来说明什么是关系,也可以看做不甚严格的一种定义。

c) 元组:关系中的每个元素是关系中的元组。

d) 属性:关系也是一个二维表,表的每行对应于一个元组,表的每列对应于一个域。由于域可以相同,为了加以区分,必须为每列起一个名字,称为属性(attribute )。

(2)

a) 候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码(candidate key)。

b) 主码:若一个关系有多个候选码,则选定其中一个为主码(primary key )。

c) 外部码:设F 是基本关系R 的一个或一组属性,但不是关系R 的码,如果F 与基本关系S 的主码Ks 相对应,则称F 是基本关系R 的外部码(foreign key ),简称外码。基本关系R 称为参照关系(referencing relation ),基本关系S 称为被参照关系(referenced relation )或目标关系(target relation )。关系R 和S 可以是相同的关系。

(3)

a) 关系模式:关系的描述称为关系模式(relation schema ),可以形式化地将其表示为

R(U,D,dom,F)

其中,R 为关系名,U 为组成该关系的属性名集合,D 为属性组U 中属性值所来自的域,表示为 R(D1,D2,…,Dn)

b) 关系:关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,而关系是动

态的、随时间而不断变化的,因为关系操作在不断地更新数据库中的数据。

c) 关系数据库:关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,是对关

系数据库的描述,它包括若干域的定义及在这些域上所定义的若干关系模式。关系数据库的

值是这些关系模式在某一时刻所对应的关系的集合,通常称为关系数据库。

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

以为空?

答:

关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有3类完整性约束:实体完整性、参照完整性和用户定义的完整性。

其中,实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称为关系的两个不变性,应该由关系系统自动支持。

1) 实体完整性规则:若属性A 是基本关系R 的主属性,则属性A 不能取空值。

2) 参照完整性规则:若属性(或属性组)F 是基本关系R 的外码,它与基本关系S 的主码Ks 相对应(基

本关系R 和S 不一定是不同的关系),则对于R 中每个元组在F 上的值必须为以下两者之一:

a) 或者取空值(F 的每个属性值均为空值);

b) 或者等于S 中某个元组的主码值。

3) 用户定义完整性:是针对某一具体关系数据库的约束条件。它反映某一具体应用涉及的数据所必

须满足的主义要求。

参照完整性中,外部码属性值可以为空,表示该属性的值尚未确定。但前提条件是该外部码属性不是其所在关系的主属性。

例如,在下面的“学生”表中,“专业号”是一个外部码,不是“学生”表的主属性,其这可以为空。其语义是,该学生的专业尚未确定。 学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名)

而在下面的“选修”表中,“课程号”虽然也是一个外部码属性,但它又是“选修”表的主属性,所以其值不能为空。因为关系模型必须满足实体完整性。 课程(课程号,课程名,学分) 选修(学号,课程号,成绩)

5. 设有一个SPJ 数据库,包括S ,P ,J ,SPJ 四个关系模式:

S (SNO ,SNAME ,STATUS ,CITY );

P (PNO ,PNAME ,COLOR ,WEIGHT );

J (JNO ,JNAME ,CITY );

SPJ (SNO ,PNO ,JNO ,QTY )

试用关系代数完成如下查询。

答:

1)求供应工程J1零件的供应商号码SNO 。

()()SPJ J JNO SNO '1'=σπ

2)求供应工程J1零件P1的供应商号码SNO 。

()()SPJ P PNO J JNO SNO '1''1'=∧=σπ

3)求供应工程J1零件为红色的供应商号码SNO :

(p)))())((('''1',红==color pno j jno pno sno sno SPJ σπσππ

πSno(σPno=‘P1‘(σCOLOR=’红‘(P)∞SPJ))

4)求没有使用天津供应商生产的红色零件的工程号JNO:

πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘红‘(S∞SPJ∞P)

5)求至少用了供应商S1所供应的全部零件的工程号JNO:

πJno,Pno(SPJ)÷πPno(σSno=‘S1‘(SPJ))

6.试述等值连接与自然连接的区别和联系。

答:连接运算符是“=”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组

自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。

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

答:并、差、笛卡尔积、投影和选择5种运算为基本的运算。其他3种运算,即交、连接和除,均可以用这5种基本运算来表达。