第四讲 关系模型之关系代数

第四讲 关系模型之关系代数

关系代数概述

关系代数运算的特点?

  • 基于集合,提供关系代数操作:并、差、笛卡尔积(广义积)、选择、投影、更名等基础操作
  • 交、连接、关系除等扩展操作,是一种集合思维的操作语言
  • 关系代数操作以一个或多个关系为输入,结果是一个新的关系(输入关系,输出关系)
  • 用对关系的运算来表达查询,需要指明所用操作,具有一定的过程性。
  • 是一种抽象语言,是学习其他数据库语言的基础

关系代数之基本操作

集合操作

    • 定义:假设关系R和关系S是并相容的,则关系R与关系S的并运算结果也是一个关系,它由或者出现在关系R中,或者出现在S中的元组构成
    • 并运算是将两个关系的元组合并成一个关系,在合并时去掉重复的元组**(去重)**
    • R并S和S并R是相同的
    • 首先要准确理解汉语的查询要求,再找到正确的操作(“或者”通常是并运算)
    • 定义:假设关系R和关系S是并相容的,则关系R与关系S的交运算结果也是一个关系,它由同时出现在关系R和关系S中的元组构成
    • R交S和S交R运算的结果是同一个关系
    • 交运算可以通过差运算来实现
      • R交S=R差(R差S)=S差(S差R)
  • 首先要准确理解汉语的查询要求,再找到正确的操作(“既…又…”“…并且…”通常是交运算)
    • 定义:假设关系R和关系S是并相容的,则关系R与关系S的差运算结果也是一个关系,它由出现在关系R中但不出现在关系S中的元组构成
    • R-S与S-R是不同的
    • 首先要准确理解汉语的查询要求,然后再找到正确的操作(“是…但不含…”通常意义是差运算)
  • 笛卡尔积
  • 定义:关系R与关系S的广义笛卡尔积(简称广义积,或积,或笛卡尔积)运算结果也是一个关系,它由关系R中的元组与关系S的元组进行所有可能的拼接(或串接)构成。
  • R与S的笛卡尔积和S与R的笛卡尔积结果相同
  • 两个关系R和S,他们的属性个数分别为n和m(R是n度关系,S是m度关系)
    • 则笛卡尔积的属性个数=n+m
  • 两个关系R和S,他们的元组个数分别为x和y(R的基础x,S的基础y)
    • 则笛卡尔积的元组个数=x*y

纯关系操作

  • 投影(列)
    • 定义:给定一个关系R,投影结果也是一个关系,它从关系R中选出属性包含在A中的构成
    • 投影运算可以对原关系的列在投影后重新排列
    • 投影操作从给定关系中选出某些列组成新的关系,而选择操作是从给定关系中选出某些行组成新的关系
    • 用户可以根据需要,通过投影,选择操作查询他所关心的数据信息。
  • 选择(行)
    • 定义:给定一个关系R,同时给定一个选择条件condition(简记con),选择运算结果也是一个关系,它从关系R中选择满足给定条件condition的元组构成
    • 条件con由逻辑运算符连接比较表达式组成
    • 逻辑运算符:and,or,not
    • 比较运算符(>,<,= 等)
    • 条件的书写很重要,尤其是当不同运算符在一起时,要注意运算符的优先次序,优先次序自高至低为(括弧;比较运算符,逻辑运算符)
  • 连接
    • theta-Join连接
      • 投影与选择操作只是对单个关系(表)进行操作,而实际应用中往往涉及多个表之间的操作,这就是theta连接操作
      • 定义:给定关系R和关系S,R与S的连接运算结果也是一个关系,它由关系R和关系S的笛卡尔积中,选取R中属性A与S中属性B之间的满足theta条件的元组构成
      • 在实际应用中,连接操作经常与投影,选择操作一起使用
      • 第一步:对两个表进行笛卡尔积
      • 第二步:从广义笛卡尔积中选出符合条件的元组
      • 第三步:进行投影操作,得最终结果
      • P 更名操作,当一个表需要和其自身进行连接运算时,通常要使用更名操作
      • 当引入连接操作后,DMBMS可直接进行连接操作,不必先形成笛卡尔积(方便理解)
    • 等值连接(Equi-Join)
      • 定义:给定关系R和关系S,R与S的等值连接运算结果也是一个关系,它由关系R和关系S的笛卡尔积中选取属性A与S中属性B上值相等的元组所构成
      • 当theta连接中的运算符为‘=’时,就是等值连接,等值连接时theta连接的一个特例
      • 广义积的元组组合并不是都有意义的,另广义积的元组组合数目也非常庞大。因此采用theta/等值连接运算可大幅降低中间结果的保存量,提高速度
    • 自然连接(Natural-Join)
      • 定义:给定关系R和关系S,R与S的自然连接运算结果也是一个关系,它由关系R和关系S的笛卡尔积中选取相同属性组B上值相等的元组所构成
      • 自然连接是一种特殊的等值连接
      • 要求关系R和关系S必须有相同的属性组B
      • R,S属性相同,值必须相等才能连接
      • 要在结果中去掉重复的属性列
      • 第一步:对两个表进行广义笛卡尔积
      • 第二步:从广义笛卡尔积中选取相同列上值相同的元组
      • 第三步:去掉重复的列
      • 第四步:投影操作,得最终结果

