2.2 关系代数运算

2.2.1 关系代数的五个基本操作

考核要求:达到“简单应用”层次 
知识点:五个基本操作的含义和运算应用



(1)并():两个关系需有相同的关系模式,并的对象是元组,由两个关系所有元组构成。 
  RUS≡{t| t∈R ∨t∈S} 
(2) 差(-):同样,两个关系有相同的模式,R和S的差是由属于R但不属于S的元组构成的集合。 
  R-S≡{t| t∈R ∧t 不属于S} 
(3)笛卡尔积(×):对两个关系R和S进行操作,产生的关系中元组个数为两个关系中元组个数之积。 
  R×S≡{t| t=< tr,ts>∧tr∈R∧ts ∈S} 
(4) 投影(σ):对关系进行垂直分割,消去某些列,并重新安排列的顺序。 
(5) 选择(π):根据某些条件关系作水平分割,即选择符合条件的元组。

2.2.2 关系代数的四个组合操作 
考核要求:达到“简单应用”层次 
知识点:四个组合操作的含义和运算应用



(1)交():R和S的交是由既属于R又属于S的元组构成的集合。 
(2)联接:包括θ(算术比较符)联接和F(公式)联接. 
 选择R×S中满足iθ(r+j)或F条件的元组构成的集合; 
概念上比较难理解,关键理解运算实例 
等值联接(θ为等号“=”的联接)。 
(3)自然联接(RS):在R×S中,选择R和S公共属性值均相等的元组,并去掉R×S中重复的公共属性列。 如果两个关系没有公共属性,则自然联接就转化为笛卡尔积。 
(4)除法(÷):首先除法的结果中元数为两个元数的差,

R÷S的操作思路如下---把S看作一个块,如果R中相同属性集中的元组有相同的块, 且除去此块后留下的相应元组均相同,那么可以得到一条元组, 所有这些元组的集合就是除法的结果

对于上述的五个基本操作和四个组合操作,应当从实际运算方面进行理解和运用。

应用举例

设有关系R和S(如下:)

计算:

 

2.2.3 关系代数表达式及应用 
考核要求:达到“简单应用”层次 
知识点:关系代数表达式的应用



本节的内容是有关实际应用,应该多看例题,多做习题,必须达到以下要求: 能够根据给出的关系代数表达式计算关系值,也能够根据相应查询要求列出关系表达式。

(1)在列关系表达式时,通常有以下形式: 
π...(σ...(R×S))或者π...(σ...(RS)) 
首先把查询涉及到的关系取来,执行笛卡尔积或自然联接操作得到一张大的表格,然后对大表格执行水平分割(选择)和垂直分割(投影)操作。 
(2)当查询涉及到否定或全部的逻辑时,往往要用到差或除法操作。

  用关系代数表示数据查询的典型例子

[例]设教学数据库中有3个关系:
          学生关系S(SNO,SNAME,AGE,SEX)
          学习关系SC(SNO,CNO,GRADE)
          课程关系C(CNO,CNAME,TEACHER)

下面用关系代数表达式表达每个查询语句。

(1) 检索学习课程号为C2的学生学号与成绩。
    πSNO,GRADE(σ CNO=‘C2‘(SC))

(2) 检索学习课程号为C2的学生学号与姓名
   πSNO,SNAME(σ CNO=‘C2‘(SSC))
    由于这个查询涉及到两个关系S和SC,因此先对这两个关系进行自然连接,同一位学生的有关的信息,然后再执行选择投影操作。

此查询亦可等价地写成:
    πSNO,SNAME(S)(πSNO(σ CNO=‘C2‘(SC)))
    这个表达式中自然连接的右分量为"学了C2课的学生学号的集合"。这个表达式比前一个表达式优化,执行起来要省时间,省空间。

(3)检索选修课程名为MATHS的学生学号与姓名。
    πSNO,SANME(σ CNAME=‘MATHS‘(SSCC))

(4)检索选修课程号为C2或C4的学生学号。
    πSNO CNO=‘C2‘∨CNO=‘C4‘(SC))

(5) 检索至少选修课程号为C2或C4的学生学号。
    π11=4∧2=‘C2‘∧5=‘C4‘(SC×SC))
      这里(SC×SC)表示关系SC自身相乘的乘积操作,其中数字1,2,4,5都为它的结果关系中的属性序号。

