精华内容
下载资源
问答
  • 关系代数和关系运算

    千次阅读 2019-08-23 14:36:40
    关系代数-SQL的基础 元组关系演算 域关系演算 关系代数 在某种程度上是过程化语言 六个基本运算 select 选择 project 投影 union 并 set difference 差(合集差) cartesian product 笛卡尔积 rename ...

    查询语言

    用户用来从数据库中请求获取信息的语言

    “纯”查询语言(奠定了人民使用查询语言的基础)

    • 关系代数-SQL的基础
    • 元组关系演算
    • 域关系演算

     

    关系代数

    在某种程度上是过程化语言

    六个基本运算

    • select 选择
    • project 投影
    • union 并
    • set difference 差(合集差)
    • cartesian product 笛卡尔积
    • rename 更名(重命名)

    用户输入一个或两个关系,并得到新的关系

    附加运算

    • set intersection 交
    • natural join 自然连接
    • division 除
    • assignment 赋值

     

    选择运算

    关系-表,元组-行,属性-列

    选择运算就是在表(关系)中,选择出条件(元组中属性)满足的行(元组)。

    定义:σp(r)={t|t∈r and p(t)}

    p是由逻辑连词与、或、非连接起来的公式。逻辑连词的运算对象可以是比较运算符的表达式。

    例:(a<4)&&(b>3)

     

    投影运算

    目的:将表中重复的元组删除。

     

    并运算

    目的:将两个有相同属性(且排列顺序相同)的表合并,将重复的元组取出,将不同的变成一个表。

     

    差运算

    目的:将两个有相同属性(且排列顺序相同)的表中出现相同的元组删除,使两个表中都没有这些元组

     

    广义笛卡尔积

    定义:rxs={{t q}|t∈r and q∈s}

    假设r(R)的属性和s(S)的属性没有交集

    如果属性有交集,那么必须重命名这些有交集的属性

    例:r和s中都有B,可以重命名为r.B和s.B

     

    复合运算

    可以使用多种运算符构建表达式

     

    更名运算

    允许我们使用其他名字指代关系

     

    表达:()内的是查找条件,下标是查找目标

     

    附加运算 

    虽不能增加关系代数的表达能力,但却可以简化一些常用的查询。

     

    交运算

    目的:从两个有相同属性(且排列顺序相同)的表中找出相同的元组。

    r∩s=r-(r-s)

     

    自然连接

    将两表中相同属性的元组进行笛卡尔积,在得到的新元组进行投影,删除多余的相同的属性。

    注意:

    1.r,s必须含有同名属性

    2.连接两个关系中同名属性值相等的元组

    3.消去重名属性

    theta连接

    由用户来指定,是自然连接的扩展

     

    除运算

    使用于“对所有的”此类短语的查询

    多项选择:满足一个属性的多个值的另一个属性。

     

    赋值运算(<-)

    赋值运算可以把查询表达为一个顺序程序,该程序包括:

    • 一系列赋值
    • 一个其值被作为查询结果显示的表达式

    赋值必须是赋给一个临时关系变量。

     

    总结:

    并、差、交为双目、等元运算

    笛卡尔积、自然连接、除为双目运算

    投影、选择为单运算对象

    优先级(由高到低)

    • 投影
    • 选择
    • 笛卡尔积
    • 连接、除
    • 并、差
    展开全文
  • 小插曲:小编在学习计算机二级的时候,苦于关系代数的关系运算理解,在网上百度很多的资源,大都是概念,而且是文本形式呈现的。个人喜好图文形式的理解,因此将做的比较好的ppt做成帖子供大家参考,如有错误,请...

    小插曲:小编在学习计算机二级的时候,苦于关系代数的关系运算理解,在网上百度很多的资源,大都是概念,而且是文本形式呈现的。个人喜好图文形式的理解,因此将做的比较好的ppt做成帖子供大家参考,如有错误,请批评指正

    声明:

    1)本文主要图文来源:喻小光
    2)原文链接:https://wenku.baidu.com/view/d28c9bbffad6195f302ba61b.html?from=search

    一、集合运算

    关系R和S 是元组的集合(不存在重复元组)
    前提:R和S的模式具有相同的属性集(属性域匹配)
    且属性顺序相同
    属性名不同,可以改名。

     集合运算主要讲:并、交和差。因为传统集合运算很好理解,所以就简要解释。
    

    1.

    A∪B: A和B的并 由A或B中的元组组成

    在这里插入图片描述

    2.

    R∩S: R和S的交 由R和S中都存在的元组组成

    在这里插入图片描述

    3.

    B-A: B和A的差 由在B中而不在A中的元组组成

    在这里插入图片描述

    二、关系运算

    关系运算主要详讲:投影、选择、笛卡尔积和自然连接。

    1.投影

    关系R上的投影是从R中选择若干属性A1,A2,A3…An组成的新的关系(去掉重复元组)。
     记 丌A1,A2,A3..An (R)    A1,A2,A3…An是R中的属性
     习惯上按所列出的顺序显示
    

    在这里插入图片描述

    2.选择

    关系R上的选择运算,即从指定关系中选择满足一定条件C的元组, 得到新的关系。结果集的模式与R相同。
    记: σC(R)
    C是一个条件,取值为“true”或“false”。
    C由逻辑运算符OR AND NOT 连接各条件表达式组成。
    

    在这里插入图片描述

    3.笛卡尔积

    R和S的笛卡尔积(即乘积)是有序对的集合。
     由R的元组和S的元组构成更长的元组。有序对的
          第1个元素是关系R的任何一个元组
          第2个元素是 关系S的任何一个元组. 
     记作  :  R×S
    

    在这里插入图片描述

    4.自然连接

    由R和S在公共属性上相同的元组成对连接构成(去掉重复的列)
    假设A1,A2,…An为R和S的公共属性,当且仅当R的元组r和S的元组s在A1,A2,…An每一个属性
    上都一致时,r和s才能成功地组成一对。
    

    例图1:在这里插入图片描述
    例图2:
    在这里插入图片描述

    展开全文
  • 数据库中关系代数中的关系运算

    千次阅读 2016-10-25 16:42:30
    除法运算的定义: 这个概念的描述的非常抽象,刚开始学习的同学完全不知所云。这里通过一个实例来说明除法运算的求解过程...第二步:被除关系R与S不相同的属性列是X,关系R在属性(X)上做取消重复值的投影为{X1,

    除法运算的定义:

    关系代数中的除法运算 - 魔封波 - 书心斋

    这个概念的描述的非常抽象,刚开始学习的同学完全不知所云。这里通过一个实例来说明除法运算的求解过程:

    设有关系R、S 如图所示,求R÷S 的结果:

    关系代数中的除法运算 - 魔封波 - 书心斋

    求解步骤过程:
    第一步:找出关系R和关系S中相同的属性,即Y属性。在关系S中对Y做投影(即将Y列取出);所得结果如下:

    关系代数中的除法运算 - 魔封波 - 书心斋

    第二步:被除关系R中与S中不相同的属性列是X,关系R在属性(X)上做取消重复值的投影为{X1,X2};
     

    第三步:求关系R中X属性对应的像集Y 
     
    根据关系R的记录,可以得到与X1值有关的记录,如图3所示;与X2有关的记录,如图4所示:

    关系代数中的除法运算 - 魔封波 - 书心斋

    第四步:判断包含关系
    R÷S其实就是判断关系R中X各个值的像集Y是否包含关系S中属性Y的所有值。对比即可发现:
    X1的像集只有Y1,不能包含关系S中属性Y的所有值,所以排除掉X1;
    而X2的像集包含了关系S中属性Y的所有值,所以R÷S的最终结果就是X2

    关系代数中的除法运算 - 魔封波 - 书心斋

    展开全文
  • 数据库关系代数中运算讲解和SQL语句的实现

    万次阅读 多人点赞 2016-12-21 18:35:14
    【数据库原理】关系代数篇——除法讲解  

    【数据库原理】关系代数篇——除法讲解

                                                                                                                                                                                                                                                               陈宇超   编辑总结:

    除法运算的一般形式示意图

     

    如何计算R÷S呢,首先我们引进”象集”的概念,具体意义看下面的陈述即可理解

    关系R和关系S拥有共同的属性BC , R÷S得到的属性值就是关系R包含而关系S不包含的属性,即A属性

     

    在R关系中A属性的值可以取{ a1,a2,a3,a4 }

    a1值对应的象集为 {  (b1,c2)  , (b2,c1) ,  (b2,c3)  }

    a2值对应的象集为 {  (b3,c7)  , (b2,c3) }

    a3值对应的象集为 {  (b4,c6)  }

    a4值对应的象集为 {  (b6,c6)  }

     

    关系SBC上的投影为 {  (b1,c2)  , (b2,c1) ,  (b2,c3)  }

     

    只有a1值对应的象集包含关系S的投影集,所以只有a1应该包含在A属性中

    所以R÷S为

                    A                  

    a1

     

    【例题一】为了更好的理解除法的实际作用,请看下面的例题

    设有教学数据库有3个关系(以下四小问均用除法的思想解决)

    学生信息关系student(sno,sname,age,sex)

    学生选课关系 sc(sno,cno,score)

    学校课程关系 course(cno,cname)

    Student表

                             sno                            

                           sname                    

                                  age                                 

                     sex                    

    S001

    陈晓

    16

    S002

    周倩

    21

    S003

    华南

    19

    S004

    曹匀

    21

    S005

    郑威

    20

    Course表

                             cno                            

                          cname                      

    C001

    计算机科学

    C002

    诗歌鉴赏

    C003

    资本论

    SC表

                             sno                           

                               cno                       

                        score                   

                            S001

                             C001

                         88

                            S001

                              C002

                         95

                            S001

                              C003

                         99

                            S002

                              C001

                         97

                            S002

                              C003

                         84

                            S003

                              C002

                         69

                            S005

                              C002

                         77

                            S005

                              C003

                         98

     

    SQL语言中没有全称量词,具体实现时可以把带有全称量词的谓词转换为等价的带有存在量词的谓词。

    解决这类的除法问题一般采用双嵌套notexists来实现带全称量词的查询解决所谓forall的问题。

     

    (1)   检索所学课程包含了C002课程的学生学号

    解   关系代数表达式:∏sno ( sc÷∏cno(σcno=’C002’ (course) )

    Sql语句

    从略

     

    (2)   求至少选择了C001和C003两门课程的学生学号

    解    关系代数表达式:∏sno ( sc÷∏cno(σcno=’C001’ or cno=’C003’(course) )

    Sql语句

    select  distinct  sno  from  sc  A  where  not  exists

    (

           select  *  from   course B where  cno   in ('C002','C003')  and   not  exists

            (

          select * from  sc C where   A.sno=C.sno   and   B.cno=C.cno

            )

    )

    也可以采用自连接

    select   s1.sno   from (  select   *  from   sc   where    cno='C001'  )   as   s1,

                                         (  select   *  from    sc   where   cno='C003'   )   as   s2

    where s1.sno=s2.sno

     

    (3)   求至少学习了学生S003所学 课程的学生学号

    解    关系代数表达式:∏sno ( sc÷∏cno(σsno=’S003’ (sc) )

    select   distinct   sno from   sc   A   where   not   exists

    (

               select   *   from   sc   B   where   sno='S003'   and    not   exists

       (

             select   *   from   sc   C   where   A.sno=C.sno   and   B.cno=C.cno

      )

    )

     

    (4)   求选择了全部课程的学生的学号

    解    此例的等价自然语义是,输出这样的学号,不存在某门课程在他的选课记录里没有选这门课

            关系代数表达式:∏sno (sc÷∏cno(course) )

    Sql语句

    select distinctsno  from  sc  A  where  not  exists

    (

              select  cno  from  course B  where  not  exists

              (

                 select *  from  sc C  where C.sno=A.sno and C.cno=B.cno

         )

    )

     

    (5)   求选择了全部课程的学生的学号和姓名

    解    关系代数表达式:∏sno,sname((student∞sc)÷∏cno(course) )

    Sql语句

    select    sno,sname   from   student   A   where not exists

    (

         select   cno   from   course  B   where   not   exists

      (

    select *  from  sc C  where  C.sno=A.sno  and  C.cno=B.cno

    )

    )

    以上小问用groupby结合count语句也是可以实现的,也更好理解一些。

    例如

    求选择了全部课程的学生学号

    SELECT   sno  FROM  (  SELECT COUNT(*)   cnt,   Sno

    FROM  SC

    GROUP BY   sno  )   T  WHERE cnt  =( SELECT COUNT(Cno )  FROM COURSE  )

    求至少选择了C002C003两门课程的学生学号

    select   sno   from  sc  where cno   in('C002','C003')   group by   sno   having COUNT(cno)=2

    注意:但该方法对于一个学生多次选修一门课程的情况无法处理,需要对其中的 SC 关系用distinct进行一定的预处理,所以group by+ count 有一定的局限性

     

    展开全文
  • 数据库 - 关系代数与关系运算

    千次阅读 2015-05-05 09:12:58
    专门的关系运算并(Union)R和S 具有相同的目n(即两个关系都有n个属性) 相应的属性取自同一个域R∪S 仍为n目关系,由属于R或属于S的元组组成 R∪S = { t|t  R∨t S } 差(Difference)R和S 具有相同的目n ...
  • 数据库系统概论中关系代数的除运算的理解与使用

    千次阅读 多人点赞 2019-03-22 19:45:25
    运算的概念课本上讲得已经很详细,这里只是针对关系代数试题如何看题写答案给出一个个人的小总结,小套路。 我们针对课本上的一个问题来探讨: 问:查询选修了全部课程的学生号码和姓名。 首先,看到关键词...
  • 关系代数运算

    千次阅读 2019-02-01 15:55:18
    关系代数运算 关系运算的参与对象是关系,运算后结果也是关系。在数据库,关系就是一张张的表。在离散数学,关系是做为一个个的集合来进行运算的。 代数运算的分类: 传统的集合运算:并、差、交、笛卡儿积...
  • 关系代数基本运算

    千次阅读 2016-02-16 15:07:14
    关系代数的基本操作有:并、差、除、选择、投影、笛卡尔积等。 1、差  定义:差即Difference,用符号-表示,表示两个表不一样的部分。此种计算需要使得运算的两个表具有相同的字段。例如S1-S2是在...
  • 关系代数中的除法运算

    万次阅读 多人点赞 2016-11-04 16:01:14
    关系代数中的除法运算
  • 常见的MapReduce关系代数运算有:选择、投影、并、交、差以及自然连接操作等,本文将介绍选择运算。后续博文介绍其他运算。 关系R 关系R id name age grade 1 张小雅 20 91 2 何芳 ...
  • 在用户看来,关系模型数据的逻辑结构是一张扁平的二维表。 1.1域 域是一组具有相同数据类型值的集合。 1.2笛卡儿积 笛卡儿积是域上的一种集合运算。 定义:给定一组域D1,D2,...,Dn,允许其中某些域是...
  • 关系代数运算之连接运算

    万次阅读 多人点赞 2019-04-20 18:28:17
    1.关于连接的理解:连接也称为θ连接,关系R与关系S的连接运算是从两个关系的笛卡尔积选取属性间满足一定条件的元组形成一个新的连接。这个条件为θ(比较运算符,如>、<、=)。 2.自然连接:是一种特殊的...
  • 数据库基础--关系代数中的除法运算

    万次阅读 多人点赞 2018-07-01 19:18:31
    除法运算的定义: 这个概念的描述的非常抽象,刚开始学习的同学完全不知所云。...第一步:找出关系R和关系S相同的属性,即Y属性。在关系S对Y做投影(即将Y列取出);所得结果如下 第二步:被除关系...
  • 数据库原理--关系代数之基本运算

    千次阅读 2020-03-08 21:09:23
    关系代数运算对象是关系,运算结果也是关系。 运算对象、运算符和运算结果是关系代数的三大要素。 关系代数运算可分为以下两大类: 1.传统的集合运算:并、交、差、笛卡尔积 2.专门的关系运算选择、投影、连接...
  • 关系代数运算When working with the relational model, we have 2 groups of operations we can use. 使用关系模型时 ,我们可以使用2组操作。 The first is called relational algebra, and it’s a procedural ...
  • 关系代数——除运算

    千次阅读 2020-12-29 16:32:34
    已知关系R(X,Y) X Y ...和关系S(Y,F) ...R÷S其实就是判断关系RX各个值的像集Y是否包含关系S属性Y的所有值 ...第二步:被除关系R与S不相同的属性列是X ,关系R在属性(X)上做取消重复值的投影为{X1,X2};
  • 关系代数的基本运算

    千次阅读 2014-09-04 09:21:12
    关系代数是以关系
  • 关系代数中,个人觉得比较容易搞混的有这两个概念:传统集合运算和专门关系运算; 传统集合运算:并(∪)、交(∩)、差(—)、笛卡尔积(×); 专门关系运算选择(σ)、投影(Π)、连接(∞)、除(÷); 传统的集合运算将...
  • 关系代数基本运算Definition 定义 Every DBMS must define a query language to enable users to access the data which is stored in the database. Relational Algebra is a procedural query language. It is ...
  •   数据库系统学习第7篇:关系代数基本运算及附加运算。参考书籍:数据库系统概念。 基本运算   基本运算有6种,如下所示: 选择运算   选择运算的目的是 选出满足给定谓词的元组,表示如下:   选择运算...
  • 数据库关系代数之除运算

    千次阅读 2018-06-26 14:55:50
    R与S的除运算得到一个新的关系P(X),P是R满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。解释:有关系:R(x,y) S(y,z)R SA B C B C Da1 b1 c2 b1 c2 d1a1 b2 c3 b...
  • 分为关系代数和关系演算: 关系代数 关系演算 SQL具有关系代数和关系演算双重特点。 三、关系的完整性 关系模型有三种完整性约束: 实体完整性:主属性不能取空值 参照完整性:例如好几个表都有一个同样的...
  • 转自https://blog.csdn.net/qq_22627687/article/details/53789362?utm_source=copy,感谢作者的无私分享。  【数据库原理】关系代数篇——除法讲解  ...
  • 关系代数是一种抽象的查询语言,通过关系的运算来表达查询 关系代数常使用的运算符由如下几类 集合运算符:∪(并)、∩(交)、-(差)、×(笛卡尔积) 专门的关系运算符:σ(选取)、∏(投影)、∞(连接)、*...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 32,885
精华内容 13,154
关键字:

关系代数中的选择运算