数据库学习笔记-02关系数据库的基本理论

文章目录
  1. 关系模型概述
    1. 关系操作
    2. 关系中完整性约束
  2. 关系数据模型
    1. 关系数据结构和基本术语
      1. 候选键
      2. 主键
      3. 主属性
      4. 非主属性
      5. 全键
      6. 外键
    2. 关系的数学定义
      1. 域
      2. 笛卡儿积
      3. 关系
    3. 关系的性质
  3. 关系模型的三类完整性
    1. 实体完整性
    2. 参照完整性
    3. 用户定义完整性
  4. 关系运算
    1. 传统关系运算
    2. 专门的关系运算
      1. 等值连接
      2. 自然连接

关系数据库系统是支持关系模型的数据库系统,即以关系模型为基础而构建起来的数据库系统。

关系数据模型由关系数据结构、关系操作、关系操作三个基本部分组成。

关系模型概述

关系操作

常用关系操作包括查询(query)操作和更新操作(包括插入(insert)、删除(delete)、修改(update))两部分。

关系操作分为传统的集合运算喝专门的关系运算两部分。传统的集合运算包括并(union)、差(except)、交(intersection)、笛卡儿积。专门的关系运算包括选择(select)、投影(project)、连接(join)、除(divide)。

关系中完整性约束

对关系数据库插入、删除、修改必须有一定的约束条件。例如学生的学号必须卫衣,学生的性别只能是男或女,学生的成绩只能在0-100之间等等。

数据完整性一般分为三类:实体完整性、参照完整性、用户定义完整性。

关系数据模型

关系数据结构和基本术语

候选键

若关系中某一属性组的值能唯一地标识一个元组,则称该属性组为候选键。如学号和图书证号都可以唯一标识一个元组,所以都可以做学生的候选键。

主键

如果一个关系中有多个候选键,可以从中选择一个作为查询、插入或删除远足的操作变量,被选用的候选键称为主关键字,或简称主键、关键字。美屹关系都有且只有一个主键。

主属性

包含在任何候选键中的各属性为主属性。

非主属性

不包含在任何候选键中的属性为非主属性。

全键

在最极端情况下, 关系模式的所有属性是这个关系模式的候选键,称为全键。

外键

如果一个属性组不是所在关系的主键,但是其他关系的主键,则称为外键。

关系的数学定义

域

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

笛卡儿积

给定一组域,这些域可以是相同的域,之后让其交叉合并,形成多个元组。

比如,一组域D1,D2,D3。

D1={张三, 李四}, D2={语文, 数学}, D3={合格, 不合格}

那么D1×D2×D3= {(张三, 语文, 合格),(张三, 语文, 不合格),

​ (张三, 数学, 合格), (张三, 数学, 不合格),

​ (李四, 语文, 合格), (李四, 语文, 不合格),

​ (李四, 数学, 合格), (李四, 数学, 不合格),

​ }

如果元组个数无线叫做无限关系,如果有限叫做有限关系。

关系

笛卡儿积的子集叫做其域上的关系,可记作R(D1, D2, …, Dn)。

无限关系在数据库系统中是无意义的。所以关系必须是笛卡儿积的有限子集。它对应一张二维表,美屹行对应一个元组。

关系的性质

  1. 列是同质的,每一列中分量是同一类型数据,来自同一域,为元祖的一个属性。
  2. 不同列的数据可以来自同一个域,每一列为一个属性,不同的属性有不同的属性名。
  3. 列是无序的。
  4. 任意两个候选键不能相同(任意两行不能相同)。
  5. 行是无序的。
  6. 每个分量必须是原子值(每一列不能合并单元格)。

关系模型的三类完整性

实体完整性

一个关系的主属性不能为空值。空值是指『不存在』、『不知道』的值。

实体完整性规则说明:

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

参照完整性

参照完整性规则:

若属性F是基本关系R的外键,它与基本关系S的主键K相对应,则对于R中每个元组在F上的值必须为『空值』或『S中某个元组的主键值』。

举个栗子:

学号 姓名 班级 班长学号
2013115010101 张一 1301 2013115010102
2013115010102 李二 1301 2013115010102
2013115040401 王一 1304 2013115040402
2013115040402 刘二 1304 2013115040402

班长学号对应值,必须是学号中有的,或空值。

用户定义完整性

某一具体应用所涉及的数据必须满足的语义要求。比如姓名必须为字符型,不能为空等。

关系运算

传统关系运算

交并差,广义笛卡儿积。

专门的关系运算

  1. 选择:选择满足给定条件的诸元组,形成新的关系。
  2. 投影:关系R上选择若干属性列组成新的关系。删除重复行形成新关系。
  3. 连接:从两个关系的笛卡儿积中选取属性间满足一定条件的元组。

等值连接

关系R和S笛卡儿积中选取属性组相等的元组。

自然连接

两个关系中进行比较的分量必须是相同的属性组,并在结果中把重复的属性列去掉。