关系代数是以关系为运算对象的一组高级运算的集合,是关系数据库系统查询语言的理论基础。关系代数是一种抽象的查询语言,用对关系的运算来表达查询。关系代数运算的是关系,运算结果亦是关系。
关系模型是目前用的最多的数据模型,具有严格的数学理论基础,其主要数学理论基础就是集合运算。关系模型提供了一系列操作的定义,这些操作称为关系代数操作。它可分为两类,一类是集合操作;另一类是关系专用的操作。
1.集合操作
集合操作是把关系看作元组的集合来进行传统的集合运算,其运算结果仍是关系,前提是参与运算的两个元组具有相同的结构,即含有相同的属性,且对应属性的值域相同。下面对传统的集合运算合并、交集、求差、乘积运算进行逐一说明。
集合运算——合并
假设有A、B两个集合
A={1,3,5,9},B={2,3,5,7}
由所有属于集合A或属于集合B的元素组成的集合,叫做集合A与集合B的合并,也称为集合A与集合B的并集,记作:
A U B={1,2,3,5,7,9}
由此可以推出,设R和S是两个关系,则RUS是合并R和S,合并后的结果仍是关系,结果表中的元组或属于R,或属于S,如图10-19所示:
图10-19 集合的合并运算
集合运算——交集
假设有A、B两个集合
A={1,3,5,9},B={2,3,5,7}
由所有属于集合A且属于集合B的元素组成的集合,叫做集合A与集合B的交集,记作:
A n B={3,5}
由此可以推出,设R和S是两个关系,则RnS是R和S的交集,求交后的结果仍是关系,结果表中的元组属于R且属于S,如图10-20所示:
图10-20 集合的交集运算
集合运算——求差
假设有A、B两个集合
A={1,3,5,9},B={2,3,5,7}
由所有属于集合A且不属于集合B的元素组成的集合,叫做集合A与集合B的差,记作:(www.xing528.com)
A-B={1,9}
由此可以推出,设R和S是两个关系,则R—S是求R和S的差,求差后的结果仍是关系,结果表中的元组属于R且不属于S,如图10-21所示:
图10-21 集合的求差运算
集合运算——乘积
假设有A、B两个集合
A={1,3,5},B={2,3}
用A中元素为第一元素,B中元素为第二元素构成有序对,所有这样的有序对组成的集合叫做A与B的乘积(笛卡尔乘积),记作:
A X B={(1,2),(1,3),(3,2),(3,3),(5,2),(5,3)}
由此可以推出,设R和S是两个关系,则R X S是求R和S的笛卡尔乘积,结果表是R和S的结构之连接,即前n个属性来自R,后m个属性来自S,属性个数等于n+m。结果表的值是由R中的每个元组连接S中的每个元组构成元组的集合。如图10-22所示:
图10-22 集合的乘积运算
2、专门的关系运算
专门的关系运算包括选择、投影、连接和除四种运算。下面介绍常用的三种运算选择、投影和连接。
选择运算
选择运算是单目运算,它从一个关系R中选择出满足给定条件的所有元组,并同R具有相同的结构。图10-23所示为由关系R选出编号为02的老师。
图10-23 专门关系运算—选择运算
投影运算
投影运算也是单目运算,它从一个关系R所有属性中选择某些指定属性,组成一个新的关系。选择运算选取关系的某些行,而投影运算选取关系的某些列,是从一个关系出发构造其垂直子集的运算。图10-24所示为由关系R中选出所有老师的姓名和简介。
图10-24 专门关系运算—投影运算
连接运算
连接运算属于二目运算,是从两个关系元组的所有组合中选取满足一定条件的元组,由这些元组形成连接运算的结果关系,其中条件表达式涉及到两个关系中属性的比较,该表达式的取值为真或假。图10-25所示为对课程表和老师表在老师编号相等的条件下进行了连接,在新的关系中仅选出名称、姓名两个属性,即在新关系中再进行一次投影运算,这样得到了所有老师编号为01的课程名称和老师姓名。
图10-25 专门关系运算)连接运算
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。