数据库关系运算之关系代数、元组演算、域演算

数据库中存储了大量的关系(表)之后,要对其进行增删查改等操作,其一般通过SQL类语言来实现,而语言实现的基础就是对关系进行一定的集合(关系代数)或逻辑处理(关系演算、域演算),然后返回处理结果。

1、关系代数:以并、差、笛卡尔积、选择、投影、更名为基本操作,以交、连接、关系除为扩展操作。

连接是比较复杂且重要的一个概念,有以下几个形式:

①、theta连接,theta为判断条件。eg:(其中theta为大于、小于、等于、不等于、大于等于、小于等于)

②、自然连接。eg:(theta连接中的默认等值连接,但是会删除RS中的相同属性栏)


③、外链接。


另一个需要说明的是除操作:

A/B,两个关系相除的前提是B是A的真子集,返回关系为A中包含关系B中的元组。


2、元组演算:

基本形式:{ t | P(t)},其中 t 为元组, P(t)为元组公式,包含3种最基本公式:

t[a] theta c,  t[a] theta t1[b]  ,  t 属于 关系R

这三种公式可以采用(按优先级排序)括号、theta、存在量词、全称量词、非、与、或,进行扩展,以实现高级操作。


3、域演算:

域演算与元组演算类似,不过谓词为域(属性)的集合,eg:

{<a,b,c,d> | P(<a,b,c,d>)}

其三种基本公式与元组演算相似,扩展操作相同。

eg:

值得注意的是,以上三种操作是可以等价互换的,其唯一不同的是谓词分别为关系、元组和域。

举一个列子来说明以上操作的组合和互换如下:(分别使用了关系代数和元组演算实现)



猜你喜欢

转载自blog.csdn.net/airuio/article/details/80545748