关系代数
关系代数中基本的表达式是如下二者之一:数据库中的一个关系,一个常数关系。关系代数中一般的表达式是由更小的子表达式构成,设E1和E2是关系代数表达式,则E1∪E2,E1−E2,E1×E2,σp(E1), Πs(E1) , ρx(E1)都是关系代数表达式
是过程化查询语言
基本运算
选择:σp(r)={t|t∈r and p(t)}
- 选择谓词p中可以使用
= , ≠, >,≥ , <, ≤, and(∧), or(∨), not(¬) 将多个谓词合并成一个较大的谓词
投影:ΠA1,A2,…,An(r)
- 由于关系是一个集合,所以所有重复的行均被去除
并:r∪s={t|t∈r or t∈s}
- 要使r∪s有意义(即r和s是相容的),需要下面两个条件同时成立
- 关系r和关系s必须是同元的,即属性的数目必须相同
- 对所有的i, r的第i个属性的域必须和s的第i个属性的域相同
集合差:r–s={t|t∈r and t∉s}
- 要使r−s有意义(即r和s是相容的),需要下面两个条件同时成立
- 关系r和关系s必须是同元的,即属性的数目必须相同
- 对所有的i, r的第i个属性的域必须和s的第i个属性的域相同
笛卡尔积:r×s={tq|t∈r and q∈s}
- 假设r(R)和s(S)的属性是不相交的(即R∩S=ϕ)
- 如果r(R)和s(S)的属性相交,则必须使用重命名
更名运算:ρx(A1,A2,...,An)(E)
- 返回表达式E的结果,并赋给名字x,同时将属性更名为
A1,A2,…,An
附加的运算——可以用基本运算表达
- 集合交:r∩s={t|t∈r and t∈s}=r–(r–s)
- 自然连接:r⋈s=ΠR∪S(σr.A1=s.A1∧r.A2=s.A2∧…,∧r.An=s.An(r×s)),,其中R∩S={A1,A2,…,An}
- 交换律
- 结合律
- theta连接:r⋈θs=σθ(r×s)
- 外连接
- 左外连接:r ⟕ s=r⋈s∪(r−ΠR(r⋈s))×{null,null…,null}
- 右外连接:r⟖s=r⋈s∪({null,null…,null}×(s−ΠR(r⋈s))
- 全外连接:r⟗s=r⋈s∪()(r−ΠR(r⋈s))×{null,null…,null})∪({null,null…,null}×(s−ΠR(r⋈s)))
- 赋值运算:temp←E1
- 只能对临时关系变量赋值
扩展的运算——扩展了关系代数的表达能力
- 广义投影:ΠF1,F2,…,Fn(r)
- Fi可以包含+,
− , ∗,/ 代数运算和字符串串接
- Fi可以包含+,
- 聚集:G1,G2,…,Gn
本文介绍了关系代数的基本概念,包括选择、投影、并集、差集等操作,并详细解释了这些操作如何应用于数据库查询。

被折叠的 条评论
为什么被折叠?



