数据库系统2-5:元组关系演算
文章作者 100test 发表时间 2007:03:10 17:00:11
来源 100Test.Com百考试题网
计算机等级考试训练软件《百宝箱》
在关系运算中,用谓词公式来表达查询要求的方式称为关系演算。由于用到谓词公式,必然涉及到谓词变量和谓词合适公式(well-formed formila)的问题。
在关系演算中,根据谓词变量对象的不同,可分为元组关系演算和域关系演算。其代表语言分别为Alpha和 QBE。
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是一种具体的元组关系演算语言,但是未流行。