精华内容
下载资源
问答
  • 数据库之关系数据库关系运算

    千次阅读 多人点赞 2020-03-25 11:59:13
    我们学习关系运算的机理,对我们理解数据库查询操作非常重要 所以我们进行关系操作时很大程度上需要明白关系操作以及关系之间的逻辑 在我们进行数据库查询操作时,如何规范的使用数据库语言,如何进行选择时能够消除...

    关系运算的机理有什么用

    我们学习关系运算的机理,对我们理解数据库查询操作非常重要
    所以我们进行关系操作时很大程度上需要明白关系操作以及关系之间的逻辑
    在我们进行数据库查询操作时,如何规范的使用数据库语言,如何进行选择时能够消除我们不想要的结果,减少冗余。这些都需要充分理解关系运算

    各种关系运算

    在这里插入图片描述

    集合运算符

    1.并运算
    在这里插入图片描述

    2.差运算
    在这里插入图片描述
    3.交运算
    在这里插入图片描述
    4.笛卡儿积

    专门关系运算符

    数据库的专门关系运算有:选择、投影、连接、自然连接、除运算等
    1.选择运算
    选择就是对表在水平方向上,筛选出一定符合条件的元组,然后组成新的关系
    例:
    在这里插入图片描述
    2.投影运算
    投影就是对表在垂直方向上,对列进行筛选。
    例:

    3.连接
    连接就是根据给定的条件,从两个已知的关系R和S的笛卡尔集中,选取满足连接条件的若干元组,组成一个新的关系;
    具体又分为:
    1.条件连接:选取满足条件的元组组成新关系
    2.等值连接:选取满足等值条件的元组组成的关系
    3.自然连接:也是等值连接,只不过它是选取满足公共属性满足等值的元组,组成关系
    4.外连接

    举例:
    先给出两个关系R和S:

    在这里插入图片描述
    R和S的笛卡儿积表示为:
    在这里插入图片描述
    我们先进行条件连接
    选择R的C列小于S的E列的元组进行连接
    表示为:

    在这里插入图片描述
    反映到笛卡儿积上:
    在这里插入图片描述
    2.等值连接
    等值连接R的B列等于S的B列:
    在这里插入图片描述
    3.自然连接
    选取满足公共属性满足等值的元组,组成关系
    暗含的条件是R.B=S.B且R.C=S.C,因为R、S中公共的属性列是B、C

    在这里插入图片描述
    反映到笛卡儿积上表示如下:
    在这里插入图片描述
    4.外连接:外连接就是将不满足条件舍弃的元组也保留到新关系中其属性值置为null
    R和S的外连接:
    1.先将R和S进行自然连接
    2.把不满足R.B=S.B的元组也保存下来,其属性值置空
    结果为:
    在这里插入图片描述

    除运算:

    概念就不放了直接举例理解:
    在这里插入图片描述
    首先第一个(1),这个新生成的列表首先不能包含S的属性A3,然后这个新生成的表其所有属性值和S表组合都等在R中找到,满足这两个条件得到的结果就是上图
    第二个(2),首先生成新表不包含S属性A3的值c,f,然后新表的每个属性对应行的值和S对应的属性值组成的元组都能在R中找到,满足条件就是如图
    第三第四个同样。

    展开全文
  • 数据库原理之关系数据库关系运算

    万次阅读 多人点赞 2018-12-06 10:10:31
    关系数据库关系运算 选择 投影 链接 除运算 选择运算 选择运算是从关系R中选取使逻辑表达式F为 真的元组,是从行的角度进行的运算 投影运算 投影操作主要是从列的角度进行运算,但投影之后...

    关系数据库关系运算

    • 选择
    • 投影
    • 链接
    • 除运算

    在这里插入图片描述

    选择运算

    在这里插入图片描述

    选择运算是从关系R中选取使逻辑表达式F为 真的元组,是从行的角度进行的运算
    在这里插入图片描述

    投影运算
    在这里插入图片描述

    投影操作主要是从列的角度进行运算,但投影之后不仅取消可原关系中的某些列,而且还可能取消某些元组(避免重复行)
    在这里插入图片描述
    连接运算

    连接运算又有等值连接,自然连接,半连接,左外连接,右外连接,全外连接。

    在这里插入图片描述

    • 等值连接
      在这里插入图片描述
    • 自然连接
      在这里插入图片描述
    • 半连接
      在这里插入图片描述
      R和S自然连接后,保留R属性的投影
    • 左外连接
      在这里插入图片描述
    • 右外连接
      在这里插入图片描述
    • 全连接
      在这里插入图片描述
      一般连接操作是从行的角度进行运算,自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。
      在这里插入图片描述

    除运算

    在这里插入图片描述
    在这里插入图片描述
    除运算是同时从行和列的角度进行的
    在这里插入图片描述

    关系代数表达式
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    展开全文
  • 关系数据库关系数据模型关系是一个数学概念。 当把关系的概念引入到数据库系统作为数据模型的数据结构时,既有所限定和也有所扩充。 关系的数学定义例: 课程={离散,C语言…..},学生={张三,李四…..} 笛卡儿积...

    关系数据库

    关系数据模型

    关系是一个数学概念。
    当把关系的概念引入到数据库系统作为数据模型的数据结构时,既有所限定和也有所扩充。

    关系的数学定义

    例:

    课程={离散,C语言…..},学生={张三,李四…..}
    

    笛卡儿积(cartesian product):设D1、…、Dn是n个域。D1、…、Dn上的笛卡尔乘积定义为集合
    D1×…×Dn ={ (d1 , …, dn ) | di ∈Di,1≤i≤n }。

    解:

    D1={离散,C语言…},D2={张三,李四…}
    D1×D2={(离散,张三),(离散,李四),……
           (C语言,张三),(C语言,李四),……
           …….}
    

    关系(relation):笛卡尔乘积D1×…×Dn的任意一个子集合称为一个定义在域D1、…、Dn上的关系。

    对数学定义的限定和扩充

    限定:无限关系在数据库系统中是无意义的。因此限定关系数据模型中的关系必须是有限集合。

    数学上,(离散,张三)≠(张三,离散)
    扩充:通过为关系的每个域附加一个属性名的方法取消关系元组的有序性
    数据库上:(离散,张三)=(张三,离散)

    基本关系具有以下六条性质:

    • 列是同质的,即每一列中的分量是同一类型的数据;
    • 不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性必须给不同的属性名;
    • 列的顺序可任意交换;
    • 任意两个元组不能完全相同;
    • 行的顺序可任意交换;
    • 分量必须取原子值,即每一个分量都必须是不可分的数据项。

    完整性约束规则

    几个基本概念

    • 候选键:给定关系模式R(U),K属于U,如果
      (1) R(U)的任何关系实例中的任意两个元组在属性集合K上的值都不相同----唯一性
      (2) K的任何真子集都不满足条件(1)----极小性
      称K是候选键。
      例:Student(姓名, 学生编号, 年级, 专业, 系)
      显然,学生编号是候选键。
      如果姓名不重复,姓名也是候选键。

    • 主键:一个关系模式可能具有多个候选键。
      当一个关系中具有多个候选键时,我们选择一个作为该关系模式的主键。
      候选键中的属性称为键(主)属性,其他属性称为非键(主)属性

    • 外部键:设X是关系模式R(U)的一个属性集合。如果X是另一个关系模式R’(U’)的主键,则称X是R(U)关于R’(U’)的外部键。
      例:外部键
      这里写图片描述

    关联完整性约束说明,任何关系的一个元组只能通过外部键与另一个关系中存在的元组相关联.


    关系运算

    • 基于代数的定义:关系代数
      这里写图片描述
    • 基于逻辑的定义:关系演算
      由于使用变量的不同,关系演算又分为元组关系演算和域关系演算。

    关系代数

    例: 两个关系实例
    这里写图片描述

    (1.) 并运算

    设R和S是n元关系,而且两者各对应属性的数据类型也相同。R和S的并操作定义为 R∪S = { t | t∈R∨t∈S }。
    白话: R和S关系合一起, 相同的不写

    这里写图片描述

    (2.) 差操作

    设R和S是n元关系,而且两者各对应属性的数据类型也相同。R和S的差定义为 R-S ={ t | t∈R∧tS}。
    白话: 因为是R-S, 找R在S关系中没有的

    这里写图片描述

    (3.) 笛卡尔乘积

    设R是n元关系,S是m元关系,R和S的的笛卡尔积定义为
    R×S={(r1,…,rn,s1,…,sm)|(r1,…, rn )∈R∧(s1, …,sm )∈S}。
    白话: 和普通的笛卡尔乘机差不多, 自己看看, 规律很好找.

    这里写图片描述

    (4. ) 投影操作

    设R是一个n元关系,R的投影操作定义为
    ∏i1,i2,…,im(R) = {(ri1, …,rim)|(r1 ,…,ri1,…,rim,…,rn)∈R}。
    白话: 看横行, 如果有两个横行相同, 只写一个. 因此若是S关系投影操作的话, 也就是有b和a

    这里写图片描述

    (5. ) 选择操作

    设R是一个n元关系,F是一个形如riθc的公式,其中θ∈{=,≠,>,<,≤,≥},R的选择操作定义为F(R)={(r1,…,ri ,…,rn )|(r1,…,ri ,…,rn )∈R∧riθc }。
    白话: 把符合条件的拿出来

    这里写图片描述

    (6. ) 交操作

    设R和S是n元关系,而且两者各对应属性的数据类型也相同。R和S的交操作定义为 R  S = { t | t∈R∧t∈S }= R-(R-S)。
    白话: 相同的拿出来

    这里写图片描述

    (7. ) 连接操作

    设R是n元关系,S是m元关系,A是R的属性,B是S的属性,A和B的值域具有相同的数据类型,θ∈{=, ≠, >, <, ≤, ≥}。R和S的连接操作定义为
    这里写图片描述
    其中,r[A]表示元组r在属性A上的值,s[B]表示元组s在属性B上的值。我们称A和B是连接属性。

    白话: 两个关系先做笛卡尔积运算, 然后再根据条件进行比对. 留下符合条件的
    例子:

    这里写图片描述

    (7. 1) 几个特殊的连接操作

    ①自然连接 设Att(R)和Att(S)分别是R和S的属性集合。连接条件为R.B=S.B,连接的结果关系的属性集合为Att(R)∪(Att(S)-{B}),即B在结果关系中只出现一次。称这样的连接操作为自然连接操作,

    白话: 找相同的然后拼在一起, 例如B属性, 看看下面的例子;

    这里写图片描述

    ②复合连接 类似于自然连接,只是连接结果不包含连接属性。

    这里写图片描述

    ③半连接

    这里写图片描述

    白话: 下面的例子由于是R半链接S, 则因此拿R去和S所比较

    这里写图片描述

    (8. ) 商操作

    设R和S是两个关系,Z是R的属性集合,X是S的属性集合,XZ,Y=Z-X。R除以S的商定义为R÷S={t|t∏Y(R)且sS, tsR},其中,ts表示由t和s的各属性值构成的一个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;

    这里写图片描述


    关系代数运算例题

    一个COMPANY数据库

    这里写图片描述

    下面介绍了一些需要用到的属性解释

    NAME--员工名字
    SSN--员工编号
    SUPERSSN--上司编号
    DNO--部门编号
    
    DNUMBER--部门编号
    MGRSSN--负责人编号
    
    PNAME--项目名称
    PNUMBER--项目编号
    
    ESSN--员工编号
    PNO--项目编号
    

    问1: 参加了p2项目的员工号(由于符号不太好打, 我手写的)

    这里写图片描述

    语言解释: 在WORKS_ON表中选择PNO=P2的元组, 再对员工号即ESSN进行投影.

    问2. 在“研发部”工作的所有工作人员名字

    这里写图片描述

    语言解释: 1. EMPLOYEE表与DEPARTMENT表在部门编号相等的条件下, 进行连接, 然后再新表中选择DNAME=”研发部”, 最后对NAME进行投影.
    2 . 先在DEPARTMENT中选择”研发部”, 然后与EMPLOYEE进行连接, 然后投影

    问3. 没有参加项目p1的工作人员名字

    这里写图片描述

    语言解释: 在WORKS_ON中选择P1项目, 与EMPLOYEE进行连接, 然后对NAME进行投影得到参加p1工作人员的名字, 最后用所有的名字减去它.

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

    2017-03-16 19:18:00
    为什么我们要学习数据库关系运算? 学习和理解关系运算的机理,对于理解关系数据库中的数据查询机制有十分重要的意义。 我们可能知道多表查询的时候要消除重复多余的数据,那重复多余的数据...

    前言

    前面已经说了数据系统的概述了,关系模型是目前用得最多的数据模型,其中一个优点就是:有严格的数学理论根据。本文就是来讲解数据库中的各种关系运算的!本文不做数学概念的深入,只要理解相关的概念即可!

    为什么我们要学习数据库关系运算?

    学习和理解关系运算的机理,对于理解关系数据库中的数据查询机制有十分重要的意义。

    我们可能知道多表查询的时候要消除重复多余的数据,那重复多余的数据怎么产生的呢??WHERE字句又是怎么筛选数据的呢??这些问题我们在关系运算中可以找到答案的。

    学习数据库的关系运算,会让我们明白SQL语句是怎么执行的,是通过什么手段让我们得到想要的结果。


    学习大纲

    这里写图片描述

    笛卡尔积

    什么是笛卡尔积?

    笛卡尔积简单来说就是两个集合相乘的结果

    为什么查询数据库会出现笛卡尔积

    前面的博文已经说了,关系模型是关系模式的集合

    数据库中的两张表就相当于两个集合,当我们使用SELECT语句查询数据的时候,DBMS内部就是以集合相乘的运算得出结果

    笛卡尔积的产生过程

    我们发现:笛卡尔积的基数是每个集合的元组相乘
    这里写图片描述

    得出来的数据内容是难以符合现实中的实际情况的

    这里写图片描述

    例子

    为了更好地看见效果,我都会以实际的SQL语句来看效果,然后说明问题的。

    emp表的记录有14条:

    这里写图片描述

    dept表有4条记录:

    这里写图片描述

    我们来看看SMITH,在emp表中,他只在20部门。

    这里写图片描述

    但在两张表查询后,10、20、30、40部门他都在了!!我们再观察56条数据,发现每个人都有4个部门,这样的数据是不合理的!!

    这里写图片描述

    再回到初衷,我们查询两张表的目的是什么??在查询员工信息的同时,也能知道员工的部门名称是什么!!!所以,我们查询的记录数是不应该有56条这么多的。。我们查询的记录数应该是员工表的记录数,也就是14条而已!

    我们再来分析:emp表中有deptno字段,dept表中也有deptno字段!而且发现,emp表中的deptno字段的取值范围是由dept表中deptno字段来决定的!!!

    所以,我们可以使用等值连接(emp.deptno=dept.deptno)来消除笛卡尔积,这样就达到我们的目的了!

    这里写图片描述


    基于传统集合理论的关系运算

    在Oracle上,操作集合的语法提供了4个关键字:

    • UNION(并集,重复的元组不显示)
    • UNION ALL(并集,重复的元组也会显示)
    • MINUS(差集)
    • INTERSECT(交集)

    显示查询结果的全部信息,消除重复的元组

    这里写图片描述

    例子

    查询所有办事员和经理的信息

    
        SELECT *
        FROM emp
        WHERE job = 'MANAGER'
    
        UNION
    
        SELECT *
        FROM emp
        WHERE job = 'CLERK';
    

    这里写图片描述

    注意:使用UNION并操作,比使用关键字OR的性能要好!


    返回查询结果相同的部分

    这里写图片描述

    例子

    查询10部门的信息

    
    SELECT *
    FROM dept
    
    INTERSECT 
    SELECT *
    FROM dept
    WHERE deptno = 10;
    
    

    (全部部门和部门10只有部门10是相同的,所以最后返回的是部门10的结果)

    这里写图片描述


    返回的查询结果是

    这里写图片描述

    这里写图片描述

    例子

    
    SELECT *
    FROM dept
    
    MINUS
    SELECT *
    FROM dept
    WHERE deptno = 10;
    
    

    这里写图片描述


    关系代数特有的关系运算

    投影

    投影的运算过程:

    首先按照j1,j2,…,jk的顺序,从关系R 中取出列序号为j1,j2,…,jk(或属性名序列为Aj1,Aj2,…,Ajk )的k 列,然后除去结果中的重复元组,构成一个以Aj1,Aj2,…,Ajk为属性顺序的k 目关系。

    简单来说:取出一个查询结果中某某列,并消除重复的数据,这就是投影!

    • 投影是从列的角度进行的运算
    • 投影的下标可是列序号,也可是列属性名

    例子

    查询出所有部门的编号

    
    
    
    SELECT deptno
    FROM dept;
    

    查询时的过程:先查询得出dept表的所有结果,再通过投影运算只提取”deptno”的列数据,如果 SELECT 后边跟的是”*”,那么就是投影全部数据!

    这里写图片描述


    选择

    使用比较运算符、逻辑运算符,挑出满足条件的元组,运算出结果!

    例子

    查询出工资大于2000的员工的姓名

    
    
    SELECT ename
    FROM emp
    WHERE sal > 2000;
    

    过程:首先查询出emp表的所有结果,使用选择运算筛选得出工资大于2000的结果,最后使用投影运算得出工资大于2000员工的名字!

    这里写图片描述


    除运算

    除运算的实际应用我还没想明白~~~如果有朋友知道除运算能够用在数据库的哪处,请告诉我一声哈。。

    我们也了解一下除运算的过程吧:关系R有ABCD,关系S有CD,首先投影出AB(因为S有CD),再用投影出来AB的结果和关系S做笛卡尔积运算。如果做的笛卡尔积运算记录在R关系中找到相对应的记录,那么投影的AB就是结果了!

    这里写图片描述


    连接运算

    连接运算其实就在笛卡尔积运算的基础上限定了条件(某列大于、小于、等于某列),只匹配和条件相符合的,从而得出结果!

    自然连接

    自然连接就是一种特殊的连接运算,它限定的条件是【某列等于某列】。自然连接我们经常使用到。消除笛卡尔积其实就是自然连接了!

    例子

    
    SELECT *
    FROM emp, dept
    WHERE dept.deptno = emp.deptno;
    

    设定将dept表的deptno列和emp的deptno列为相同【这就是自然连接】


    <script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
    展开全文
  • 一、关系数据结构及形式化定义 1、关系 关系模型的数据结构非常简单,只包含单一的数据结构——关系。... 笛卡儿积是域上的一集合运算。 定义:给定一组域D1,D2,...,Dn,允许其中某些域是相同的,D...
  • SQL数据库关系运算

    千次阅读 2018-11-02 21:29:14
    设有如下所示的关系S、SC和C, S(sno,sname,ssex,sage,sdept)(学号,姓名,性别,年龄,专业) C(cno,cname,cpno,credit,tname)(课程号,课程名,先行课号,学分,老师姓名) SC(sno,cno,grade) 试用关系代数表达式表示...
  • 数据库关系运算——除运算

    万次阅读 多人点赞 2018-07-02 22:29:05
    书上给“除运算”的定义是: 设关系R除以关系S的结果为关系T,则T包含所有在R但不在S中的属性及其值,且T的元组与S的元组的所有组合都在R中。 我对此不是很理解。 直到看到这样的解读,方才恍然大悟: ...
  • 数据库 - 关系代数与关系运算

    千次阅读 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 ...
  • 数据库关系运算

    千次阅读 2016-09-27 23:02:19
    数据库本质上就是一些数据的集合,所以对一个数据库的操作就是十分类似于对一些集合的操作。这篇博客对我们会遇到的数据库关系作一个小小的总结。传统的集合运算在这里,共有并,差,交和笛卡尔积四种运算
  • 数据库中关系代数中的关系运算

    千次阅读 2016-10-25 16:42:30
    除法运算的定义: 这个概念的描述的非常抽象,刚开始学习的同学完全不知所云。这里通过一个实例来说明除法运算的求解过程: 设有关系R、S 如图所示,求R÷S 的结果: 求解步骤过程: 第一步:找出关系R和关系S中...
  • 数据库专门的关系运算

    千次阅读 2020-03-23 23:01:48
    选择运算
  • 网络式数据库关系数据库三种

    千次阅读 2014-03-09 15:26:21
    数据库通常分为层次式数据库、网络式数据库关系数据库三种。而不同的数据库是按不同的数据结构来联系和组织的。 1.数据结构模型 ⑴数据结构 所谓数据结构是指数据的组织形式或数据之间的联系。如果用D表示...
  • 关系数据库 一、关系数据结构及形式化定义 1.关系 单一的数据结构----关系 现实世界的实体以及实体间的各种联系均用关系来表示 逻辑结构----二维表 从用户角度,关系模型中数据的逻辑结构是一张二维表 建立在集合...
  • 1、关系代数运算符集合运算符:并(U)、差(-)、交(∩)、笛卡尔积(×)专门的关系运算符:选择(∂)、投影(π)、连接(∞)、除(÷)算术比较符:大于(>)、大于等于(≥...
  • 数据库-关系运算

    千次阅读 2017-10-18 11:29:16
    数据库中的关系运算包括选择、投影、连接、除等。 1、选择 选择又称限制,其实就是在关系R中选择满足给定条件的诸多元组,元组其实就是表中的一行数据称为元组。 其实选择运算就是从一个关系,比如说关系R中选取可以...
  • 数据库关系运算详解

    千次阅读 热门讨论 2016-11-03 22:23:28
    THANKS FOR YOUR TIME ;希望可以帮助大家,欢迎交流
  • 数据库集合运算关系代数

    千次阅读 2016-03-17 15:45:44
    D2=年龄集合(AGE)={17,18} 二:笛卡尔积:域上定义的一集合运算,就是将每个域中的元素与其它域中的元素分别去组合,组合得到的笛卡尔积中每一个元素叫做一个元组。如图,是D1和D2的笛卡尔积。 NAME AGE yang 17 ...
  • 数据库关系运算法则应用 题目:如下面三图表示(Student,Grade,CourseNum)解决一下4个问题: Q1: 查询性别为女的学生信息 Q2:查询选了课的学生学号 Q3:查询编号为11课程的学生成绩 Q4: 查询至少...
  • 直接从例子来理解:关系r 除关系 s 在这里插入图片描述 第一步、把s看成一块整体,求属性的交集的所在元组集合,图中红框部分 第二步、所选出来的红框部分减去s这个整体即可 结果如下图: ...
  • 数据库 - 关系数据库

    千次阅读 2015-05-03 13:13:04
    关系数据库提出关系模型的是美国IBM公司的E.F.Codd (Edgar Frank Codd,1923-2003) , “关系数据库之父” 1970年提出关系数据模型 E.F.Codd, “A Relational Model of Data for Large Shared Data Banks”, ...
  • 数据库关系运算范式分解例题

    千次阅读 2020-11-21 18:26:06
    一、 1.假设A能推B:那么每个A1所对应的B的属性值应该一样,由于B的第一行和第三行分别是B1和B3,故A不能推B。...发现只存在C推D,AB推C,AB推D三种关系, 那么主键为AB。 由于没有非主属性部分依赖于.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 149,859
精华内容 59,943
关键字:

关系数据库的三种关系运算