数据库复习——*关系演算(元祖演算与域演算)
前言
非重点的关系演算
正文
元祖演算
关系元组演算是以元组变量作为谓词变量的基本对象
-
基本形式
{ t | P(t) }
P(t)可以是如下三种形式之一的原子公式:
-
t ∈ R
t 是关系 R 中的一个元组,例如: { t | t∈ Student} -
s[A] θ c
元组分量s[A]与常量 c 之间满足比较关系.
θ:比较运算符,<, <=,=, <>,>, >=
例如: { t | t∈Rt [Sage ] <= 19∧ t [Sname ] = ‘张三’ } -
s[A] θ u[B]
s[A] 与 u[B] 为元组分量,A和B分别是某些关系的属性,他们之间满足比较关系θ.
例如: { t | t∈Student∧ ∃ (u ∈Student) ( t [Sage ] > u [Sage ] ) } “检索出年龄不是最小的所有同学”
-
P(t)运算符优先次序
-
存在量词∃与全称量词∀
域演算
关系域演算公式的基本形式: { < x1 , x2 , … , xn > | P ( x1 , x2 , … , xn ) }其中, xi 代表域变量或常量, P为以xi为变量的公式。公式P可以递归地进行构造:
三种形式的原子公式是公式
- < x1 , x2 , … , xn > ∈ R。 其中xi 代表域变量或常量, 表示由域变
量构成的< x1 , x2 , … , xn >是属于关系R的 - x θ c。 其中,域变量x与常量c之间满足比较关系θ 。θ:比较运算
符 <, <=, =, <>, >, >= - x θ y。其中,域变量x与域变量y之间满足比较关系θ
例子
QBE语言
- 基本部分
- 关系名区:用于书写欲待查询的关系名
- 属性名区:用于显示对应关系名区关系的所有属性名
- 操作命令区:用于书写查询操作的命令
- 查询条件区:用于书写查询条件
-
QBE的操作命令
更新操作
查询操作
-
QBE的查询条件----不同属性上的与条件
QBE不同属性上的与条件可以写在同一行中 -
QBE的查询条件----示例元素与投影
条件 θ 参量中的参量也可以是域变量,用任何一个值(不必是结果中
的值)带有下划线表示,被称为示例元素. 示例元素下划线上面的值不
起作用,被当作域变量名称来对待,只用于占位或是连接条件。不带下
划线的则是构成实际条件一部分的值。 -
QBE的查询条件----用示例元素实现‘与’运算和‘或’运算
当书写 ∪ 条件(或运算)时,可以采用在多行书写,然后在打印命令后使用不
同的示例元素来表征,如下图, 一行写为P.X, 一行使用P.Y。
如果一批 ∩ 条件分多行书写,则相互存在∩关系的行要采用相同的示例元素 -
QBE的查询条件----相当于括号的条件表示
-
QBE的查询条件----用示例元素实现多个表的连接
当检索涉及多个表时,可利用同一连接条件使用相同的示例元素,来实现多个表的连接.