关系模型之关系演算

Posted 计算机小白的爬坑之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关系模型之关系演算相关的知识,希望对你有一定的参考价值。

一、关系元组演算

1、关系元组演算公式的基本形式 : t | P(t)

其中 t 是元组变量, P(t) 为元组关系演算公式,简称公式。 它由原子公式和运算符组成。P(t)运算符优先次序:括弧;θ; ∃; ∀; ¬;∧;v)

2、三种形式的原子公式

  1. t ∈ R :t 是关系 R 中的一个元组,例如: t | t∈ Student
  2. s[A] θ c :元组分量s[A]与常量 c 之间满足比较关系。θ:比较运算符,<, <=,=, <>,>, >=。例如: t | t∈R ∧ t [Sage ]<=19 ∧ t [Sname] = ‘张三’
  3. s[A] θ u[B] :s[A] 与 u[B] 为元组分量,A和B分别是某些关系的属性,他们之间满足比较关系θ。例如: t | t∈Student ∧ ∃ (u ∈Student) ( t [Sage ] > u [Sage ] ) “检索出年龄不是最小的所有同学“

3、存在量词与全称量词


4、元组演算等价性变换


5、四个复杂例子




二、关系域演算

1、关系域演算公式的基本形式: < x1 , x2 , … , xn > | P ( x1 , x2 , … , xn )

其中, xi 代表域变量或常量, P为以xi为变量的公式。公式P可以递归地进行构造:

2、三种形式的原子公式

  1. < x1 , x2 , … , xn > ∈ R:其中xi 代表域变量或常量, 表示由域变量构成的< x1 , x2 , … , xn >是属于关系R的
  2. x θ c :其中,域变量x与常量c之间满足比较关系θ 。θ:比较运算符 <, <=, =, <>, >, >=
  3. x θ y:其中,域变量x与域变量y之间满足比较关系θ例子

3、关系域演算示例

4、关系域演算语言QBE

  1. 特点:操作独特,基于屏幕表格的查询语言,不用书写复杂的公式,只需将条件填在表格中即可,是一种高度非过程化的查询语言,特别适合于终端用户的使用。
  2. QBE操作框架
    关系名区:用于书写欲待查询的关系名;
    属性名区:用于显示对应关系名区关系的所有属性名;
    操作命令区:用于书写查询操作的命令;
    查询条件区:用于书写查询条件;
  3. QBE操作命令
    Print 或P. ----显示输出操作
    Delete或D.----删除操作
    Insert或I. ----插入操作
    Update或U.----更新操作
  4. 示例

条件θ参量中的参量也可以是域变量,用任何一个值(不必是结果中的值)带有下划线表示,被称为示例元素,示例元素下划线上面的值不起作用,被当作域变量名称来对待,只用于占位或是连接条件。不带下划线的则是构成实际条件一部分的值。

当书写v条件(或运算)时,可以采用在多行书写,然后在打印命令后使用不同的示例元素来表征,如下图,一行写为P.X,一行使用P.Y。

如果一批∧条件分多行书写,则相互存在A关系的行要采用相同的示例元素。

当检索涉及多个表时,可利用同一连接条件使用相同的示例元素,来实现多个表的连接。

三、关系演算的安全性

1、定义

  1. 不产生无限关系无穷验证的运算被称为是安全的。
  2. 关系代数是一种集合运算,是安全的。
  3. 关系演算不一定是安全的。

2、关系演算的约束

对关系演算施加约束条件,即任何公式都在一个集合范围内操作,而不是无限范围内操作。

四、总结

  1. 关系代数—以集合为对象的操作思维,由集合到集合的变换
  2. 元组演算—以元组为对象的操作思维,取出关系的每一个元组进行验证,有一个元组变量则可能需要一个循环,多个元组变量则需要多个循环
  3. 域演算—以域变量为对象的操作思维,取出域的每一个变量进行验证看其是否满足条件.
  4. 三种运算之间是等价的。关系代数与安全的元组演算表达式与安全的域演算表达式是等价的。即一种形式的表达式可以被等价地转换为另一种形式
  5. 三种关系运算都可说是非过程性的。相比之下:域演算的非过程性最好,元组演算次之,关系代数最差
  6. 三种关系运算虽是抽象的,但却是衡量数据库语言完备性的基础
  7. 一个数据库语言如果能够等价地实现这三种关系运算的操作,则说该语言是完备的。目前多数数据库语言都能够实现这三种运算的操作,在此基础上还增加了许多其他的操作,如赋值操作、聚集操作等

以上是关于关系模型之关系演算的主要内容,如果未能解决你的问题,请参考以下文章

关系代数 (关系模型)

关系数据库系统

关系数据库系统

数据库系统

第四周翻译

数据库--交大第二套