Home 数据库学习二 关系模型
Post
Cancel

数据库学习二 关系模型

关系模型中的基本术语

关系数据库系统是支持关系模型的数据库系统。有关关系模型的的一些基本术语如下:

  • 关系:一个关系就是一张二维表,每个关系有一个关系名
  • 元组:表中的一行即为一个元组,对应存储文件中的一个记录值
  • 属性:表中的列称为属性,每一列有一个属性名,属性值相当于记录中的数据项或者字段值
  • 域:属性的取值范围,即不同元组对同一个属性的值所限定的范围
  • 关系模式:对关系的描述称为关系模式,由关系名和其属性集合构成,关系模式的格式为:关系名(属性名 1,···,属性名 n)

通常一个关系模式对应一个关系文件的结果

  • 候选码 (候选键):属性或属性组合,其值能够唯一地标识一个元组
  • 主码 (主键):在一个关系中可能有多个候选码,从中选择一个作为主码
  • 主属性:包含在任何候选码中的属性称为主属性,不包含在任何候选码中的属性称为非主属性
  • 外码 (外键):如果一个关系中的属性或属性组并非该关系的码,但他们是另外一个关系的码,则称其为该关系的外码
  • 全码:关系模式的所有属性组是这个关系模式的候选码,称为全码
  • 超码 (超键):一个包含码的属性集称为超码

关系模型的定义

关系的描述称为关系模式,他可以形式化地表示为:R(U, D, dom, F)

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

通常简记为 R(U) 或 R(A1, A2, ···),其中 R 为关系名,U 为属性名集合,A1、··· 为个属性名

关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成

关系数据结构

关系模型中数据的逻辑关系是一张二维表格

关系操作集合

关系模型给出了关系操作的能力

常见的关系操作有:选择、投影、连接、除、并、交、差等查询操作和增加、删除操作等

关系完整性约束

关系模型中的三个完整性规则如下:

  • 实体完整性:关系中主码的值不能为空或部分为空,也就是说,主码中属性即主属性不能取空值
  • 参照完整性:如果关系 R2 的外码 X 与关系 R1 的主码相对应 (基本关系 R1 和 R2 不一定是不同的关系,即它们可以是同一个关系),则外码 X 的每一个值必须在关系 R1 中主码的值中找到,或者为空值
  • 用户定义的完整性:指用户对某一具体数据指定的约束条件进行检验

关系代数运算符

运算符 符号 含义
集合运算符


×



笛卡尔积
专门的关系运算符 σ
π

÷
选择
投影
连接
比较运算符




大于
大于等于
小于
小于等于
等于
不等于
逻辑运算符 ¬



传统的集合运算

img

专门的关系运算符

  1. 连接

连接有 θ 连接、等值连接与自然连接

  • θ 连接:连接条件不为等于
  • 等值连接:连接条件为等于
  • 自然连接:除去重复属性的等值连接。最常用的连接运算
  1. 投影

投影运算是从关系的垂直方向进行运算,在关系 R 中选出若干属性列 A 组成新的关系,记作 πA(R)

  1. 选择

选择运算是从关系的水平方向进行运算,是从关系 R 中选择满足给定条件的元组,记作 σF(R)

  1. 外连接

外连接运算是连接运算的扩展,可以处理由于连接运算而缺失的信息

  • 左外连接:取出左侧关系中所有与右侧关系中任一元组都不匹配的元组,用空值 null 填充所有来自右侧关系的属性
  • 有外连接:取出右侧关系中所有与左侧关系中任一元组都不匹配的元组,用空值 null 填充所有来自左侧关系的属性
  • 全外连接:完成左外连接和右外连接的操作
  1. 除法

符号转 SQL 语言

关系 R:

A B C
1 2 3
4 5 6
7 8 9

投影转 SQL 语言

π?(?)

1
select ? from ?

πA, B, C(R) 或者 π1, 2, 3(R)

1
select A, B, C from R

注:SQL 语言不支持列 (属性) 的序号

选择转 SQL 语言

π??(?))

1
select ? from ? where ?

πA, B, CB >= ‘5’(R)) 或者 π1, 2, 32 >= ‘5’(R))

1
2
3
select A, B, C from R where B >= '5'
# 或者
select A, B, C from R where B >= 5

笛卡尔积转 SQL 语言

πR.A, R.B, R.C, S.A, S.B, S.D(R×S)

1
2
3
4
select R.A, R.B, R.C, S.A, S.B, S.D
from R, S
# 升序排列
order by R.A asc

自然连接转 SQL 语言

关系 R(A, B, C) 与 S(B, C, D)

πR.A, R.B, R.C, S.DR.B = S.B ∩ R.C = S.C(R×S))

1
2
3
select R.A, R.B, R.C, S.D
from R, S
where R.B = S.B and R.C = S.C
This post is licensed under CC BY 4.0 by the author.

数据库学习一 数据库导论

数据库学习三 SQL 语言