关系运算总结
三种关系运算:
- 关系代数:以集合为对象的操作思维,由集合到集合的变换
- 元组演算:以元组为对象的操作思维,取出关系的每一个元组进行验证,有一个元组变量则可能需要一个循环,多个元组变量则需要多个循环
- 域演算:以域变量为对象的操作思维,取出域的每一个变量进行验 证看其是否满足条件
性质:
- 三种运算之间是等价的,即一种形式的表达式可以被等价地转换为另一种形式
- 非过程性:域演算>元组演算>关系代数(好→差)
- 三种关系运算虽是抽象的,但却是衡量数据库语言完备性的基础,一个数据库语言如果能够等价地实现这三种关系运算的操作,则说该语言是完备的,目前多数数据库语言都能够实现这三种运算的操作,在此基础上还增加了许多其他的操作,如赋值操作、聚集操作等
数据库语言可以基于这三种抽象运算来设计,例子如下:
安全性:
关系代数是一种集合运算,是安全的,因为集合本身是有限的,有限元素集合的有限次运算仍旧是有限的
关系演算不一定是安全的,例子如下:
安全元组演算表达式:
总结: