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

文章目录
  1. 关系模型概述
    1. 关系操作
    2. 关系中完整性约束
  2. 关系数据模型
    1. 关系数据结构和基本术语
      1. 候选键
      2. 主键
      3. 主属性
      4. 非主属性
      5. 全键
      6. 外键
    2. 关系的数学定义
      1. 笛卡儿积
      2. 关系
    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笛卡儿积中选取属性组相等的元组。

自然连接

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