比较这一题与上一题的差别。

(6) 检索不学C2课的学生姓名与年龄。
    πSNAME,AGE(S)-πSNAME,AGE(σ CNO=‘C2‘(SSC))
    这个表达式用了差运算,差运算的左分量为"全体学生的姓名和年龄",右分量为"学了C2课的学生姓名与年龄"。

(7)检索学习全部课程的学生姓名。
编写这个查询语句的关系代数过程如下:
(a) 学生选课情况可用πSNO,CNO(SC)表示;
(b) 全部课程可用πCNO(C)表示;
(c) 学了全部课程的学生学号可用除法操作表示。
        操作结果为学号SNO的集合,该集合中每个学生(对应SNO)与C中任一门课程号CNO配在一起都在πSCO,CNO(SC) 中出现(即SC中出现),所以结果中每个学生都学了全部的课程(这是"除法"操作的含义):
    πSNO,CNO(SC)÷πCNO(C)
(d) 从SNO求学生姓名SNAME,可以用自然连结和投影操作组合而成:
    πSNAME(S  (πSNO,CNO(SC)÷πCNO(C)))
这就是最后得到的关系代数表达式。

(8) 检索所学课程包含S3所学课程的学生学号。
注意:学生S3可能学多门课程,所以要用到除法操作来表达此查询语句。
      学生选课情况可用操作  πSNO,CNO(SC)表示;
      所学课程包含学生S3所学课程的学生学号,可以用除法操作求得:
    πSNO,CNO(SC)÷  πCNO(σ SNO=‘S3‘(SC))

(9) 将新课程元组(‘C10‘,‘PHYSICS‘,‘YU‘)插入到关系C中
    (C∪(‘C10‘,‘PHYSICS‘,‘YU‘))

(10) 将学号S4选修课程号为C4的成绩改为85分。
    (SC-(‘S4‘,‘C4‘,?)∪(‘S4‘,‘C4‘,85))
    修改操作用代数表示分两步实现:先删去原元组,再插入新元组。题目中未给出原先的成绩,所以用"?"代替,检索时可忽略。

2.2.4 扩充的关系代数操作 
考核要求:达到“识记”层次 
知识点:了解“外联接”和“外部并”的含义



注意:(1)“外联接”、“左外联接”、“右外联接”和“自然连接”的差异。 
(2)“外部并”和“并”的差异

时间: 2024-10-06 03:59:29

2.2 关系代数运算的相关文章

关系代数运算

五种基本关系代数运算 集合:某些指定的对象集在一起就成了一个集合,其中每一个对象叫元素. 集合的三特性:确定性.互异性.无序性. (1)确定性:指的是概念清晰,对象描述明确,不能含混不清.不能模棱两可. (2)互异性:对于一个给定的集合,它的任何两个元素都是不同的. (3)无序性:给定的一个集合,集合内的元素间位置关系可以颠倒.调换. 五种基本关系运算:并.差.笛卡尔积.投影.选择. 我们学过集合的运算:并.交.差,求补集. 关系代数运算与集合的运算有相似之处,且不完全相同.尤其讲究位置关系,集

8种常用的关系代数运算_20160928

关系代数:是一种抽象的查询语言,用对关系的运算来表达 查询.关系代数运算的是关系,运算结果亦是关系. 3.1 概述 用表或者数据集合,表示 关系或实体: 用行 表示元组: 用列 表示属性: 3.2 包括: 5个基本操作:并(∪).差(∪).广义笛卡儿积(×),选择(π).投影(σ) 四个组合操作:交(∩).连接等值联接).自然连接(RS).除法(÷) 3.2.1 并――关系的加法和减法,它可以在行的方向上合并两个表中的数据,就像把一个表垒在另一个表之上一样. 3.2.2 交――返回两个数据集合所

关系运算 - 数据库系统原理

