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

****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算

数据操作
    一、 常用的关系操作
        *查询:选择、投影、连接、除、并、交、差
        *数据更新:插入、删除、修改

        查询的表达能力是其中的最主要的部分
        *传统的集合运算是二目运算,包括并、交、差、广义笛卡尔积
        *专门的关系运算包括:选择、投影、连接、除4种运算。

        (1)并
            具有相同的目n(两个关系都有n个属性),R和S的并是由属于R或属于S的元组组成的集合,记为RUS。

        (2)差
            关系R和S具有相同的目n,R和S的差是由属于R但不属于S的元组组成的集合,记为R-S。

        (3)交
            关系R和S具有相同的目n,R和S的交是由既又属于S的元组组成的集合,记为R 交 S。

        (4)笛卡儿积
            R:n目关系,k1个元组
            S:m目关系,k2个元组
            R x S
            列:(n + m)列元组的集合
            *元组的前n列是关系R的一个元组
            *后m列是关系S的一个元组
            行:k1 x k2行元组
            *R x S = {tr ts | tr ∈ R ∧ ts ∈ S}

    二、关系运算
        关系数据库还有一些专门的运算,主要有投影、选择、连接、除法和外连接
        在关系代数中,由五种基本代数操作经过有限次符合的式子称为关系代数运算表达式。表达式的运算结果仍是一个关系。

        (1)投影
            投影操作从关系R中选择出若干属性列组成新的关系,该操作对关系进行垂直分割,消去某些列,并重新安排列的顺序,再删去重复元组。记作:

                    πA(R) = {t[A] | t ∈ R}
                    其中A为R的属性列。

            投影之后不仅取消了原关系中的某些元组(避免重复行)

        (2)选择
            选择操作在关系R中选择满足给定条件的所有元组,记作
                ∂F(R) = {t | t ∈ R ∧ F(t) = '真'}

            其中F表示选择条件,是一个逻辑表达式(逻辑运算符 + 算术表达式)。选择运算是从行的角度进行的运算。

        (3)θ连接
            θ连接从两个关系的笛卡儿积中选取属性间满足一定条件的元组
            记作:
                   略

            A和B:分别为R和S上度数相等且可比的属性组
                θ:比较运算符
            *一般连接

            *等值连接
                θ为“=”的连接运算称为等值连接
                等值连接的含义
                从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:
                        略

            *自然连接
                自然连接是一种特殊的等值连接
                    *两个关系中进行比较的分量必须是相同的属性组
                    *在结果中把重复的属性列去掉
                自然连接的含义
                    R和S具有相同的属性组B
                        略

        (4)外连接(OUTER JOIN)
            关系R、S进行自然连接时,如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值(null),这种连接叫做外连接。

        (5)左外连接
            关系R、S进行自然连接时,如果只把左边关系R中要舍弃的元组保留就叫做左外连接(LEFT OUTER JOIN 或 LEFT JOIN)

        (6)右外连接
            关系R、S进行自然连接时,如果只把右边关系s中要舍弃的元组保留就叫做右外连接(RIGHT OUTER JOIN 或     RIGHT JOIN)

        (7)除法
            给定关系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]


转载于:https://www.cnblogs.com/changemax/p/10015100.html

相关文章:

  • 模块讲解
  • 真·APIO2018滚粗记
  • 面试-线程池的成长之路
  • mysql建数据库的字符集与排序规则
  • “互联网+教育”时代 亚信安全助力江汉大学“安全”云化
  • Java多线程处理某个线程超时的问题
  • 学习网站
  • 下单快发货慢:一个 JOIN SQL 引起 SqlClient 读取数据慢的奇特问题
  • ES6之路之模块详解
  • [十二省联考]字符串问题
  • FFmpeg 硬件加速方案概览 (下)
  • Vuex.js状态管理共享数据 - day8
  • 量子计算可以给企业竞争带来的七种优势
  • IT兄弟连 JavaWeb教程 Servlet线程安全问题
  • laravel5.5 视图共享数据
  • [case10]使用RSQL实现端到端的动态查询
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 230. Kth Smallest Element in a BST
  • CSS魔法堂:Absolute Positioning就这个样
  • ES2017异步函数现已正式可用
  • ES6语法详解(一)
  • Git同步原始仓库到Fork仓库中
  • HTML-表单
  • Idea+maven+scala构建包并在spark on yarn 运行
  • Java 网络编程(2):UDP 的使用
  • mysql innodb 索引使用指南
  • node学习系列之简单文件上传
  • oschina
  • php ci框架整合银盛支付
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 你真的知道 == 和 equals 的区别吗?
  • 前端自动化解决方案
  • 延迟脚本的方式
  •  一套莫尔斯电报听写、翻译系统
  • 最简单的无缝轮播
  • 阿里云API、SDK和CLI应用实践方案
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • "无招胜有招"nbsp;史上最全的互…
  • $.ajax()
  • $.ajax,axios,fetch三种ajax请求的区别
  • (4) PIVOT 和 UPIVOT 的使用
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (九)c52学习之旅-定时器
  • (十六)串口UART
  • (转)nsfocus-绿盟科技笔试题目
  • (转)ORM
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • .gitignore文件设置了忽略但不生效
  • .NET 表达式计算:Expression Evaluator
  • .NET 设计模式初探
  • @ConditionalOnProperty注解使用说明
  • @RequestBody的使用
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...