本文所属《数据库系统原理》分类专栏,相关文章导航请点击《数据库系统原理》目录汇总贴

一、关系数据结构及形式化定义

【基本概念】

1、域(domain)

是一组具有相同数据类型的值的集合

2、笛卡尔积

是域上的一种集合运算
一个域允许不同取值个数称为这个域的基数

3、关系

关系是笛卡尔积的有限子集,所以关系也是一张二维表,表的每一行对应一个元组,表的每一列对应一个域。每一列都要起一个名字,称为属性。若关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称为属性组为候选码

若一个关系有多个候选码,则选定其中一个为主码。候选码的诸属性称为主属性,不包括在任何候选码中的属性称为非主属性,或非码属性。在最简单的情况下,候选码只包含一个属性。在最极端的情况下,关系模式的所有属于是这个的候选码,称为全码

关系可以有三种类型:

  • 基本关系(又称基本表、基表)
  • 查询表
  • 视图表

基本关系具有以下6个性质:

  • 1、列是同质的,即每一列中的分量是同一类型的数据,来自同一域。
  • 2、不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。
  • 3、列的顺序无所谓,即列顺序是无关紧要的
  • 4、任意两个 元组的候选码不能取相同的值
  • 5、行的顺序无所谓,即每一个分量都必须是不可分的数据项
  • 6、分量必须取原子值,即每一个分量都必须是不可分的数据项

4、关系模式

关系的描述称为关系模式。
它可以形式化的表示为:R( U, D, DOM, F )
其中R为关系名,U为组成关系的属性名集合,D为U中属性所来自的域,DOM是属性向域的映像集合,F 为属性间数据的依赖关系集合。

5、关系数据库

在一个给定的应用领域中,所有关系的集合构成一个关系数据库。

  • 关系数据库的“”:
    也称为关系数据库模式,是对关系数据库的描述。

  • 关系数据库的“”:
    是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。

6、关系模型的存储结构

略。


二、关系操作

1、基本的关系操作

关系模型中常用的关系操作包括

  1. 查询操作
  2. 插入、删除、修改操作

查询操作又可以分为选择投影连接笛卡尔积等。
其中选择投影笛卡尔积是5种基本操作。

关系操作的特点是集合操作方式,即操作的对象的结果都是集合。这种操作方式也称为一次一集合的方式。

2、关系数据库语言的分类

  1. 关系代数语言(如ISBL)
  2. 关系演算语言
    • 元组关系演算语言(如ALPHA、QUEL)
    • 域关系演算语言(如QBE)
  3. 具有关系代数和关系演算双重特点的语言(如SQL)

三、关系的完整性

1、实体完整性

【实体完整性规则】
若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值。所谓空值就是“不知道”或“不存在”或“无意义”的值。

对于实体完整性规则说明如下:
1、实体完整性规则是针对基本表关系而言的。一个基本表通常对应现实世界一个实体集。
2、现实世界中的实体是可区分的。即它们具有某种唯一性标识。
3、相应地,关系模型中以主码作为唯一性标识
4、主码中的属性即属性不能取空值

2、参照完整性

【参照完整性的定义】
设F是基本关系R的一个或一组属性,但不是关系R的码、Ks 是基本关系S的主码。如果F与Ks 相对应,则称F是R是外码,并称基本关系R为参照关系,基本关系被参照关系或目标关系。

【参照完整性规则】
若属性(或属性组)F是基本关系R的外码,它与基本准关系S的主码Ks 相对应,则对于R中第一个元组F上的值必须:
1、或者取空值
2、或者等于S中某个元组的主码值

参照完整性规则就是定义外码主码之间的引用规则。

3、用户定义的完整性

针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。


四、关系代数

1、传统的集合运算

传统的关系运算起源于数学的集合论

  1. U ∪ S
    t属于U或者属于S
  2. R - S
    t属于R且不属于S
  3. R ∩ S
    r属于R且也属于S
  4. 笛卡尔积 R x S
    R中任意与S任意进行组合

2、专门的关系运算

数据库中特有的运算规则

  1. 选择 δF(R)
    对行进行操作,F是选择条件,R是关系表名。
  2. 投影A(R)
    对列进行操作,A为R的属性列。
  3. 连接 R⋈S
    分为一般连接、等值连接、自然连接(特殊的等值连接)、外连接、左外连接、右外连接。
  4. 除运算 R÷S
    同时从行和列角度进行运算,
    按我目前的理解,它像是一种比对操作。

五、*关系演算(选学)

略。


