精华内容
下载资源
问答
  • 数据库关系代数运算
    2022-05-14 17:53:50
    • 自然连接的结果显示全部的属性列,但是相同属性列只显示一次,显示两个关系模式中属性相同且值相同的记录.

    设有关系R、S如下图所示:
    R:

    ABC
    abc
    bad
    cde
    dfg

    S:

    ACD
    acd
    dfg
    bdg

    在关系R和S中,属性列A和C相同,因此,自然连接后A和C只能出现一次.

    在R中,属性AC对应的关系有:(a,c),(b,d),(c,e)和(d,g).
    在S中,属性AC对应的关系有:(a,c),(d,f)和(b,d).
    两者相同的关系对为:(a,c)和(b,d).进行自然连接后的关系表示为:

    R⋈S:

    ABCD
    abcd
    badg
    更多相关内容
  • 数据库关系代数简单查询部分例题
  • 数据库关系代数运算

    2018-07-26 17:27:00
    转自数据库-关系代数(类型、完整性约束、基本运算、扩展运算) (1)基本概念 ① 属性和域: 每个事物有很多属性,每个属性对应的取值范围叫做域,所有对域都是原子数据(第一范式) ② 相关名词 n元关系:R...

    转自数据库-关系代数(类型、完整性约束、基本运算、扩展运算)

    (1)基本概念

       ① 属性和域:

        每个事物有很多属性,每个属性对应的取值范围叫做域,所有对域都是原子数据(第一范式)

       ② 相关名词

        n元关系:R(D1,D2,D3...Dn)是n元关系,其中关系属性的个数称为“元数”,元组的个数称为“基 数”,也就是记录值。

        候选码:若关系中某一个属性或者属性组的值可以唯一的标识一个元组,则称为候选码

        主码:可以选择任意一个候选码作为主码

        主属性:包含在任何候选码中的属性叫作主属性

        全码:关系模型中所有属性都是这个关系模型的候选码,称为全码

        外码:关系模式中的属性非该关系的码,则称为外码

        ③ 三种类型:

        基本表:实际存在的表

        查询表:查询结果对应的表

        视图表:由基本表和其他视图表导出的表,不是实际存在数据库中

        ④ 完整性约束:

        实体完整性:主属性A不能为空值

        参照完整性:用实体之间的关系来描述,若F是关系R的外码,则F或者是空值,或者是某个元组的    主码值

        用户定义完整性:根据具体关系数据的约束条件,比如数据范围等

    (2)关系五种基本运算

        ① 并:

        R,S具有相同的关系模式(元素相同,结构相同),记为R U S,返回由R或者S元组构成的集合组成

        ② 差:

        R,S具有相同的关系模式(元素相同,结构相同),记为R-S,右属于R但不属于S的元组组成

        ③ 广义笛卡尔积:

        R×S由n目和m目的关系R,S组成一个(n+m)列的元组集合,若R有K1个元组,S有K2个元组,则R×S有K1*K2个元 组

        ④ 投影(π) :

        从关系的垂直方向开始运算,选择关系中的若干列组成新的列。

        ⑤ 选择(σ):

        选择从关系的水平方向进行元算,选择满足给定条件的元组组成新的关系。

    (3)扩展的关系代数运算

        ① 交:

        R∩S=R-(R-S),R,S具有相同的关系模式

        ② 链接:

        链接分为θ链接,等值链接和自然链接

       θ链接:从R,S的笛卡尔积中选择满足一定条件的元组

       等值链接:当θ为“=”时为等值链接

       自然链接:是一种特殊的等值链接,比较的分量必须是相同的属性组,并在结果集中去掉重复列,如果没有重复列,自然链接就转换为笛卡尔积

        ③ 除:

        同时从水平方向和垂直方向进行运算,给定关系R(X,Y)和S(Y,Z),X,Y,Z为属性组,R÷S应当满足在X上的分量值x的像集Yx包含关系S在属性组Y上的投影集合:

    例如:

                       R是:

    A B C D
    a b c d
    a b e f
    a b h k
    b d e f
    b d d l
    c k c d
    c k e f

                       S是:  

    C D
    c d
    e f

                       则R÷S:    

    A B
    a b
    c k

       ④ 广义投影:

         广义投影运算容许在投影列表中使用算法运算,实现对投影运算的扩充,投影出的列不一定是原来的列,可以是通过计算出来的列。

        ⑤ 外连接:

         由于自然链接会丢失一些信息,而外链接可以处理由于链接运算而缺失的信息,外链接分为左外链接、右外链接、全外链接。

        左外链接:取出左侧关系中所有与右侧关系中任一元素都不匹配的元组,用null来填充右侧的关系 属性。

        右外链接:取出右侧关系中所有与右侧关系中任一元素都不匹配的元组,用null来填充左侧的关系属性。

        全外链接:完成左外链接和右外链接的操作。

    转载于:https://www.cnblogs.com/zjh0932/p/9373153.html

    展开全文
  • 数据库关系代数详解

    万次阅读 多人点赞 2021-02-26 16:35:55
    数据库关系代数 1. 关系代数的运算 1.1 传统的关系运算 传统的关系运算起源于数学的集合论,有下面几种: 笛卡尔积运算运算运算运算 1.2 专门的关系运算 选择 投影 连接 除运算 1.2.1 关系运算中的基础...

    数据库关系代数

    1. 传统的关系运算

    传统的关系运算起源于数学的集合论

    1. 笛卡尔积运算
    2. 差运算
    3. 交运算
    4. 并运算

    2. 专门的关系运算

    数据库中特有的运算规则

    1. 选择
    2. 投影
    3. 连接
    4. 除运算

    2.1 关系运算中的基础概念

    在学习关系代数的时候,脑海中要时刻拥有一张表格,还有表格的一些参数,表格如下:

    比如说我们每个人都见过成绩单,牢记以下的比喻

    • R(关系模式)就是一张表格(成绩单)。

    • R[A1, A2, A3,…Ai] = R[语文,英语,数学……学科]

    • t 为某个同学

    • t [Ai] 就可以当作某个同学的某一门成绩

    例如:R为期中考试全班的成绩单,R[A1, A2, A2…Ai]为考试所有科目,t 代表了张三这个人,t[Ai]代表了张三某门课程的考试成绩。

    • A不再是单独的一个属性,A可以代表一个或者多个属性
    • t[A]也不再是单独的某个属性分量,A代表多少个属性,t[A]就可以代表多少个属性分量
    • 做一个比喻,A再也不单独是某个学科,而是可以代表一科或者多科学科
    • t[A]也就不当作某个同学的一门成绩,而是可以当成某个同学的多门成绩,具体看A代表了多少学科
    • A头上一横……)就代表了除了A代表的学科以外的所有学科

    2.2 元组的连接

    通过连接得到的这个元组有以下属性

    • 前 m 个分量来自于 R 表中的一个 m 元组
    • 后 n 个分量来自于 S 表中的一个 n 元组

    2.3 象集(除法运算重要工具)

    给了我们一个关系R(X,Y)XY都代表了一个属性组,也就是XY都是属性的数量都是一列到多列

    • 从上面的比喻来说,X是成绩单一门课程的成绩或者多门课程成绩,Y也是一门课程的成绩或者多门课程的成绩
    • t[X] = x时: xR中的象集为:Yx = {t[Y] | t 属于 R, t[X] = x}
    • 公式比较难懂,但是其实本身很简单也十分容易寻找

    如下例:

    3 数学上的运算

    3.1 并运算

    能够使用并运算的两个前提

    1. 两张表格的元一样(两张表格列数一样)
    2. 相同的属性取自同一个域(属性都一样)

    如图,在合并了之后呢,两个原始的表格和合并之后的新表格元数一样(列数一样)

    • 如果两个表之间有重复的元组,并运算会做去重处理,类似于集合的之间的并集

    3.2 差运算

    能够使用差运算的两个前提

    1. 两个表格列数一样
    2. 两个表格的属性都相同

    两个表进行了差运算之后,都仍然是n列

    S-R表:S表中有任意一个元组和R表的一样,S表就去掉这个元组

    R-S表:R表中有任意一个元组和S表的一样,R表就去掉这个元组

    简言之:就是一张表,嫌弃另外一张表,我身上有那里和你一样,我改还不行嘛!

    3.3 交运算

    交运算能够使用的两个前提

    1. 表格的列数相同
    2. 表格的属性都相同

    两个表格进行并运算,就是把两个表格中一样的元素找出来,找出两张表格的共性

    3.4 笛卡尔积(万能运算)

    没有任何使用限制,万物皆可笛卡尔积。

    R表n元关系,k1个元组(k1行,n列)

    S表m元关系,k2个元组(k2行,m列)

    R表S表进行笛卡尔积

    得到一个(k1 * k2)元(n + m)列的新表,如下:

    两个表进行了笛卡尔积运算之后

    以上就是所有的数学关系代数运算

    4. 关系运算

    整个关系代数的学习需要使用学生课程选课数据库,需要熟悉以下表格:

    4.1 表格简介

    Student表:

    Course表:

    SC表:


    4.2 选择(Selection)

    • 选择也称之为限制
    • 选择是针对的元组进行选择,选择出满足条件的元组

    选出来的结果是一行行的

    4.2.1 选择查询(例1)

    查询全体信息系(IS)的学生所有信息

    1. 信息系在Student表格中有,所有我们的R表的位置是Student

      Student表格的属性集合为{"Sno", "Sname", "Ssex", "Sage", "Sdept"}

    2. 我们需要的条件是F(Sdept = IS)

    所以题目的答案为:

    查询出来的结果为:

    4.2.2 选择查询(例2)

    查询年龄小于20岁的学生所有信息

    1. 年龄在Student表格中存在,所以我们现需要查询的表格为Student表格
    2. 我们需要的条件是年龄小于20岁F(Sage < 20)

    所以题目的答案为:

    查询出来的结果为:

    4.2.3 选择查询(练习题)

    1. 查询性别为女生的学生信息
    2. 查询学分等于四分的课程信息
    3. 查询CS系的学生信息

    总结:选择运算是查询符合条件的行


    4.3 投影(Projection)

    我们可以看见,使用选择运算的时候,一行的所有全部信息我们都获取了,比如我查询了小于20岁的学生信息,我连学生的名字,学号,性别所有的信息都知道了,因为选择是选择出一行一行的结果,那么如果我只想知道小于20岁的学生名字,其他学号,学院等等的信息我都不想知道

    这里就需要投影运算

    投影运算是针对属性进行选择的运算,也就是投影是选择出符合条件的一列,并且会自动取消某些行(后面会举例说明)

    4.3.1 投影查询(例1)

    查询学生的姓名和学生的系,从需要查询的这个条件可以看出来我们需要查询的是姓名列和学生所在系列

    1. 学生的姓名和所在系在Student表格中,所以我们需要在Student表格中进行查询
    2. 需要查询的属性为学生的姓名和学生的系

    题目的答案为:

    Sname 和 Sdept之间用逗号分隔

    最终我们查询获取的答案如下:

    4.3.2 投影查询(例2)

    查询学生表Student中有那些系

    1. 首先,我们需要在Student表中进行查询
    2. 我们需要查询的属性为系

    题目答案为:

    可是我们最终查询出来的答案应该是什么样子的呢?

    图中演示的就是选择运算的自动去重功能

    总结:投影查询得到的是一列

    4.3.3 选择和投影配合使用(重点)

    选择查询是挑选出符合条件的行,投影查询是选择想要的列,那么如果想定位到一个具体的属性,就需要两种查询方式一起使用。

    如图:

    当我们需要全体数学学院的学生姓名,注意,只需要学生的姓名,其他的信息都不需要。

    • 先用选择运算将所有的数学学院的学生挑选出来

    选择运算的基础上,把需要符合条件的姓名通过投影运算查询出来

    全体数学学院的学生的姓名(交叉区域):言小白,李白。


    4.4 连接(Join)

    连接的含义:从两个关系的笛卡尔积中选择属性之间满足一定关系的元组

    解释:在两张表的笛卡尔积后得到的那张大表中再次选取一些符合我们条件的元组

    多种符号:不同的连接方式对应的符号也有一些细微的差别

    4.4.1 一般连接(例题)

    一般连接就是条件连接,需要将两个表格按照条件连接起来

    第一步:

    第二步:

    第三步:

    因为所有需要挑选的元组都挑选完毕,所以最终的结果如下图

    4.4.2 等值连接

    等值连接是一种特殊的一般连接

    • 两个表需要有相同的属性列

    下面通过具体的题目来进行了解

    第三步:

    最终的结果为:

    4.4.3 自然连接(特殊的等值连接)

    自然连接是一种特殊的等值连接

    这里我们发现了等值连接的一个缺点,R.B和S.B属性是相等的,而我们只需要其中一列就可以,所以R.B和S.B属性只需要保留任意一列就可以了。

    换句话说,等值连接因为属性重复而造成了额外的空间浪费,所以我们需要使用自然连接来解决这个问题(去掉重复的列)。

    4.4.4 外连接

    我们从自然连接中又发现了一个问题,如下图:

    图中标记为红色的地方:

    在做等值连接时由于彼此之间没有对应的元组(彼此之间特有的元组,我有的你没有,或者你有的我没有,这种情况肯定不会相等),在自然连接和等值连接的时候都会被丢弃,这种连接叫做内连接

    而有时候我们需要保留一张表中这种特有的元组,这些元组不能被丢弃,所以需要使用与内连接相反的连接——外连接解决特有的元组被丢弃的问题

    外连接:把R表和S表被丢弃的元组捡了回来,并且在最终连接的表中没有的值用NULL替代,最终结果如下

    • 左外连接:因为R表在左边,所以最终的结果只保留R表中被丢弃的特有元组S表的特有元组仍然丢弃
    • 右外连接:因为S表在右边,所以最终的结果只保留S表中被丢弃的特有元组R表的特有元组仍然丢弃

    4.4.5 例题

    很多时候需要查询的数据分布在两个表格甚至多个表格中,使用连接将表格连接在一起进行查询是十分常用的操作

    有表格信息如下:

    一、查询所有学生的学号,姓名,课程号以及成绩

    • 需要查询的信息分布 S 表和 SC 表中
    • 两张表拥有相同的属性,即Sno,所以连接条件就是 S.sno = SC.sno

    答案:

    当然,使用自然连接也是正确的,自然连接会自动找到相同的属性,并且默认条件就是相同属性的值相同,自然连接就是特殊的等值连接

    二、查询CS系的学生的学号,课程号,以及成绩

    • 需要查询的信息分布在 S 表和 SC 表中
    • 两张表相同的属性是 Sno,所以依靠 Sno 将两张表连接
    • 需要对连接后的表格进行选择,条件是 Sdept = ‘CS’

    答案:

    其实这道题可以再优化一下

    因为我们只需要 S 表中属于CS系的,没必要将 S 表的所有系的学生都和 SC 表连接起来
    所以可以先把 S 表中 CS 系的学生挑选出来,然后再进行连接操作。

    优化后的答案:

    很明显优化后的结果挑选速度更快,占用空间更小。


    4.5 除运算

    一些学习上的感悟:除运算在关系代数中是一个十分强大的工具,但是除法运算的定义看起来十分的晦涩难懂,可定义又是十分重要的,相信很多人在看教科书的过程中,每次看定义这块的时候都会很懵,然后看了例子之后就会理解定义的意思,但是懂了定义的大意之后很少就会有人再回头去理解定义,例子固然是用来让我们可以清晰的理解定义的大意的,但是我们通过例子理解定义的大意之后,我们仍然要回归定义,只有这样我们才能学得深入(个人对于学习上的一些理解,欢迎一起交流)

    4.5.1 除运算基本概念

    假设我们手里面有一张数据库如下:

    现在我们有一个问题,就是我们想要找出学习最积极的那位学生,也就是选修了所有课程的那个学生,先暂时放弃除法运算,以我们最朴素的情感用自己的逻辑来解决这道题目,按照自己的想法,就像设计一个程序一样,需要几步做出这个问题

    以下是按照我自己的想法:

    • 首先,把SC表拆了,把每个学生单独做成一个表,如下:

    • 然后问题就变成了拆开之后的表格和C表一一比对,找出拆开之后的三个表格中的Course属性和C表一模一样(也就是拆开之后包含了所有课程的表),然后找出那个人是谁,然后问题就解决了

    实际上,我们的除法运算就是这个逻辑,但是除法运算的更为严谨,以下是除法运算的的步骤(SC ÷ C),这里我们仍然采用我们上面使用的数据库,直接说结论(SC ➗ C)能找出答案

    • 第一步:找出C表中和SC表中相同的属性,也就是C属性,对C属性做投影操作(也就是找出总的课程有多少门)

    • 第二步:找出SC表中和C表不相同的属性,也就是S属性,也对S属性做投影操作(找出一共有几个学生)

    • 第三步:找出SC表中S的象集(每个学生分别都选了些什么课)

    • 最后一步就是进行比对,只有张三的象集包含了所有C表中的所有课程,所以(SC ➗ C = 张三)

    简单的总结,当需要查询选取所有课程的学生的名单时

    • 需要获取所有的课程到底是那些课程,所以对C表进行投影
    • 需要获取选课的学生有那些,所以需要对SC表的S进行投影
    • 需要知道每个学生都选择哪些课程才能知道那个学生全选了课程,所以还需要的数据是SC表中,S的象集
    • 最后,需要进行比对操作,看看那个学生的象集包含了C表的投影

    除法运算像一个函数,封装了以上的所有功能,我们调用这个函数的时候,把正确的参数放进去,就可以得到我们想要的答案

    4.5.2 例题

    S表 :

    C 表:

    SC 表:

    题目如下:

    查询选修了所有课程的学生姓名,年龄

    1. 对 C 表进行投影,找出所有的课程编号
    2. 用 SC 表 C表,找出选了C表中所有课程的学生
    3. 将符合条件的学生的姓名和年龄找出来

    答案:

    其中,第2步的除法运算详细过程如下:


    当我们看完结论,做完题目,再回头看定义,除法运算的定义如下:

    反复多理解几次,也想用自己的话解释定义,但是定义太抽象了,不举例很难说清楚。

    ……只可意会不可言传……如果使用例子无非把上面的例子再说一遍。

    这里使用其他博客的对于除法运算的总结:RS÷S的意义就是:“在R和S的联系RS中,找出与S中所有的元组有关系的R元组”,这篇博客地址为:关系代数除法运算

    ❤️完结撒花❤️


    2021/5/24:特别鸣谢ai_leilei指出本文错误之处,现已修改!

    展开全文
  • 关系运算 数据库中的关系运算交、并、差、笛卡尔积、投影、选择、自然连接、除一共八种运算。 比较好理解是前面7个,除法稍微难一点,不过概念读个3-5遍,例题看个3遍差不多就会理解. ...

    关系运算

    数据库中的关系运算交、并、差、笛卡尔积、投影、选择、自然连接、除一共八种运算。

    比较好理解是前面7个,除法稍微难一点,不过概念读个3-5遍,例题看个3遍差不多就会理解.

     

     此处的   “/“  是或者的意思不是 除法 ÷

     除法 综合了前面的选择和投影的知识点,也算是检验一下前面的学的内容

     

    展开全文
  • 数据库关系代数运算之连接

    万次阅读 多人点赞 2018-06-26 15:03:24
    (1) θ联接 (从R和S的笛卡儿乘积中选取满足条件“iθj”的元组•(2)自然联接(naturaljoin) 两个关系R和S的自然联接操作具体计算过程如下: ① 计算R×S ; ② 设R和S的公共属性是A1,…,AK,挑选R×S中满足R...
  • 关系代数的八种基本运算 并 并,就是将两个或多个表并连起来,需要注意的就是在并的过程中,我们并不是直接一笼统地并起来,而且还要对相同的元祖进行合并,即并操作后的表中,相同的元组不可多次出现(该操作需满足...
  • 数据库基础】 几种基本的关系代数运算方法

    千次阅读 多人点赞 2020-04-15 19:27:10
    关系代数是一种抽象的查询语言,用对关系的运算来表达查询,作为研究关系数据语言的数学工具。 基本的关系代数算法: 传统的集合运算:并、交、差、广义笛卡尔积; 专门的集合运算:选择、投影、象集、连接(等值...
  • 数据库关系代数基本运算

    万次阅读 多人点赞 2019-01-08 16:27:29
    关系代数是以关系为运算对象的一组高级运算的集合。由于关系定义为属性个数相同的元组的集合,因此集合代数的操作就可以引入到关系代数中。关系代数中的操作可以分为两类:传统的关系操作,并、差、交、笛卡尔积(乘...
  • 数据库关系代数几道例题以及解析

    万次阅读 多人点赞 2021-05-08 19:37:41
    关系代数符号 σ,÷,∞,∪,∩,Π(映射),^(且),v(或),- 题目 用关系代数表示以下内容: ①查询CS系得学生,列出学号。 ②查询借阅《数据库》或者《艺术史》,并且超过天数30的男生的信息。 ③查询没有借阅...
  • 关系数据库关系数据模型关系是一个数学概念。 当把关系的概念引入到数据库系统作为数据模型的数据结构时,既有所限定和也有所扩充。 关系的数学定义例: 课程={离散,C语言…..},学生={张三,李四…..} 笛卡儿积...
  • 1、关系代数运算符集合运算符:并(U)、差(-)、交(∩)、笛卡尔积(×)专门的关系运算符:选择(∂)、投影(π)、连接(∞)、除(÷)算术比较符:大于(>)、大于等于(≥...
  • 数据库关系代数运算除法

    千次阅读 2019-07-01 14:57:57
    关系代数除法: 直接从例子来理解:关系r 除关系 s 在这里插入图片描述 第一步、把s看成一块整体,求属性的交集的所在元组集合,图中红框部分 第二步、所选出来的红框部分减去s这个整体即可 结果如下图: ...
  • 数据库关系代数复杂查询部分例题
  • 一、关系数据结构及形式化定义 1、关系 关系模型的数据结构非常简单,只包含单一的数据结构——关系。... 笛卡儿积是域上的一种集合运算。 定义:给定一组域D1,D2,...,Dn,允许其中某些域是相同的,D...
  • A∪B = {t|t∈A∪t∈B} //属于A或属于B
  • SQL实现关系代数运算 并-交-差的处理 不带ALL表示去重, 而带有ALL表示保留冗余 运算 SQL语法 并运算 UNION [ALL] 交运算 INTERSECT [ALL] (mysql中未实现) 差运算 EXCEPT [ALL] (mysql中未实现) #学过...
  • 数据库-——关系代数的除法运算最白话解析

    千次阅读 多人点赞 2019-10-24 16:53:34
    数据库-——关系代数的除法运算及易错示例 除法运算 大概数据库中关系运算复杂点的也就是除法运算了,这也可能是很多入门新手数据库学习中遇到的第一个障碍。 接着我们来理清一下。 除法//话不多说,直接举例 ...
  • 数据库原理--关系代数之基本运算

    千次阅读 2020-03-08 21:09:23
    关系代数运算对象是关系,运算结果也是关系。 运算对象、运算符和运算结果是关系代数的三大要素。 关系代数运算可分为以下两大类: 1.传统的集合运算:并、交、差、笛卡尔积 2.专门的关系运算:选择、投影、连接...
  • 关系代数之基本操作 关系代数操作分为集合操作和纯关系操作: 并相容性 某些关系代数操作,如并、差、交等,需满足“并相容性”。 参与运算的两个关系及其相关属性之间有一定的对应性、可比性或意义关联性。 R(A1, ...
  • 选择条件中常常包含着与或非的运算。 例子:从下面表格中选择出年龄小于20岁的记录 表达式:“4”表示的是第四列(sage) 结果: 2.投影操作符 定义方式: 右下角表示的是域(也就是每一张表中每一列的表头) 例子...
  • 关系代数六种基本运算 select 选择 Project 投影 Union 并 set diffeence 差(集合差) Cartesion product 笛卡尔积 Rename 更名 关系的运算是指用户输入一个或者两个关系从而得到一个新的关系。 附加运算 Set ...
  • 数据库关系代数练习习题.docx

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,502
精华内容 5,800
关键字:

数据库关系代数运算