在关系运算中,用谓词公式来表达查询要求的方式称为关系演算。由于用到谓词公式,必然涉及到谓词变量和谓词合适公式(well-formed formila)的问题。
在关系演算中,根据谓词变量对象的不同,可分为元组关系演算和域关系演算。其代表语言分别为alpha和 qbe。 =Us
:T${'pN`WE [ 本 资 料 来 源 于 贵 州 学 习 网 IT认证全国计算机等级考试 http://Www.gzU521.com ] =Us
:T${'pN`WE
2.5.1.1元组关系演算的定义
在元组关系演算中,关系演算的谓词变量是元组变量。我们称:
{t|f(t)} 为元组演算表达式,一个元组演算表达式表示一个关系。其中,t是元组变量,f(t)为元组关系演算公式,即元组关系演算合适公式,简称公式。公式由原子谓词公式和运算符组成。
元组关系演算的原子谓词公式有三类:
元组关系演算公式的递归定义如下:
例如已知关系r、s如下:
求 r1={t|r(t) ùt[2]≥2}
r2={t|($u(r(t) ùs(u) ùt[2]≥u[2])}
2.5.1.2用元组演算表示关系代数的五种基本运算
关系代数运算都可以用等价的元组关系演算表达式表示。现以五种基本关系代数运算表达式为例,说明关系代数表达式与元组关系演算表达式的等价关系。若能证明这五种基本运算与元组关系演算等价,则其它关系代数表达式与元组关系演算等价也就不言而喻了。
(1) 并
(2) 差
证明:同上。
(3) 笛卡儿积
r′s={t(n+m) | ($u(n))($v(m))(r(u) ùs(v) ùt[1]=u[1]ù...ùt[n]=u[n]ùt[n+1]=v[1]ù... ùt[n+m]=v[m])}
其中t(n+m) 表示t有n+m目(分量)。
证明:因为r′s={ tr? ts | tr?rù ts ?s},t=( tr? ts)等价t[1]= tr[1] ù t[2]= tr[2] ù...ù t[n]= tr[n] ù t[n+1]= ts[1] ù t[n+2]= ts[2] ù...ù t[n+m]= ts[m]。所以 t[i] ∈r (i=1,2,…n)等价于r(u)第 i个分量,t[j] ∈s (j=n+1,n+2,….,n+m)等价于s(v)的第j-n个分量。经等价代换,等价式得证。
(4) 投影
?i1,i2,…ik(r)={t(k)| ($u)( r(u)ùt[1]=u[i1]…ùt[k]=u[ik])}
证明从略。
(5) 选择
σ-f( r )={t|r(t) ùf′}
f′是公式,是用运算对象i代替关系代数f中的t[i]得到的等价公式。
alpha是一种具体的元组关系演算语言,但是未流行。