关系模型有三个重要组成部分: 数据结构.数据库中全部数据及其相互联系都被组织成"关系"(二维表格)的形式. 数据操纵.关系模型提供一组完备的高级关系运算,以支持对数据库的各种操作.关系运算又分为:关系代数和关系演算两类. 数据完整性规则.数据库中数据必须满足实体完整性.参照完整性.用户定义完整性等三类完整性规则. 关系代数的五个基本操作 关系代数是以关系(属性个数相同的元组的集合)为运算对象的一组高级运算的集合.关系代数的操作可以分为两类: 传统的集合操作:并.差.交.笛卡尔积(乘法)

关系模型关系模型

关系模型研究的内容 一个关系就是一个Table,关系模型就是处理Table的 在处理Table时涉及到以下内容 如何来描述一个Table,一个Table由哪些要素组成 规定Table上的操作和Table与Table之间的操作 定义表的约束与操作的约束 关系模型三要素 基本结构 (Table) 基本操作(U.-.X.σ.π.÷.∩) 完整性约束(实体完整.参照完整.用户自定义完整性) 表/关系 下图是对一张表的定义,我们称表也为关系. 域:所有可取的列值构成的集合.域的笛卡尔积的子集被成为关系.

翻译:关系操作

转载自:<database.system.concepts>(数据库系统概念)P48-52 所有的过程关系查询语言都提供一组操作,这些操作可以应用于单个关系或一对关系.这些操作具有良好的和期望的属性,它们的结果总是一个单一的关系.这个属性允许一个以模块化的方式组合其中的几个操作.具体来说,由于关系查询的结果本身就是一个关系,因此关系操作可以应用于查询的结果以及给定的关系集. 具体的关系操作根据语言的不同而有所不同,但是适合我们在本节中描述的通用框架.在第3章中,我们展示了用SQL表示操作的具体

关系操作

关系操作 源自:数据库系统概论(第六版) 2.6关系操作 作者:Abraham Silberschatz  Henry F.Korth  S.Sudarshan 翻译:刘琼滨 谢雪妮 赖慧芳 许雅莉 译文: 所有过程关系查询语言都提供了一组操作,可以应用于单个关系或一对关系.这些操作具有所需的良好的属性,它们的结果始终是单个关系.此属性允许以模块方式组合多个操作.具体来说,由于关系查询的结果本身就是一个关系,因此关系操作可以应用于查询以及给定关系集. 具体的关系操作以不同的语言表达,但是符合我们

DBMS-形式化关系查询语言:关系代数、元组关系演算、域关系演算

关系代数 关系代数(relational algebra):一种过程化查询语言.包括一个运算的集合,集合中运算以一个或两个关系为输入,产生一个新的关系作为结果. 关系代数的基本运算包括:选择.投影.并.集合差.笛卡尔积.更名. 其他运算:集合交.自然连接.赋值,可用基本运算来定义. 关系运算的结果自身也是一个关系,可用一个关系运算表达式作为另一个关系运算的参数,因此可以把多个关系代数运算组合成一个关系代数表达式(relational-algebra expression). 关系代数定义了一套在

复习三——关系数据模型

数据模型 描述现实世界实体,实体间联系以及数据语义和一致性约束的模型.这个定义看起来没什么实际用途,但是理解了对使用power designer设计数据库有好处.嘛...反正我没理解透. 按照模型应用的不同目的,可以分为 概念数据模型(概念模型):按用户的观点对数据进行建模,强调语义表达功能.主要用于数据库的概念设计. 结构数据模型(数据模型):按计算机系统的观点对数据进行建模,直接面向数据库的逻辑结构. 现实世界-->信息世界 概念模型(如E-R模型,即实体-联系模型)-->机器世界 数据模

数据库学习摘记 —— 关系代数和关系演算

关系数据结构 笛卡儿积:给定一组集合D1,D2,-,Dn,这些集合可以相同, 定义D1,D2,-,Dn 的笛卡尔积为:D1×D2×-×Dn={(d1,d2,-,dn) | di?Di,i=l,2,-,n},其中的每一个元素(d1,d2,-,dn)叫做一个n元组,元素中第i个值di叫做第i个分量. 关系:笛卡尔积D1×D2×-×Dn的任一个子集称为 D1,D2,-,Dn 上的一个关系.关系是元组的集合,亦即实 体的集合. 域:集合 D1,D2,-,Dn是关系中元组的取值范围,称为关系的域.关系中的