【小结与习题】

  1. 试述关系模型的三个组成部分。
    (1)关系的数据结构
    (2)关系数据模型的操作集合
    (3)关系模型的完整性约束。

  2. 简述关系数据库语言的特点和分类。
    关系数据语言可以分为三类:
    (1)关系演算语言:元组关系演算语言、域关系演算语言。
    (2)关系代数语言:通过关系代数运算符完成运算,包括集合运算符、专门的关系运算符,有并、差、交、笛卡尔积、选择、投影、连接、除。
    (3)SQL语言:具有关系代数和关系演算双重特点的语言

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

    (1)域,笛卡尔积,关系,元组,属性。
    :域是具有相同数据类型的值的集合。
    笛卡尔积:给定一组域D1,D2,…….,Dn,允许其中某些域是相同的。D1,D2,…….,Dn的笛卡尔积为:D1×D2×…….×Dn={(d1,d2,d3……,dn)|di∈Di,i=1,2,…,n},是所有域 取值的一个组合,并且不能有重复。
    关系:D1×D2×…….×Dn的子集叫做在域D1,D2,…….,Dn上的关系,表示为 R(D1,D2,…….,Dn) R:关系名,n:是关系的目或度,关系也是一个二维表,表的每一行对应一个元组,表的每一列对应一个域。
    元组:笛卡尔积中的每一个元素叫做一个元组或简称元组。
    属性:关系中不同的列可以对应相同的域,为了加以区分,必须给每个列起一个名字,成为属性。n目关系必有n个属性。
    (2)主码,候选码,外码。
    主码:若一个关系有多个候选码,则选定其中一个为主码。
    候选码:若关系中的某一组属性组的值能唯一的标识一个元组,则称为该属性组为候选码。
    外码:关系R中的一个属性组,他不是R的候选码,但它与另一个关系的候选码相对应,则称这个属性组为R的外码(外键),两个关系通常用外码相互连接。
    (3)关系模式,关系,关系数据库。
    关系模式:关系模式是型,关系模式是对关系的描述,关系模式可以形象化地表示为:R(U,D,DOM,F)。是对关系的描述,静态的、稳定的。
    关系:关系:D1×D2×…….×Dn的子集叫做在域D1,D2,…….,Dn上的关系,表示为 R(D1,D2,…….,Dn) R:关系名,n:是关系的目或度,关系也是一个二维表,表的每一行对应一个元组,表的每一列对应一个域。关系是值,是关系模式在某一时刻的状态或者内容,动态的、随时间不断变化的。
    关系数据库:在一个给定的应用领域中,所有关系的集合构成的一个关系数据库
    关系数据库模式是对关系数据库的描述。关系模式在某一时刻对应的关系的集合,通常称为关系数据库。

  4. 举例说明关系模式和关系的区别。

    关系模式是静态的,比如一张二维表的表头,即有哪些构成,每个列的名称类型长度等。

    关系是动态的,就是一张二维表的具体内容,就是除了标题以外的数据行,由于表数据经常被修改,插入,删除,所以不同时刻、关系可能不一样、其实,关系就是数学中的集合了,每一行就是集合的一个元素。

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

    实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。空值就是“不知道”或“不存在”或“无意义”的值。

    参照完整性:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:

    • 或者取空值(F的每个属性值均为空值)
    • 或者等于S中某个元组的主码值。

    当属性F本身不是主属性,则可以取空值,否则不能取空值。

  6. 略。

  7. 试述等值连接与自然连接的区别与联系。
    自然连接是一种特殊的等值连接(自然连接是除去重复属性的等值连接)。
    1、自然连接一定是等值连接,但等值连接不一定是自然连接。
    2、等值连接要求相等的分量,不一定是公共属性;而自然连接要求相等的分量必须是公共属性。
    3、等值连接不把重复的属性除去;而自然连接要把重复的属性除去。

  8. 关系代数的基本运算有哪些?如何用这些基本运算表示其他运算。
    基本的运算:笛卡尔积选择投影
    其他三种运算连接,均可以用这五种基本运算表达。


本章感悟:
关系代数那一节还需要查资料加强了解,对那四种专门的关系运算理解不是很深(尤其是连接运算和除运算)。另外我想说,数据库这前两章好难啃啊,概念太多,脑子很乱。

本章学习过程中浏览过的博文:

CSDN -数据库关系代数详解
CSDN -王珊的第五版数据库系统概论–第二章总结概述
CSDN -《数据库系统概论》| 第二章 关系数据库 知识梳理