整理《数据库系统概论》学习笔记,方便日后回顾整理。

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

2.1.1 关系

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

笛卡尔积 (Cartiesian Product):给定一组域 $D_1$,$D_2$,……,$D_n$,这些域中可以有相同的。这组域的笛卡儿积为:

假设集合 A={a, b},集合 B={0, 1, 2},则两个集合的笛卡尔积为 {(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。

关系:是笛卡儿积的有限子集,表示为 $R(D_1, D_2, …, D_n)$,其中 R 为关系名,n 为关系的目或度。

  • 元组:关系的每个元素是关系中的元组,通常用 t 表示。

  • 属性:关系中不同列可以对应相同的域,为了加以区分,必须对每列取一个名字称为属性,n 目关系必有 n 个属性。

    • 候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。
    • 全码:在最极端的情况下,关系模式的所有属性是这个关系模式的候选码,称为全码。
    • 主码:若一个关系有多个候选码,则选定其中一个为主码。
    • 主属性:候选码的诸属性称为主属性。
    • 非主属性:不包含在任何候选码中的属性称为非主属性或非码属性。
  • 关系可以有三种类型:基本关系(基本表或基表)、查询表和视图表。

    • 基本表是实际存在的表,它是实际存储数据的逻辑表示;
    • 查询表示查询结果对应的表;
    • 视图表是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。
  • 在对关系进行限定和扩充下(为了适应数据库要求),关系需要具有以下几个性质:

    • 列是同质的

    • 不同的列可出自同一个域

    • 列的顺序无所谓,列的次序可以任意交换

    • 任意两个元组的候选码不能取相同的值

    • 行的顺序无所谓,行的次序可以任意交换

    • 分量必须取原子值,这是规范条件中最基本的一条

      必须保证表中不能再有表

2.1.2 关系模式

关系的描述称为关系模式(型),关系是关系模式在某一时刻的状态或内容(值)。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的。

2.1.3 关系数据库

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

2.2 关系操作

关系操作的对象和结果都是集合。基本操作:选择、投影、并、差、笛卡尔积。分类:关系代数、关系演算、介于两者之间(SQL)。

2.3 关系代数

这部分内容请参考书本

2.3.1 传统的集合运算

并(Union):

差:

交:

笛卡尔积:

2.3.2 专门的关系运算

选择运算:

投影运算:要去掉相同的行

连接运算:

  • 等值连接
  • 自然连接

  • 外连接
  • 左外连接
  • 右外连接

除运算:

2.4 关系的完整性

  1. 实体完整性:若属性(指一个或一组属性)A 是基本关系 R 的主属性,则 A 不能取空值。
  2. 参照完整性:设F是基本关系R的一个或一组属性,但不是关系R的码,Ks是基本关系S的主码。如果F与Ks相对应,则称F是R的外码,并称基本关系R为参照关系,基本关系S为被参照关系或目标关系。参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应,则对于R中每个元组在F上的值必须:或者取空值,或者等于S中某个元组的主码值。
  3. 用户定义的完整性:就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。

其中,1,2是关系模型必须满足的完整性约束,被称作关系的两个不变性,应用由关系系统自动支持。