关系模型基本运算的各种组合

并相容性

某些关系代数操作,如并、差、交等需要 满足并相容性

  • 参与运算的两个关系及其相关属性之间有一定的对应性,可比性或意义关联性
  • 定义:关系R和关系S存在相容性,当且仅当
    • 关系R和关系S的属性数目必须相同
    • 对于任意i,关系R的第i个属性必须和关系S的第i个属性的域相同

关系代数之组合与应用训练

  • 注意连接与积的差别
    • 连接有默认连接条件
    • 积+连接条件=连接
  • 注意有可能写错,虽然语法看起来是正确的,但语义是错误的
  • 或用更名操作
  • 注意并相容性,可以通过操作才满足并相容性
  • 书写关系代数表达式的基本思路
    • 检索是否涉及多个表,如不涉及,则可直接采用并,差,交,选择,投影,只要注意条件书写正确与否即可
    • 如涉及多个表,则检查
      • 能否使用自然连接,将多个表连接起来(多数情况是这样的)
      • 如不能,能否使用等值或不等值连接(theta连接)
      • 还不能,则使用广义笛卡尔积,注意相关条件的书写
    • ;连接完后,可以继续使用选择,投影等运算,即所谓数据库的“选投连”操作

关系代数之复杂扩展操作

    • 除法运算经常求解“查询…全部的/所有的…”问题
    • 前提条件给定关系R为n度关系,关系S为m度关系。如果可以进行关系R和关系S的除运算
    • 当且仅当:m < n
    • 定义:关系R和关系S的除运算结果也是一个关系,分两部分来定义
      • 先定义R除S结果的属性有哪些?
      • R除S结果关系是(n-m度)gua
      • 再定义R除S的元组怎么形成
      • emmm略
  • 外连接
    • 失配问题
    • 定义:两个关系R与S进行连接时,如果关系S或R中的元组在S或R中找不到相匹配的元组(失配问题),则为了避免该元组信息丢失,从而将该元组与S或R中假定存在的全为空值(null)的元组形成连接,放置在结果关系中,这种连接称之为外连接(Outer Join)
    • 外连接=自然连接(或theta连接)+失配元组(与全空元组形成的连接)
    • 外连接的形式:左外连接、右外连接、全外连接
      • 左外连接=自然连接(或theta连接)+左侧表失配元组
      • 右外连接=自然连接(或theta连接)+右侧表失配元组
      • 全外连接=自然连接(或theta连接)+两侧表失配元组

小结

关系代数的基本书写思路

  • 选出将用到的关系/表
  • 做“积”运算(可用连接运算替换)
  • 做选择运算保留所需的行/元组
  • 做投影运算保留所需的列/属性

关 系 模 型 基 本 运 算 的 各 种 组 合 → 数 据 库 管 理 系 统 → 关 系 模 型 基 本 运 算 关系模型基本运算的各种组合 \stackrel{}{\rightarrow} 数据库管理系统 \stackrel{}{\rightarrow} 关系模型基本运算

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
列昂惕夫投入产出模型是一种经济模型,它描述了一个国家或地区的经济活动中,各个部门之间的相互依赖关系。该模型的基本假设是,一个国家或地区的经济活动可以分为若干个部门,每个部门都需要一定的投入(输入)才能产生一定的产出(输出),而这些投入和产出之间存在着一定的关系。通过建立这种投入产出模型,可以对各个部门之间的依赖关系进行分析和评估,为政府制定经济政策提供参考依据。 具体来说,列昂惕夫投入产出模型可以表示为一个矩阵方程: $$\mathbf{Y} = \mathbf{AX}$$ 其中,$\mathbf{Y}$ 是一个 $n\times 1$ 的列向量,表示各个部门的总产出;$\mathbf{X}$ 是一个 $m\times 1$ 的列向量,表示各个部门的总投入;$\mathbf{A}$ 是一个 $n\times m$ 的矩阵,表示各个部门之间的投入产出关系。矩阵 $\mathbf{A}$ 的第 $i$ 行第 $j$ 列元素 $a_{ij}$ 表示第 $j$ 个部门每生产 1 元的产出需要向第 $i$ 个部门购买 $a_{ij}$ 元的投入。 列昂惕夫投入产出模型的核心思想是,通过矩阵 $\mathbf{A}$ 的逆矩阵 $\mathbf{A}^{-1}$ 可以计算出各个部门的直接效应和间接效应。直接效应指的是当某个部门的产出增加时,对其他部门的影响;间接效应则指的是这种影响通过其他部门的中间消费而产生的效应。这些效应可以通过矩阵乘法来计算,从而得到一个完整的投入产出模型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

霖承科技 LinChance

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值