第二章
1、常用的关系数据语言有哪几种?
基于关系代数的语言、基于谓词演算的语言、结构化查询语言。
2、解释下列概念,并说明它们之间的联系与区别。
(1)码、候选码、外部码。
1)、码:唯一标识实体的属性组,码可能不止一个。候选码:同类关系中能够唯一标识每个元组的属性组,在这些关系中,这个属性组上的值每行都不同。外部码:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码。
(2)笛卡尔积、关系、元组、属性、域。
2)、笛卡尔积:给定一组域D1,D2,…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡尔积为:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}所有域的所有取值的一个组合不能重复,笛卡尔积可以表示为一个二维表关系:D1×D2…×Dn的子集,叫做在域D1,D2,…,Dn上的关系,用R(D1,D2,„,Dn)表示。这里R是关系的名字,n是关系的目或度。元组:关系中的每个元素是关系中的元组,通常用t表示。
关系中的每个元素是关系中的元组属性:实体具有的某一方面的特性。
域:一组具有相同数据类型的值的集合。
关系:是一张二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,给每列取一个名字,称为属性。n目关系必有n个属性。
(3)关系模式、关系模型、关系数据库。
3)、关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。
3、关系模型的完整性规则有哪几类?
关系模型提供了3类完整性规则:实体完整性、参照完整性、用户定义的完整性规则。其中实体完整性规则和参照完整性规则是关系模型必须满足的完整性约束条件,成为关系完整性规则。实体完整性规则:作为主键的属性或属性组的值在关系中必须是唯一的和确定的。参照完整性规则:如果表中存在外键,则外键的值必须与主表中相应的键值相同,或者外键的值为空。上述两类完整性规则是关系模型必须满足的规则,由系统自动支持。用户定义的完整性规则是针对某一具体数据的约束条件,由应用环境决定。它反映某一具体应用所涉及的数据必须满足的语义要求。
4、在关系模型的参照完整性规划中,为什么外部码属性的值也可以为空?什么情况下可以为空?
参照完整性规则中,外码或者取空值(其中每个属性值均为空值),或者等于S中某个元组的主码值,因此外码属性值可以为空。若属性F本身不是主属性,则可以取空值,否则不能取空值。
5、等值连接与自然链接的区别是什么?
等值连接:连接运算符是“=”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组。
自然连接:自然连接是一种特殊的等值连接。它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。
6、关系代数的基本运算有哪些?如何用这些基本运算表示其他的关系基本运算?
关系代数的基本运算包括:
1.选择(σ):从关系中选择满足特定条件的元组[2]。例如,选择年龄大于25的员工:σ_(年龄>25)(员工)。
2.投影(π):从关系中选择特定的属性列。例如,选择员工的姓名和工资属性:π_(姓名,工资)(员工)。
3.并集(∪):合并两个结构相同的关系的元组。
4.差集(-):从一个关系中减去另一个关系的元组。
5.笛卡尔积(×):两个关系的每一个元组的组合。
6.重命名(ρ):更改关系或属性的名称。
使用这些基本运算,可以表示其他的关系运算,例如:
自然连接[3](⨝):是两个关系间的特殊类型的连接,基于它们共有的属性。
表达方式:R⨝S=σ_(R.A=S.A)(R×S),其中A是两个关系共有的属性。
交集(∩):可以使用并集和差集来表示。
表达方式:R∩S=R-(R-S)
除法(÷):用于找到在一个关系中存在,但在另一个关系中对于某属性不存在的元组。
表达方式比较复杂,通常需要多个步骤和其他基本运算来完成。
theta连接(⨝_θ):连接两个关系,但不是基于共有属性,而是基于某种条件θ。
表达方式:R⨝_θS=σ_θ(R×S)