关系代数基本运算
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的商。
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的商。
相关文章推荐
- Android引导页控件 补充
- 自定义 View 3d翻转动画 android
- c++11——改进容器性能
- JQueryEasyUI datagrid框架的基本使用
- Java tomcat 环境变量设置
- STL之set_union、set_intersection、set_difference、set_symmetric_difference
- Lua动态生成代码
- ComposeShader组合渲染
- HDU-2955 Robberies
- Javascript中没有块级作用域(模仿)
- Javascript中没有块级作用域(模仿)
- android入门(八) 状态栏通知(消息推送) Notification
- GIT问题,error:src refspec master does not match any
- hdu 5446 Unknown Treasure 2015 长春网络赛 组合数对大合数取模 数论
- HTML5 画布
- 喜欢到底是什么样子呢
- PHP的常量及变量
- [LeetCode-88] Merge Sorted Array(合并有序数组)
- HTML5 鼠标拖拽以及web存储
- mysql 让一个存储过程定时作业的代码(转)