数据库原理——第二章:关系数据库

参考书目《数据库系统概论(第5版)》

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

关系数据库是支持关系模型的数据库系统 关系模型是由三部分组成:关系数据结构关系操作集合关系完整性约束

关系

  • 是一组具有相同数据类型的值的集合。属性的取值范围来自某个域
  • 一个域允许的不同取值个数称为这个域的基数
  • 某一属性组的值能唯一的标识一个元组,而其子集不能,则称该属性组为候选码
  • 若一个关系中有多个候选码,则选定其中一个为主码
  • 关系模式的所有属性是这个关系模式的候选码,称为全码
    元组:表中的一行
    码:表中的某个属性组,它可以唯一确定一个元组

关系模式

关系模式是对关系的描述,关系模式是型,关系是值 定义: 关系的描述称为关系模式。它可以形式化的表示为R(U,D,DOM,F)

  • R为关系名
  • U为组成该关系的属性名集合
  • D为U中属性所来自的域
  • DOM为属性向域的映像集合
  • F为属性间数据的依赖关系集合

关系操作

常用的关系操作:查询和插入、删除和修改
传统的集合运算:并、差、交、笛卡尔积
专门的关系运算:选择、投影、连接、除运算
结构化查询语言(Structured Query Language, SQL)


关系的完整性

关系模型的完整性规则是对关系的某种约束条件
关系模型中有三类完整性约束:实体完整性参照完整性用户定义的完整性

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

关系代数

传统的集合运算:并、差、交、笛卡尔积
专门的关系运算:选择、投影、连接、除运算

  1. 选择(取行)
    选择又称为限制。它是在关系R中选择满足给定条件的诸元组
  2. 投影(取列)
    从R中选择出若干属性列组成新的关系
    投影后可能会取消某些元组,因为取消了某些属性列之后可能会出现重复行,应取消相同的行
    不能只简单的理解为取列,投影操作还可以获得某属性的所有取值的集合
  3. 连接
    它从两个关系的笛卡尔积中选取属性间满足一定条件的元组
    自然连接是一种特殊的等值连接。它要求两个关系中进行比较的分量必须是同名的属性组,并且在结果中把重复的属性列去掉
    在做自然连接时,可能会舍弃某些元组,这些元组被称为悬浮元组
  4. 除运算
    设关系R处以关系S的结果为关系T,则T包含所有在R但不在S中的属性及其值,且T的元组与S的元组的所有的组合都在R中