关系模型之关系演算
Posted 计算机小白的爬坑之路
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关系模型之关系演算相关的知识,希望对你有一定的参考价值。
关系模型之关系演算
一、关系元组演算
1、关系元组演算公式的基本形式 : t | P(t)
其中 t 是元组变量, P(t) 为元组关系演算公式,简称公式。 它由原子公式和运算符组成。P(t)运算符优先次序:括弧;θ; ∃; ∀; ¬;∧;v)
2、三种形式的原子公式
- t ∈ R :t 是关系 R 中的一个元组,例如: t | t∈ Student
- s[A] θ c :元组分量s[A]与常量 c 之间满足比较关系。θ:比较运算符,<, <=,=, <>,>, >=。例如: t | t∈R ∧ t [Sage ]<=19 ∧ t [Sname] = ‘张三’
- 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、三种形式的原子公式
- < x1 , x2 , … , xn > ∈ R:其中xi 代表域变量或常量, 表示由域变量构成的< x1 , x2 , … , xn >是属于关系R的
- x θ c :其中,域变量x与常量c之间满足比较关系θ 。θ:比较运算符 <, <=, =, <>, >, >=
- x θ y:其中,域变量x与域变量y之间满足比较关系θ例子
3、关系域演算示例
4、关系域演算语言QBE
- 特点:操作独特,基于屏幕表格的查询语言,不用书写复杂的公式,只需将条件填在表格中即可,是一种高度非过程化的查询语言,特别适合于终端用户的使用。
- QBE操作框架:
关系名区:用于书写欲待查询的关系名;
属性名区:用于显示对应关系名区关系的所有属性名;
操作命令区:用于书写查询操作的命令;
查询条件区:用于书写查询条件; - QBE操作命令:
Print 或P. ----显示输出操作
Delete或D.----删除操作
Insert或I. ----插入操作
Update或U.----更新操作 - 示例:
条件θ参量中的参量也可以是域变量,用任何一个值(不必是结果中的值)带有下划线表示,被称为示例元素,示例元素下划线上面的值不起作用,被当作域变量名称来对待,只用于占位或是连接条件。不带下划线的则是构成实际条件一部分的值。
当书写v条件(或运算)时,可以采用在多行书写,然后在打印命令后使用不同的示例元素来表征,如下图,一行写为P.X,一行使用P.Y。
如果一批∧条件分多行书写,则相互存在A关系的行要采用相同的示例元素。
当检索涉及多个表时,可利用同一连接条件使用相同的示例元素,来实现多个表的连接。
三、关系演算的安全性
1、定义
- 不产生无限关系和无穷验证的运算被称为是安全的。
- 关系代数是一种集合运算,是安全的。
- 关系演算不一定是安全的。
2、关系演算的约束
对关系演算施加约束条件,即任何公式都在一个集合范围内操作,而不是无限范围内操作。
四、总结
- 关系代数—以集合为对象的操作思维,由集合到集合的变换
- 元组演算—以元组为对象的操作思维,取出关系的每一个元组进行验证,有一个元组变量则可能需要一个循环,多个元组变量则需要多个循环
- 域演算—以域变量为对象的操作思维,取出域的每一个变量进行验证看其是否满足条件.
- 三种运算之间是等价的。关系代数与安全的元组演算表达式与安全的域演算表达式是等价的。即一种形式的表达式可以被等价地转换为另一种形式
- 三种关系运算都可说是非过程性的。相比之下:域演算的非过程性最好,元组演算次之,关系代数最差
- 三种关系运算虽是抽象的,但却是衡量数据库语言完备性的基础
- 一个数据库语言如果能够等价地实现这三种关系运算的操作,则说该语言是完备的。目前多数数据库语言都能够实现这三种运算的操作,在此基础上还增加了许多其他的操作,如赋值操作、聚集操作等
以上是关于关系模型之关系演算的主要内容,如果未能解决你的问题,请参考以下文章