当前位置: 首页 > news >正文

2024022301-关系代数

关系代数

概述

关系代数是一种抽象的查询语言,用对关系的运算来表达查询,作为研究关系数据语言的数学工具。

关系代数的运算对象是关系,运算结果亦为关系。

关系代数的运算

普通的集合运算

  • 并、交、差

删除部分关系的运算

  • 选择、投影

合并两个关系元组的运算

  • 连接、积

改名运算

关系代数

并Union (∪)

  • R和S的并,R∪S,是在R或S或两者中的元素的集合
  • 一个元素在并集中只出现一次
  • R和S必须同类型(属性集相同、次序相同,但属性名可以不同)

交Intersect (∩)

  • R和S的交,R∩S,是在R和S中都存在的元素的集合
  • 一个元素在交集中只出现一次
  • R和S必须同类型(属性集相同、次序相同,但属性名可以不同)

差Minus (-)

  • R和S的差,R-S,是在R中而不在S中的元素的集合
  • R和S必须同类型(属性集相同、次序相同,但属性名可以不同)

投影Projection(π)

  • 从关系R中选择若干属性组成新的关系
  • πA1,A2,…,An®,表示从R中选择属性集A1,A2,…,An组成新的关系
  • 列的运算
  • 投影运算的结果中,也要去除可能的重复元组

广义笛卡儿积(×)

  • 关系R、S的广义笛卡儿积是两个关系的元组对的集合所组成的新关系
  • R×S:
    • 属性是R和S的组合(有重复)
    • 元组是R和S所有元组的可能组合
    • 是R、S的无条件连接,使任意两个关系的信息能组合在一起

选择Selection(σ)

  • 从关系R中选择符合条件的元组构成新的关系
  • σC®,表示从R中选择满足条件(使逻辑表达式C为真)的元组
  • 行的运算

条件连接(θ)

  • 从R×S的结果集中,选取在指定的属性集上满足AθB条件的元组,组成新的关系
  • θ是一个关于属性集的比较运算符
  • θ为“=”的连接运算称为等值连接。

自然连接

  • 从R×S的结果集中,选取在某些公共属性上具有相同值的元组,组成新的关系
  • R、S的公共属性
    • 属性集的交集(名称及类型相同)
  • 公共属性在结果中只出现一次
  • 等值连接

关系代数—除( ÷ )

  • 给定关系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]。
  • 例子

相关文章:

  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • 第五章、策略模式
  • win10开机黑屏,只有鼠标,解决方案
  • 【鸿蒙 HarmonyOS 4.0】状态管理
  • 【更换yarn的位置】解决yarn和nodejs不在同一盘下产生的某些命令应用失败问题
  • Python实战:xlsx文件的读写
  • [程序员] sipp运行时socket接收队列持续满载 - 文件系统访问慢
  • PostgreSQL 的实体化视图介绍
  • android 15
  • 服务器丢包的原因及解决方法
  • Vue30 自定义指令 函数式 对象式
  • react18加antd新手上路使用
  • Golang 并发 Channel的用法
  • 智慧物业信息管理系统平台及APP建设项目
  • 第2讲:C语言数据类型和变量
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • Docker: 容器互访的三种方式
  • Druid 在有赞的实践
  • Java基本数据类型之Number
  • PHP的Ev教程三(Periodic watcher)
  • Rancher如何对接Ceph-RBD块存储
  • scala基础语法(二)
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 批量截取pdf文件
  • 使用common-codec进行md5加密
  • 数组的操作
  • 一、python与pycharm的安装
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 交换综合实验一
  • 昨天1024程序员节,我故意写了个死循环~
  • ​你们这样子,耽误我的工作进度怎么办?
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • (AngularJS)Angular 控制器之间通信初探
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (poj1.3.2)1791(构造法模拟)
  • (论文阅读30/100)Convolutional Pose Machines
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (转载)从 Java 代码到 Java 堆
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • *2 echo、printf、mkdir命令的应用
  • .“空心村”成因分析及解决对策122344
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • @Conditional注解详解
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • [2544]最短路 (两种算法)(HDU)
  • [AIGC codze] Kafka 的 rebalance 机制
  • [Android 13]Input系列--获取触摸窗口
  • [AutoSar]BSW_Com07 CAN报文接收流程的函数调用
  • [CISCN 2019华东南]Web11