四 关系模型之关系代数

关系代数的重点

  • 关系代数基本操作 : 并、差、积、选择、投影、(更名)
  • 关系代数扩展操作 : 交、θ-连接、自然连接
  • 关系代数复杂扩展操作 : 除、外连接
  • 书写关系代数的基本思维训练 : “一个集合,施加一个操作得到一个集合,依次 施加关系代数操作,进而得到所需结果” “以集合为中心”
  • 关系代数操作以一个或多个关系为输入,结果是一个新的关系
  • 用对关系的运算来表达查询,需要指明所用操作, 具有一定的过程性

约束

某些关系代数操作,如并、差、交等,需满足“并相容性”(参与运算的两个关系及其相关属性之间有一定的对应性、可比性或意义关联性)(也就是不能随意两张表)

并相容性

关系R与关系S存在相容性,当且仅当
- 关系R和关系S的属性数目必须相同
- 对于任意i,关系R的第i个属性的域必须和关系S的第i个属性的域相同(对应域相同)

也就是说,

假设:

R(A1, A2, ... , An) , S(B1, B2, ... ,Bm)

R和S满足并相容性:

n = m 并且 Domain(Ai) = Domain(Bi)

并相容性的示例

STUDENT(SID char(10), Sname char(8), Age char(3))

PROFESSOR(PID char(10), Pname char(8), Age char(3))

关系STUDENT与关系PROFESSOR是相容的,因为:

  1. 关系R和关系S的属性数目都是3
  2. 关系R的属性SID与关系S的属性PID的域都是char(10)
  3. 关系R的属性Sname与关系S的属性Sname的域都是char(8)
  4. 关系R的属性Age与关系S的属性Age的域都是char(3)

关系代数之基本操作

并(Union)

  • 定义:假设关系R和关系S是并相容的,则关系R与关系S的并运算结果也是一个关系,记作:R∪S, 它由或者出现在关系R中,或者出现在S中的元组构成
  • 数学描述: R∪S ={ t | t∈R ∨ t∈S } ,其中t是元组
  • 并运算是将两个关系的元组合并成一个关系,在合并时去掉重复的元组
  • R∪S 与 S∪R 运算的结果是同一个关系

”并“举例

汉语中的“或者…或者…”通常意义是并运算的要求

差(Difference)

  • 定义:假设关系R和关系S是并相容的,则关系R与关系S的差运算结果也是一个关系,记作:R-S, 它由出现在关系R中但不出现在关系S中的元组构成。
  • 数学描述:R-S ={ t | t∈R ∧ t∉S },其中t是元组
  • R-S 与 S-R 是不同的

”差“举例

汉语中的“是…但不含…”通常意义是差运算的要求。

广义笛卡尔积(Cartesian Product)

  • 定义:关系R (

“广义笛卡尔积“举例

关系R的元组数目是3,度数是3;

关系S的元组数目是4, 度数是3;

则RxS的元组数目是12(3 * 4), 度数是6(3 + 3)

当一个检索涉及到多个表时(如学生表和课程表),便需要将这些表串接或拼接起来,然后才能检索,这时,就要使用广义笛卡尔积运算

选择(Select)

  • 定义:给定一个关系R,同时给定一个选择的条件condition(简记con),选择运算结果也是一个关系,计作σ(下标:con)(R),它从关系R中选择出满足给定条件condition的元组构成。
  • 数学描述: σ(R) ={ t | t∈R ∧ con(t)=true } ,其中t是元组
  • 设R(A1 ,A2 , … ,An), t是R的元组, t 的分量记为t[Ai], 或简写为Ai
  • 条件con由逻辑运算符连接比较表达式组成
    • 逻辑运算符: ∧, ∨, ┒(或写为 and, or, not)
    • 比较表达式:XΘY, 其中X, Y是t的分量、常量或简单函数, Θ是比较运算符, Θ∈{ >, ≥, <, ≤, =, ≠}

”选择“举例

选择操作从给定的关系中选出满足条件的行

条件的书写很重要,尤其是当不同运算符在一起时,要注意运算符的优先 次序,优先次序自高至低为{ 括号; Θ; ┒; ∧; ∨}

投影(Project)

  • 定义:给定一个关系R, 投影运算结果也是一个关系,记作 π(下标:A)(R) , 它从关系R中选出属性包含在A中的列构成。
  • 数学描述: π(下标:Ai1, Ai2, ... ,Aik)(R) = { <t[Ai1], t[Ai2],...,t[Aik]> | t∈R } ,其中t是元组

”投影“举例

用户可以根据需要通过投影、选择操作,查询他所关心的数据信息。

关系代数之扩展操作

交(Intersection)

  • 定义:假设关系R和关系S是并相容的,则关系R与关系S的交运算结果也是一个关系, 记作: R∩S, 它由同时出现在关系R和关系S中的元组构成。
  • 数学描述: R∪S ={ t | t∈R ∧ t∈S } ,其中t是元组
  • R∩S 和 S∩R 运算的结果是同一个关系

”交“举例

汉语中的“既…又…”,“…, 并且…”通常意义是交运算的要求

猜你喜欢

转载自blog.csdn.net/somniloquy_/article/details/82391433