关系演算是以数理逻辑中的谓语演算为基础的。按谓语变化的不同,关系演算可分为元组关系演算和域关系演算。
1. 元组关系演算语言 ALPHA
元组关系演算以元组变量作为谓词变元的基本对象。ALPHA语言主要有GET,PUT,HOLD,UPDATE,DELETE,DROP6条语言,语句的基本格式为:
{操作语句 工作空间名 (表达式):操作条件}
其中表达式用于指定语句的操作对象,他可以说是关系名或(和)属性名,一条语句可以同时操作多个关系或多个属性。操作条件是一个逻辑表达式,用于将操作结果限定在满足的元组中,操作条件可以为空。除此之外,还可以在基本格式的基础上加上排序要求以及指定返回元组的条数等。
(1) 检索操作
检索操作用GET语句实现。检索操作包括:简单检索(即不带条件的检索),例如:
GET W (SC.Cno)
W为工作空间名。这里条件为空,表示没有限定条件。
还有限定检索(即带条件的检索);带排序的检索;指定返回元组条数的检索;用元组变量的检索;用存在量词的检索;带有多个关系的表达式的检索;用全称量词的检索;用两种量词的检索;用两种量词的检索;聚集函数等。
(2) 更新操作
- 修改操作
修改操作用UPDATE语句实现。其步骤是:
a . 首先用HOLD语句将要修改的元组从数据库中读到工作空间中;
b . 然后用宿主语言在工作空间中建立新元组;
c . 最后再用UPDATE语句将修改后的元组送回数据库中。
- 插入操作
插入操作用PUT语句实现。其步骤是:
a . 首先用宿主语言在工作空间中间建立新元组;
b . 然后用PUT语句插入该元组。
- 删除操作
删除操作用DELETE语句实现。其步骤为:
a . 用HOLD语句把要删除的元组从数据库中读到工作空间中;
b . 用DELETE语句删除该元组。
2.元组关系演算
在元组关系演算系统中,称{ t | φ ( t ) } 为元组演算表达式。其中t是元组变量,φ (t) 为元组关系演算公式,简称公式,它由原子公式和运算符组成。
(1) 原子公式的分类
- R ( t )
R是关系名,t是元组变量。R(t)表示t是R中的元组。于是,关系R可表示为{ t | R ( t ) }。
- t [ i ] θ u [ j ]
t和u是元组变量,θ是算术比较运算符。t[i]θu[j]表示断言元组t的第i个分量与元组的第i个分量满足比较关系θ。
- t [ i ] θ c 或 c θ t [ i ]
这里c是常量,该公式表示t的第i个分量与常量c满足比较关系θ。
(2) 元组运算符的优先次序
a . 算是比较运算符最高。
b . 量词次子且∃的优先级高于∀的优先级。
c . 逻辑运算符最低,且|的优先级高于八的优先级,∧的优先级高于∨的优先级。
d . 加括号时,括号中运算符优先,同一括号内的运算符之优先级遵循a,b,c各项。
3. 域关系演算语言QBE
关系演算的另一种形式是域关系演算。域关系 演算以元组变量(即域变量)作为谓词变元的基本对象。QBE是QueryBvExample(即通过例子进行查询)的简称,它最突出的特点是操作方式。QBE中实例元素来表示查询结果可能的情况,实例元素实质上就是域变量。