数据库系统原理---扩展运算及空值

扩展关系代数运算
扩展运算的三个组成部分分别是

  • 广义投影
  • 聚集函数
  • 外连接

广义投影
基本的投影是在所操作的关系内保留一些属性,形成新的关系,而广义投影是在投影过程中可以进行函数运算,举一个例子,有一个学生关系S={姓名,出生年月,学号},我们想得到新的学生关系之中,含有年纪,那我们可以使用广义投影,在投影过程中用现在时间减去出生年月,可以得到年龄
定义
实例
聚集函数
聚集函数是指函数的输入是一个集合,一个属性里面所有值的集合,然后返回值是单一的,下面是一些聚集函数

  • avg:平均值
  • sum:求和
  • max:最大值
  • min:最小值
  • count:统计多少个输入值
    可以看到上面的聚集函数输入都是多值,输出都只有一个值
    聚集函数的关系代数表示
  • E是指关系
  • G1,G2,G3,……,Gn是属性,把属性值相同的分一组,聚集函数就作用在每一组上。
  • F()是聚集函数
  • A是属性
    实例
    把关系r的C求平均
    把关系中属性A分组,对每一组中的C求和
    把关系B中属性B分组,对每一组中的C求平均

聚集函数用处很多,可以在学生选课表中用来选择一个学生的所有成绩的平均分,绩点等等之类的

外连接
在自然连接中,我们会把两关系笛卡尔积之后相同属性值不相同的元组去除,而外连接作为自然连接的补充,可以不用去除那些多余的元组。

  • 左外连接:指的是左边的表的多余元组在笛卡尔积之后不用去除

  • 右外连接:指的是右边的表的多余元组在笛卡尔积之后不用去除

  • 实例
    对于左外连接出现了空值,我们用null来表示
    右外和全外连接
    空值

  • 元组的某些属性值可以为空

  • null表示的是未知值或值不存在

  • 涉及空的算术运算表达式的结果为空

  • 聚集函数有空值为例外,不会结果为空,而是会忽略

  • 为了消除重复和分组,空值和其它值同等对待

  • 与空值相比较会返回一个特殊值叫:unknown

unkonw是介于true和false之间的一个状态,看下面的图表
逻辑状态
数据库的修改
数据库的内容可以使用下面的操作来修改:

  • 删除
  • 插入
  • 更新
    所有这些操作都可以使用赋值操作表示

第一个–删除

  • 删除请求的表达与查询的表达非常相似,不同的是,前者不是要将找出的元组显示给用户,而是将它们从数据库中去除

  • 这样只能将元组整个地删除,而不能仅删除某些属性上的值

  • 使用关系代数,删除可表达为:
    r -E → r
    其中r是指关系,E是指查询出来的元组
    删除实例第二个运算–插入

  • 为了将数据插入关系中:
    要么指明一个要插入的元组
    要么写出一个查询,其结果是要插入的元组集合
    实例
    插入实例
    第三个运算–更新

  • 某些情况下,可能只希望改变元组中的某个值,而不希望改变元组中的所有制

  • 可以用广义投影运算来完成这个任务:

  • 实例

  • 更新实例

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值