热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

数据库系统概论专门关系运算除运算

上一周学了除运算,书上的定义乍一看完全懵,必须要好好分析一下才能理解。本弱鸡正在进步,下面就来分享一下自己的见解。如果发现错误,请指出。先看书上除运算的定义:我们知道关系是一张二维

上一周学了除运算,书上的定义乍一看完全懵,必须要好好分析一下才能理解。本弱鸡正在进步,下面就来分享一下自己的见解。如果发现错误,请指出。

先看书上除运算的定义:
《数据库系统概论-----专门关系运算---除运算》
我们知道关系是一张二维表,所以我们的研究对象就是两张二维表,作除运算之后还是一张二维表(即关系T)。T包含所有在R但不在S中的属性和属性的值。举个例子:
《数据库系统概论-----专门关系运算---除运算》
《数据库系统概论-----专门关系运算---除运算》
给出了R和S,按照定义,T中只包含属性A和属性A的值。A可以取{a1,a2,a3,a4}这4个值,S有3个元组,则每个值和S中的元组都有3种组合。看R中a1对应的B,C属性的值就有三种:
{(b1,c2),(b2,c3),(b2,c1)}刚好是S中的3个元组对应的B、C的值,满足“T的元组和S的元组的所有组合都在R中”。而a2,a3,a4以同样的方式就得不出这个结果。所以T=

《数据库系统概论-----专门关系运算---除运算》

再看用象集定义的除运算:
《数据库系统概论-----专门关系运算---除运算》
举个例子:
给出学生选课的信息表:
《数据库系统概论-----专门关系运算---除运算》
查询至少选修1号课程和3号课程的学生学号
一般的解决方法是把要解决的问题的条件“至少选修1号课程和3号课程”列成一张表,作为一个临时关系K
《数据库系统概论-----专门关系运算---除运算》
K也就是除运算的“除数”,“被除数”就是SC表,因为学号和课程号都在里面。由除运算的象集定义法,R(X,Y),S(Y,Z)在这里对应SC(学号,课程号),K(课程号,Z),Z就是其他属性组。
K在课程号(Cno)上投影的集合就是选取上图中的Cno列。
投影的概念:关系S上的投影是从S中选出若干属性列组成新的关系。这个很好理解。
“元组在X上的分量值x的象集Yx”,即表格的每一行在“学号”这个属性上都对应一个学号值x,象集Yx就是x所在的元组上的课程号的值。
《数据库系统概论-----专门关系运算---除运算》
求“K在课程号(Cno)上投影的集合(即课程号至少为1和3)包含在Yx里”对应的x值,就是求课程号至少包含1和3的学生的学号x。除运算的结果就是x集合,看SC表只有学号{201215121}满足条件。


推荐阅读
  • 运用DDD分层架构优化微服务代码设计
    在微服务实施过程中,确定合理的代码结构至关重要。本文探讨了如何利用领域驱动设计(DDD)的分层架构来优化微服务的代码模型,确保系统的可维护性和扩展性。 ... [详细]
  • 本文详细介绍了MySQL表分区的概念、类型及其在实际应用中的实施方法,特别是针对Zabbix数据库的优化策略。 ... [详细]
  • 成为一名高效的Java架构师不仅需要掌握高级Java编程技巧,还需深入理解JVM的工作原理及其优化方法。此外,对池技术(包括对象池、连接池和线程池)的应用、多线程处理、集合对象的内部机制、以及常用的数据结构和算法的精通也是必不可少的。同时,熟悉Linux操作系统、TCP/IP协议栈、HTTP协议等基础知识,对于构建高效稳定的系统同样重要。 ... [详细]
  • 本文探讨了Lua中元表和元方法的使用,通过具体的代码示例展示了如何利用这些特性来实现类似C语言中的运算符重载功能。 ... [详细]
  • 本文详细探讨Java中Scanner类的两个重要方法——nextInt()和nextDouble(),并通过实例代码演示如何使用这些方法来处理用户输入。 ... [详细]
  • Qt应用开发:创建基本窗口
    本文介绍如何使用Qt框架创建基础窗口的两种方法。第一种方法直接在main函数中创建并显示窗口;第二种方法通过定义一个继承自QWidget的类来实现更复杂的功能。 ... [详细]
  • 专注于模式识别与机器学习的研究生,对于该领域内的就业方向及具体职位要求有着浓厚的兴趣。本文将探讨智能图像/视频处理工程师的岗位要求,并为相关专业的学生提供学习建议。 ... [详细]
  • 5G时代的广域网革新:企业迈向万物智联的新起点
    随着2020年初“新基建”概念的提出,以5G、AI、IoT等为核心的新型基础设施建设正逐步改变企业的运营模式。本文探讨了在这一背景下,企业广域网(WAN)如何通过5G与SD-WAN技术的融合实现转型升级,成为推动企业智能化、数字化发展的关键力量。 ... [详细]
  • 解决Xcode PBXcp 错误:找不到文件或目录
    当在Xcode中遇到PBXcp错误提示'No such file or directory'时,通常是由于文件引用问题导致的。本文将介绍两种有效的方法来解决这一常见问题。 ... [详细]
  • Java数组面试常见问题及解析
    在Java编程面试中,数组作为基础且重要的知识点,经常成为考察的重点。本文将探讨数组的基础知识和相关面试题,帮助考生更好地准备面试。 ... [详细]
  • 本文介绍了一个基础算法题目,旨在通过求解特定范围内所有数字的阶乘之和来提升编程技能。重点在于理解和实现双重循环结构。 ... [详细]
  • 本文详细介绍了在使用Node.js处理JWT时遇到的'invalid algorithm'错误的解决方案。问题源于生成和验证token时使用的算法不一致,具体表现为生成token时使用HS256算法,而在验证时误用了RS256算法。 ... [详细]
  • 计算机视觉初学者指南:如何顺利入门
    本文旨在为计算机视觉领域的初学者提供一套全面的入门指南,涵盖基础知识、技术工具、学习资源等方面,帮助读者快速掌握计算机视觉的核心概念和技术。 ... [详细]
  • 【Java数据结构和算法】008栈
    目录0、警醒自己一、栈的应用场景和介绍1、栈的应用场景一个实际的场景:我的思考:2、栈的介绍入栈演示图:出栈演示图 ... [详细]
  • 深入理解Git与GitHub:分支管理与冲突解决
    本文详细探讨了Git中的分支管理技术,包括如何创建、切换和合并分支,以及如何有效解决分支合并时可能遇到的冲突。同时,文章还介绍了Git的基本原理,如哈希算法的应用和文件管理机制。 ... [详细]
author-avatar
手机用户2602915671
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有