您的位置:首页 > 其它

关系代数基本运算

2015-09-13 22:11 351 查看
基本运算:

1. 并(Union,表示为U):两个表或集合的联合。

例:R1=(A,B),R2=(B,C,D)。

则R1UR2=(A,B,C,D)。

注:U集里不包含重复的属性。

2. 差(Difference,表示位-):两个表或集合的区别。

例:R1=(A,B),R2=(B,C,D)。

则R1-R2=(A)。

注:-集里的元素个数不能大于初始。

3. 笛卡儿积(Product,表示为X):两个表或集合的组合个数。

例1:R1=(A,B),R2=(B,C,D)。

则R1xR2=(AB,AC,AD,BB,BC,BD)。

注:R1xR2集的元素个数为R1的元素个数乘R2的元素个数;

例2:求S1和S2的笛卡儿积?



得:



4. 投影(Project,表示为π):从表中抽取特定的列值。

表达式:πM(R)={ t(M) |t∈R
}.

释义:R表示一个关系表;

T表示R中的一条横向的记录;

M表示T中的M列的交叉属性值;

πM(R)={ t(M) |t∈R
}表示在关系表R中T行M列的一个属性值;

例:如上图中S1和S2.求πsno,sname(S1)?

既求S1表中列为Sno,和Sname的值。

结果如图:

5. 选择(Select,表示为σ--Sigma):从表中选取与给定条件相符的行。

表达式:σA=a(R)={ t(A)=a |t∈R
}.

A表示R表中的一个字段或属性类型;

t∈R表示R表中的一条记录;

t(A)=a表示记录t中A属性的具体值等于a;

σA=a(R)={ t(A)=a |t∈R
}表示在R表中选择A=a的一条记录;

例:给出S 1和S2两张(见上图)表。求S1中Sno=
No003的那条记录?



6.交(Intersection,∩):两个及以上的集合或表中具有相同属性的集合。

7.联接(join,表示为▷◁):通过共同属性连接两个表。

表现在数据库中简单来说是通过字段值相同的条件下,将两个表中的记录连接在一起。

例:给出表S1和S2,求S1▷◁S2


既求 S1中是否有和S2中属性值相同的记录,有则连接;

8.除(Division,表水为÷):除运算需要满足两个条件:表R和表S的属性集合要有相同性;R÷S的商是R和S非相同属性集合的一个投影的子集,该子集和S的笛卡尔积必须包含在R中。

例:求R÷S?

给出表

第一步:具有相同的属性集

R=(ABCD),S=(CD)----具有相同的属性集(CD);

第二步:非相同属性集合的投影;

R1=(AB)



第三步:该子集(R1)和S的笛卡尔积必须包含在R中.

R1和S的笛卡尔积图为:

和R比较发现R1中只(c,a)和S的笛卡尔积不在R中,所以删掉,最终的图:

此为R÷S的商。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: