首页 > 编程知识 正文

数据库知识关系代数,数据库关系代数计算

时间:2023-05-06 11:10:19 阅读:162818 作者:2084

超详细分析,因为难以下手,转载后注明出处,点赞后转发。 谢谢您的支持

关系代数为抽象查询语言关系代数的运算对象运算结果均为3358www.Sina.com/,运算结果也为关系

集合运算

将关系视为元组的集合,将元组作为集合中的要素进行集合运算

集合运算为典型的3358www.Sina.com/(笛卡儿积除外)、交、差操作均为关系

具有相同程度(即两个关系的属性名称、属性数量必须一致);

关系r的第I个属性和关系s的第I个属性必须来自同一个域。

并(Union )运算: r(s={t|t(r(t(s} )其中t是元组

并行运算示例:结合两个集合,消除重复

R S=

(交互)运算:新关系其中t是元组

运算示例:在两个关系中选择相同的元组

R S=

差运算:二目运算其中t是元组,R-S差=R减去r与s的交集

差运算例: R-S之差=从r中减去r和s的交点

R - S=

笛卡儿积:相容性域的笛卡儿积=域的基数相乘

而且,集合的笛卡儿积也是如此。 将集合内的元组个数视为域的基数进行乘法运算的话,可以得到集合的笛卡儿积

笛卡儿积的例子: r中的3组 S中的3组=9,诞生的新关系有9组

R S=

关系运算

选择(selection )运算:f(r )={t|t(r(f ) t )=‘真’}

r从关系表中选择与关系f相应元组t

选择运算例(根据t关系选择年龄在18岁以上的男性

(sex=‘男人’(age 18 ) ) t )=

射影(projection (运算) a(r )={ t[A]| tR }从r关系表内射影各元组的a列,构成新的关系

投影演算例:投影t关系中的名称、年龄2列

(Name,age(t )=

选择投影组合运算。 a(f(r ) )可以从特定组投影特定列

从r关系中选择满足f条件的元组,从这些元组内投影特定的a列

选择投影组合演算例:选择t关系年龄在18岁以上的男性,投影该关系的名称、年龄2列

(Name,age((sex=‘男人’(age 18 ) ) t ) )=

连接(join ) :两种连接,也称为连接,使用公共属性连接两个表

等值连接: r.a=s.b(a、b属性名称可以不同也可以相同)R S = { t | tR tS }

这里,r和s是关系表,a、b分别是关系r、s上的可比较属性组(a、b的两个属性组的域相同,称为可比较属性组) )。

称为比符号,即、=符号;

当两边属性相等时,等值s连接成立;

等值连接的结果是,从关系r和关系s的笛卡儿积中选择属性组AB相等的组,即(a=b ) (RS )

等值连接示例:学生关系s和课程关系c等值连接

(sc=(ts (TC|ts ) (TC (c (ts [ cno ]=TC [ cno ] ) )公式

结果,可以认为从SC的笛卡儿积内选择了S.CNO=C.CNO的组,(CnO=CnO ) ) SC )

自然连接: R.A=

S.A(必须有相同的属性名且域相同才可以进行自然连接)

    语法:R ⋈S = { tr ⌒ ts | tr ∈ R ∧ ts ∈ S ∧ tr[A] = ts[A] }

特殊的等值连接,比较的分量必须是同一属性组

在等值连接的基础上去掉重复的属性列


自然连接实例:学生关系S 与 课程关系C进行自然连接




公式:S ⋈ C = { ts ⌒ tc | ts ∈ S ∧ tc ∈ C ∧ ts[CNO] = tc[CNO] }

  

自然连接与等值连接的区别与联系

⊙自然连接要求同名同域的属性组才可连接,而等值连接仅要求域相同;
⊙自然连接是去掉重复列的等值连接;
⊙自然连接一定是等值连接,而等值连接不一定是自然连接;
⊙自然连接后列的数量小于等于等值连接后列的数量。



 除法(division)运算:R ÷ S = { tr[X] | tr∈R ∧ ∏y(S)⊆YX }

除运算核心步骤:设R、S为关系,X、Y、Z为属性集

1. 分出X、Y、Z三个属性集
2. 列出S对Y属性集的投影
3. 找出R中满足x值对应的象集包含了关系S对Y属性集的x值

  除法运算需满足的条件:设有关系R(X,Y)、S(Y,Z),其中X,Y,Z为属性集合,R中的Y与S中的Y可以有不同的属性名,但对应的属性组必须来自同一域

由于除运算比较抽象难理解,在此详细解析(结合图解):
    关系R和关系S共有的属性集是Y,而R÷S得到的值就是关系R对Y属性组的投影,即X属性组(S关系内没有的),而这X属性组还需满足特定条件(元组在X属性组上的分量值x的象集YX包含了S对Y属性组的投影集合)。



除运算图解:除法举例

按步骤来求R÷S:
①分出X、Y、Z三个属性集:X属性集是R特有的,Y为公共的,Z为S特有的;
②求出S对Y属性集的投影:∏C,D(S)=
得到投影∏C,D(S) = { (c4,d5) , (c3,d5) };
③列出X属性组的全部x分量的象集,看下哪个象集包含了第②步求到的投影,那么这些x分量就是R÷S的商:

在R中,X属性组可取分量x:{ (a1,b2) , (a2,b4) , (a3,b5) }

 (a1,b2)对应象集:{ (c4,d5) , (c3,d5) };
 (a2,b4)对应象集:{ (c1,d3) };
 (a3,b5)对应象集:{ (c2,d8) };
只有(a1,b2)的象集YX包含了S对Y属性集的投影集合
故R÷S = {(a1,b2)}

图片有错:CD改为AB

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。