σF(E):E一个表达式(基本表达式或表达式中间结果)。F是关于E中属性的断言,相当于where从句中限制条件(Restrict操作)
ΠA(E):E一个表达式,A是E属性的子集,相当于select从句(Projection操作)
ρX(E):E一个表达式,X是E表达式结果的重命名
8.2 关系代数操作符
(1)基本算符
F断言中能够有逻辑运算符(与或非:∧、∨、?)以及关系运算符(=,>,<,≥,≤,≠)
有集合运算符(并、交、差、笛卡尔乘积):∪,∩,?,×
左箭头←为赋值操作
(2)Join操作
定义关系模式R(A,B,C,D)和S(E,B,D)的实例r、s的自然连接为:
r?s=Πr.A,r.B,r.C,r.D,s.E(ρr.B=s.B∧r.D=s.D(r×s))
(3)除操作
定义关系模式R(A1,...,Am,B1,...,Bn)和S(B1,...,Bn)的实例r、s的除法结果(商)为:
R?S={A1,...,Am}r÷s={t|t∈ΠR?S(r)∧?u∈s(tu∈r)}
用全然的关系代数表示为:
r÷s=ΠR?S(r)?ΠR?S(ΠR?S(r)×s?ΠR?S,S(r))
(4)聚合操作
聚合函数定义如SQL。包含了avg、min、max、sum、count等,形式化的关系代数聚合操作为:
G1,G2,...,GngF1(A1),...,Fm(Am)(E)
当中G1,G2,...,Gn是能够为空的group by
。Fi是作用在属性Ai上的聚合函数
8.3 关系代数数据库改动
(1)删除
删除操作的形式化定义为r←r?E,当中r是关系实例,E是关系代数查询表达式
(2)插入
插入操作的形式化定义为r←r∪E,当中r是关系实例,E是关系代数查询表达式或者常量元组集合
(3)更新
更新用Projection操作赋值给关系变量就可以
CH9 关系演算
9.1 关系演算
关系演算是SQL、关系代数之外的又一种描写叙述数据库操作的形式化语言,关系演算基本操作对象是范围变量(Range Variable,是关系变量/表的逻辑表达的别称)
关系演算基本的语法为:
1.范围变量定义
<Range va