数据库考点之关系代数表达
关系代数这部分虽然在2019年10月14日《软考考点之数据库关系运算符含义的理解》中有所涉及,但是相当的不全面的,也很不系统。
1、关系代数的存在的意义:
关系代数(代数方式)、元组关系演算与域关系演算(逻辑方式)代表着关系操作能力,均是抽象的查询语言。用来评估查询语言能力的标准或基础。
2、关系代数操作符:
注:标出的是五种基本的关系操作符,其他操作都由基本操作来定义或导出。
比较和逻辑操作符是专门用来辅助 :“专门的关系运算符”。
3、关系代数之集合运算符
主要是从行的角度进行操作的,并且都是二元操作(都是两个操作数(关系)参与)。
并:书写形式为:R3=R1 U R2,含义为:属于R1和R2,去掉重复元组后的集合R3.
差:R3=R2-R1;含义与概率论一样。
交:R3=R1 ∩ R2;
笛卡尔积:R3=R1 X R2;含义为:R1为m元关系,R2为n元(列)关系,则积为(m+n)个分量的元组,且有mXn个元组。
4、关系代数之专门关系运算符:不仅是行,还有列的操作。
一元操作符,选择和投影,结果是产生一个新的关系,是分解关系的有效方法
选择:表示为σF(R),读作:西格玛 F是条件表达式,R是关系名 形式为:select 关系名 where 条件
投影:πA(R);读作:派 A是属性列,R是关系名。形式为:projection 关系名(属性名1...)
两元操作符:
连接:读作:西塔,R、S是不同的关系,i代表R的第i列,j代表S的第j列。 θ代表比较运算符。含义为:从R X S中选择第i列与第j列满足 θ的元组,组成一个新的关系。形式为 join 关系名1 and 关系名2 where 条件
其中,自然连接是构造新关系有效方法。何为自然连接呢?
前提还是要有笛卡尔积,从积中找出相同属性列,并把重复的列去掉。得到相同属性列所在笛卡尔积元组即为新的自然连接关系。详见:《软考考点之数据库关系运算符含义的理解》中的例子
除:R1 ÷ R2。若被除有m元关系,除关系为n元关系,则运算结果为m-n元关系。一般来说商关系包含除关系的所有元组,否则就得不到新关系。