精华内容
下载资源
问答
  • 传统集合运算 (并,差,交,笛卡尔积)  专门的关系运算 并(Union) R和S 具有相同的目n(即两个关系都有n个属性) 相应的属性取自同一个域 R∪S 仍为n目关系,由属于R或属于S的元组组成 R∪S = { t|t ...



    概述 
    传统的集合运算 (并,差,交,笛卡尔积) 
    专门的关系运算

    并(Union)

    R和S
    具有相同的目n(即两个关系都有n个属性)
    相应的属性取自同一个域
    
    R∪S 
    仍为n目关系,由属于R或属于S的元组组成
                 R∪S = { t|t  R∨t S }
    
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    差(Difference)

    R和S
    具有相同的目n
    相应的属性取自同一个域
    
    R - S 
    仍为n目关系,由属于R而不属于S的所有元组组成
                    R -S = { t|tR∧tS }
    
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    交(Intersection)

    R和S
    具有相同的目n
    相应的属性取自同一个域
    
    R∩S
    仍为n目关系,由既属于R又属于S的元组组成
                        R∩S = { t|t  R∧t S }
                  R∩S = R –(R-S)
    
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    笛卡尔积(Cartesian Product)

    
    R: n目关系,k1个元组
    S: m目关系,k2个元组
    R×S 
    列:(n+m)列元组的集合
    元组的前n列是关系R的一个元组
    后m列是关系S的一个元组
    行:k1×k2个元组
    R×S = {tr ts |tr R ∧ tsS }
    
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    专门的关系运算

    先引入几个记号

    (1) R,tR,t[Ai]
             设关系模式为R(A1,A2,…,An)
             它的一个关系设为R
              tR表示t是R的一个元组
              t[Ai]则表示元组t中相应于属性Ai的一个分量 
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 1
    • 2
    • 3
    • 4
    • 5
    2A,t[A], AA={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,则A称为属性列或属性组。
       t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元组t在属性列A上诸分量的集合。
       A则表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}后剩余的属性组。 
    
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 1
    • 2
    • 3
    • 4
    • 5
    3tr ts
        R为n目关系,S为m目关系。
        tr R,tsS, tr ts称为元组的连接。
        tr ts是一个n + m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。 
    
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 1
    • 2
    • 3
    • 4
    • 5
    4)象集Zx
      给定一个关系R(X,Z),X和Z为属性组。
      当t[X]=x时,x在R中的象集(Images Set)为:
                   Zx={t[Z]|t R,t[X]=x}
        它表示R中属性组X上值为x的诸元组在Z上分量的集合 
    
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    选择操作:感觉是数据库当中最简单的一种操作了,其定义如下: 
    σF(R)=t|tRF(t)=true  
    F是我们的选择条件,就是选出符合条件的元素。

    投影操作: 
    就是从R中选择出若干属性组成新的关系。 
    πA(R)= {t[A]|t  R }$


    连接

    1)连接也称为θ连接
    2)连接运算的含义
    从两个关系的笛卡尔积中选取属性间满足一定条件的元组
         R         S = {          | tr  R∧ts S∧tr[A]θts[B] }
    
    A和B:分别为R和S上度数相等且可比的属性组
    θ:比较运算符 
        连接运算从R和S的广义笛卡尔积R×S中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系θ的元组 
    
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    3)两类常用连接运算
    等值连接(equijoin) 
    什么是等值连接
    θ为“=”的连接运算称为等值连接 
    等值连接的含义
    从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:
            R    S = {          | tr R∧ts S∧tr[A] = ts[B] }  
    
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    自然连接(Natural join) 
    自然连接是一种特殊的等值连接
    两个关系中进行比较的分量必须是相同的属性组(同名同域:必须具有相同的属性名,并且出自相同的域集)
    在结果中把重复的属性列去掉
    自然连接的含义
        R和S具有相同的属性组B
            R   S = {         | tr R∧ts S∧tr[B] = ts[B] }  
    一般的连接操作是从行的角度进行运算。
            自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。 
    
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    外连接
    在做自然连接时,如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接(OUTER JOIN)。
    左外连接
    在做自然连接时,如果只把左边关系R中要舍弃的元组保留就叫做左外连接(LEFT OUTER JOINLEFT JOIN)
    右外连接
    在做自然连接时,如果只把右边关系S中要舍弃的元组保留就叫做右外连接(RIGHT OUTER JOINRIGHT JOIN)。 
    
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    除(Division)

    给定关系R (X,Y) 和S (Y,Z),其中X,Y,Z为属性组。
    R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。
    R与S的除运算得到一个新的关系P(X),
    P是R中满足下列条件的元组在 X 属性列上的投影:
    元组在X上分量值x的象集Yx包含S在Y上投影的集合,记作:
           R÷S = {tr [X] | tr  R∧πY (S)  Yx }
           Yx:x在R中的象集,x = tr[X]
    
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    在关系R中,A可以取四个值{a1,a2,a3,a4}
        a1的象集为 {(b1,c2),(b2,c3),(b2,c1)}
        a2的象集为 {(b3,c7),(b2,c3)}
        a3的象集为 {(b4,c6)}
        a4的象集为 {(b6,c6)}
    S在(B,C)上的投影为
               {(b1,c2),(b2,c1),(b2,c3) }
    只有a1的象集包含了S在(B,C)属性组上的投影
         所以     R÷S ={a1} 

    除法比较难理解点,所以就详细的说说。。

    设关系R除以关系S的结果为关系T,则T包含所有在R但不在S中的属性及其值,且T的元组与S的元组的所有组合都在R中。

    所以结合着例子,对于定义进行理解吧:

    首先呢给出关系R和关系S


    1、定义中说,T包含所有在R但不在S中的属性,所以呢 R 所包含的属性有{A,B,C},S中所包含的属性有{B,C,D},显而易见,关系T中应该只包含

     一个属性---A;

    2、及其值,只考虑关系R中A属性的值{a1,a2,a3,a4},关系T属性A的元素应该是{a1,a2,a3,a4}的子集;

    3、且T的元组与S的元组的所有组合都在R中,很明显,S中的需要考虑的只是属性B和属性C,所以


    所以符合定义要求的值只有a1了。

    从而得出:




    展开全文
  • 正文如下: 各种运算符如下: ...数据库传统集合运算包括:并、差、交、笛卡尔积运算。这四种运算都与数学上的同名运算概念相似。 并: 差: 交: 笛卡尔积: 广义笛卡尔积(Extended Cartes...

    转载https://blog.csdn.net/zgcr654321/article/details/82077809

    正文如下:

    各种运算符如下:

    数据库中每行就是一个元组,每列就是一个属性。

    数据库的传统集合运算包括:并、差、交、笛卡尔积运算。这四种运算都与数学上的同名运算概念相似。

    并:

    差:

    交:

    笛卡尔积:

    广义笛卡尔积(Extended Cartesian Product):两个分别为n目和m目关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合,元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1*k2个元组,记作:R×S={tr⌒ts| tr∈R∧ts∈S}或记做R×S={(r1,…,rn ,s1,…,sm)∣((r1,…,rn)∈R∧(s1,…,sm)∈S)。

    r,s为R和S中的相应分量。

    简单来说,就是把R表的第一行与S表第一行组合写在一起,作为一行。然后把R表的第一行与S表第二行依此写在一起,作为新一行。以此类推。当S表的每一行都与R表的第一行组合过一次以后,换R表的第二行与S表第一行组合,以此类推,直到R表与S表的每一行都组合过一次,则运算完毕。如果R表有n行,S表有M行,那么笛卡尔积R×S有n×M行。

    下面举一个例子:

    关系表R和S如下图所示:

    R并S、R减S、R交S、选择、R与S的笛卡尔积结果如下所示:

    选择B>'4'(R),即选择语句的条件,对R的关系做水平分割,选择R中符合条件的元组。

     

    数据库的专门关系运算有:选择(对关系进行水平分割)、投影(对关系进行垂直分割)、连接、自然连接(关系的结合)、除运算等。

    选择(selection):

    选择就是"筛选行"。选择一般要对一张表选择符合条件的行(但包含所有列)。

    举例:

    投影(projection):

    投影就是"筛选列"。一个数据库表,如仅希望得到其一部分的列的内容(但全部行),就是投影。

    举例:

    除法(division):

    记为R÷S,它是笛卡尔积的逆运算。设关系R和S分别有r列和s列(r>s,且s≠0),那么R÷S的结果有(r-s)个列,并且是满足下列条件的最大的表:其中每行与S中的每行组合成的新行都在R中。注意有时关系之间的除法也有"余数",可能S×T的结果为R的一部分(最大的一部分),R中的多余部分为"余数"。

    举例:

    运算过程:

     C, D是关系S中的两个属性, 故在R集合中对除了C, D的属性, 即A, B两属性进行投影, 得到a, b; b, c; e, d;这三组, 然后用这个结果与关系S进行笛卡尔积运算, 发现b c c d这组在关系R中没有, 其余a, b; e, d; 做的运算在R中存在. 因此最后结果为a, b; e, d。

    连接(join):

     

    两表笛卡尔积的结果比较庞大,实际应用中一般仅选取其中一部分的行,选取两表列之间满足一定条件的行,就是关系之间的连接。

    根据连接条件的种类不同,关系之间的连接分为等值连接、大于连接、小于连接、自然连接。

    条件是类似于"B列=D列"的"某列=某列"的条件,就是等值连接;

    条件是"某列>某列"的,就是大于连接;

    条件是"某列<某列"的,就是小于连接。

    自然连接是不提出明确的连接条件,但"暗含"着一个条件,就是"列名相同的值也相同"。在自然连接的结果表中,往往还要合并相同列名的列。当对关系R和S进行自然连接时,要求R和S含有一个或者多个共有的属性。

    举一个等值连接的例子:

    关系R和S如下图所示:

    对关系R、S按条件"R表的B列=S表的B列"进行连接的结果(等值连接):

    小于连接的结果(B<D):

    自然连接的结果(自然连接暗含的条件是R.B=S.B且R.C=S.C,因为R、S中有同名的2列B、C):

    多个条件之间可用"∧"表示"且",即两边的条件必须同时成立。

    如"C>4∧D>3",表示"C列值>4,且D列值>3",二者需同时满足。

    用"∨"表示"或",即两边的条件有一个成立即可。

    例如"性别='女'∨年龄<20"表示"性别为'女'或者年龄在20岁以下"。
    --------------------- 
    作者:一骑走烟尘 
    来源:CSDN 
    原文:https://blog.csdn.net/zgcr654321/article/details/82077809 
    版权声明:本文为博主原创文章,转载请附上博文链接!

     

    展开全文
  • 传统 sql数据库 集合运算

    千次阅读 2018-11-23 16:57:17
    https://blog.csdn.net/zgcr654321/article/details/82077809  
    展开全文
  • 数据库|传统集合运算

    千次阅读 2019-09-12 23:59:00
    欢迎点击「算法与编程之美」↑关注我们!本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。传统集合运算是二目运算,包括交、并、差、广义笛卡尔积四...

    欢迎点击「算法与编程之美」↑关注我们!

    本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。

    传统的集合运算是二目运算,包括交、并、差、广义笛卡尔积四种运算,如下图所示:

    640?wx_fmt=png

    1) 并(union)

    关系R和关系5具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则关系R与关系S的并由属于R或属于S的元组组成,其结果关系仍为n目关系。

    记作:

    R ∪ S = { t | t ∈R ∨ t ∈s }

    2)差(difference)

    设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系s的差由属于R而不属于S的所有元组组成。其结果关系仍为n目关系。

    记作:

    640?wx_fmt=png

    3)交(intersection)

    设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系的交由既属于R又属于S的元组组成,其结果关系仍为n目关系。

    记作

    R ∩ S= { t | t ∈ R ∨ t ∈ S }

    4.广义笛卡尔积(extended cartesian product)

    两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合,元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1*k2个元组。

    记作:

    R ∩ S= { t | t ∈ R ∧ t ∈ S }

    传统的集合运算不光会出现在高中的数学课本中,也会出现在数据库的学习中。数据库其实是一个二维的表,就相当于是一个数学的集合。有的时候需要两个表进行运算,比如,找到两个表中相同的部分,这个的运算机制就是传统的集合运算中的“交”。有的时候需要表本身进行计算,比如,只需要显示表中某一列的数值,这个就是关系的专门运算“投影”。所以传统的数学集合的关系运算与数据库专有的关系运算密切相关。我们要先弄明白集合的运算才能更好的学习关系运算。

    END

    主  编   |   张祯悦

    责  编   |   杨金月

     where2go 团队


       

    微信号:算法与编程之美          

    640?wx_fmt=jpeg

    长按识别二维码关注我们!

    温馨提示:点击页面右下角“写留言”发表评论,期待您的参与!期待您的转发!

    展开全文
  • 关系代数中,个人觉得比较容易搞混的有这两个概念:传统集合运算和专门关系运算; 传统集合运算:并(∪)、交(∩)、差(—)、笛卡尔积(×); 专门关系运算:选择(σ)、投影(Π)、连接(∞)、除(÷); 传统的集合运算将...
  • 传统集合运算和专门的关系运算

    千次阅读 2020-07-14 18:27:14
    一、传统集合运算 传统集合运算是二目运算,包括并、差、交、笛卡尔积4种运算。 设关系R和关系S具有相同的目n,也就是两个关系中都有n个属性,且相应的属性取自同一个域,t是元组变量,t∈R表示t是R的一个元组。...
  • 数据库的关系运算

    千次阅读 2016-09-27 23:02:19
    数据库本质上就是一些数据的集合,所以对一个数据库的操作就是十分类似于对一些集合的操作。这篇博客对我们会遇到的数据库的关系作一个小小的总结。传统集合运算在这里,共有并,差,交和笛卡尔积四种运算。
  • 关系代数是一种抽象的查询语言,它用对关系的运算来表达查询,其运算对象是关系、运算结果亦为关系,关系代数的运算符有...传统集合运算是从关系的“水平”方向即行的角度进行,专门的关系运算不仅涉及行而且涉及列。
  • 本篇主要讲述关系运算和关系的完整性约束,理解关系操作的含义,了解传统集合运算,掌握关系代数中基本关系运算。通过本篇的学习,读者应该能掌握以下内容: ● 集合的合并、交集、求差、乘积操作 ● 关系运算的...
  • 关系代数之 传统集合运算

    千次阅读 2020-05-19 11:46:29
    传统集合运算是二目运算,设关系R和S均是n云关系,且相应的属性值取自同一个值域,则可以定义三种运算:并运算,交运算,差运算,但广义笛卡尔积并不要求参与运算的两个关系的对应属性值取自相同的域。 并集 ...
  • 数据库的关系运算不包括:比较运算。关系数据库的3种基本关系运算不...1、传统的集合运算进行传统集合运算的两个关系必须具有相同的关系模式,即元组具有相同的结构(1)并运算两个相同结构关系的并是由属于这两个关...
  • 传统集合运算包括并,差,交,笛卡儿积运算 1.并 关系R和关系S的所有元组合并,再删去重复的元组,组成一个新的关系,即不允许有重复的行 2.差 关系R和关系S的差是由属于R但不属于S的所有元组组成的集合,即关系R...
  • 关系数据库 一、关系数据结构及形式化定义 1.关系 单一的数据结构----关系 现实世界的实体以及实体间的各种联系均用关系来表示 逻辑结构----二维表 从用户角度,关系模型中数据的逻辑结构是一张二维表 建立在集合...
  • 一、集合运算 在查询结果之间进行运算的操作 1 并集 指将两个查询的查询结果合并在一起(最多) 并集去重-UNION:将两个查询结果进行合并,若存在相同的数据,将重复数据去重 并集不去重-UNION ALL:将两个查询...
  • 数据库关系运算

    2017-03-16 19:18:00
    本文就是来讲解数据库中的各种关系运算的!本文不做数学概念的深入,只要理解相关的概念即可! 为什么我们要学习数据库关系运算? 学习和理解关系运算的机理,对于理解关系数据库中的数据查询机制有十分重要的...
  • 详解SQL集合运算

    2017-08-27 22:53:40
    SQL集合运算
  • 传统集合运算一些符号(1)【并】Union(2)【差】Difference(3)【交】Intersection(4)【笛卡尔积】Cartesian Product 关系数据库语言的分类 分为【关系代数语言】和【关系演算语言】 【关系代数语言】 用对...
  • 关系的基本运算只要分为两类,第一类是传统集合操作:并、交、差、笛卡尔积(乘法)、笛卡尔积的逆运算(除法)。第二类是扩充的关系操作:投影(对关系的垂直分割)、选择(对关系的水平分割)、连接和自然连接...
  • 关系数据库是支持关系模型的数据库系统。 而对于关系模型的数据结构有以下重要定义: 二、关系操作 分为关系代数和关系演算: 关系代数 关系演算 SQL具有关系代数和关系演算双重特点。 三、关系的完整性...
  • 数据库 - 关系代数与关系运算

    万次阅读 2015-05-05 09:12:58
    传统集合运算 (并,差,交,笛卡尔积) 专门的关系运算并(Union)R和S 具有相同的目n(即两个关系都有n个属性) 相应的属性取自同一个域R∪S 仍为n目关系,由属于R或属于S的元组组成 R∪S = { t|t  R∨t ...
  • 数据库】关系代数基本运算

    万次阅读 多人点赞 2016-11-01 22:35:35
    关系代数中的操作可以分为两类:传统的关系操作,并、差、交、笛卡尔积(乘)、笛卡尔积的逆运算(除);扩充的关系操作,对关系进行垂直分割(投影)、水平分割(选择)、关系的结合(连接、自然连接)等。   五...
  • 一、关系数据结构及形式化定义 1、关系 关系模型的数据结构非常简单,只包含单一的数据结构——关系。... 笛卡儿积是域上的一种集合运算。 定义:给定一组域D1,D2,...,Dn,允许其中某些域是相同的,D...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,618
精华内容 11,447
关键字:

数据库传统集合运算