查找未注册任何课程的学生姓名 - 学生、教师、课程、课程、已注册

2024-01-23

根据下面的数据库,使用关系代数投影出未注册课程的学生的姓名。

Students(snum, sname, major, standing, age, gpa)
Faculty(fid, fname, deptid)
Courses(cnum, cname, course_level, credits)
Offerings(onum, cnum, day, starttime, endtime, room, max_occupancy, fid)  
Enrolled(snum, onum)

我可以通过以下方式获取所有未注册课程的学生的数量:

π snum Students - π snum Enrolled

但是我如何用我找到的 snums 来投影学生的名字呢?


每个基表都包含构成 true 的行主张(声明)来自一些(特征)谓词(按列参数化的语句模板)。设计者给出了谓词。用户不断更新表格。

-- rows where student [snum] is named [sname] and has major [major] and ...
Students
-- rows where student [snum] is enrolled in offering [onum]
Enrolled

每个查询结果都包含根据某个谓词得出正确命题的行。关系表达式的谓词由其参数表达式的谓词组合而成,具体取决于其谓词非终结符。 DBMS 评估结果。

/* rows where
    student [snum] is named [sname] and has major [major] and ...
AND student [snum] is enrolled in offering [onum]
*/
Student ⨝ Enrolled

AND gives NATURAL JOIN, ANDcondition gives RESTRICTcondition, EXISTScolumns gives PROJECTother columns. OR & AND NOT两侧具有相同的列给出OR & MINUS. Etc.

/* rows where
THERE EXISTS sname, major, standing, age & gpa SUCH THAT
    student [snum] is named [sname] and has major [major] and ...
*/
π snum Students

/* rows where
THERE EXISTS onum SUCH THAT
    student [snum] is enrolled in offering [onum]
*/
π snum Enrolled

/* rows where
    (   THERE EXISTS sname, major, standing, age & gpa SUCH THAT
            student [snum] is named [sname] and has major [major] and ...
    AND NOT
        THERE EXISTS onum SUCH THAT
            student [snum] is enrolled in offering [onum]
    )
AND student [snum] is named [sname] and has major [major] and ...
*/
(π snum Students - π snum Enrolled) ⨝ Students

您可以从中投影出您不需要的任何列。

(请注意,我们不需要知道查询的约束。)

银行场景的关系代数 https://stackoverflow.com/a/24425914/3404097
从英文描述形成关系代数查询 https://stackoverflow.com/a/43318188/3404097
是否有任何经验法则可以根据人类可读的描述构建 SQL 查询? https://stackoverflow.com/a/33952141/3404097

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查找未注册任何课程的学生姓名 - 学生、教师、课程、课程、已注册 的相关文章

  • 如何用关系代数求 MAX?

    使用数据库时 如何使用关系代数求 MAX 假设您有一个关系 A 具有单个属性 a 减少一个更复杂的关系是关系代数中的一个简单任务 我确信您已经做到了这一点 所以现在您想要找到最大值A 中的值 一种方法是找到 A 与其自身的叉积 请务必重命名
  • 查找供应每个零件的供应商的 sids

    Suppliers sid sname address Parts pid pname colour Catalog sid pid cost 找到所有供应每个零件的供应商 的答案是 SELECT C sid FROM Catalog C
  • SQL中有集合除法吗?

    我完全知道集合除法可以通过一系列其他操作来完成 所以我的问题是 SQL中有集合除法的命令吗 http vadimtropashko files wordpress com 2007 02 ch3 pdf 从第 32 页开始 关系除法不是基本
  • 什么是投影和选择?

    投影和选择有什么区别 是吗 投影 gt 用于选择表的列 和 选择 gt 选择表的行 那么投影和选择分别是垂直和水平切片吗 Exactly 投影意味着选择哪些列 或表达式 查询应返回 选择 means 哪些行将被退回 如果查询是 select
  • 银行场景的关系代数

    我不知道如何解决关系代数问题 Deposit Branch Acc No Cust Name Balance Loan Branch Loan No Cust Name Balance Branch Branch Assets Branch
  • 极限算子的关系代数

    这两个 SQL 查询的关系代数是什么 Select from film where film rating PG limit 20 我们如何显示极限 Select from actor country where first name BO
  • 如何在 SQL 和关系代数中无论列顺序如何只列出每对元组一次?

    我正在做一些书本练习 但找不到有关如何用关系代数表达以下内容的解释 我确实找到了一个不过 SQL 的答案但我感兴趣的是是否有其他方法可以解决这个问题 书中的问题是 找到那些具有相同速度和 RAM 的 PC 型号对 一对只能列出一次 例如 列
  • 如何对关系代数中不存在的事物进行建模或查询[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我想查询所有从未租过的公寓的id 我尝试过这样的事情 a id apartments a id from date Exists end d
  • 在不使用关系代数中的 max 函数的情况下查找两个表之间的最大值

    假设我有两张桌子A int m and B int m 我必须找到最大值m在使用关系代数的两个表之间 但我不能使用 max 函数 我该怎么做 我认为使用 join 我们可以做到这一点 但我不确定我的猜测是否正确 Note 这是一个面试问题
  • 关系代数相当于 SQL“NOT IN”

    是否存在与 SQL 表达式等价的关系代数NOT IN 例如 如果我有以下关系 A1 A2 x y a b y x 我想删除 A1 在 A2 中的关系中的所有元组 在 SQL 中我可能会查询 SELECT FROM R WHERE R A1
  • 在关系代数中,SQL 表关系的等价物是什么?

    如果我理解正确的话 关系代数相当于一个SQL table is a relation 中的等效术语是什么关系代数 of a SQL relationship 即在两个表之间 两个表或关系之间的 关系 原文如此 是伪 ERM 实体关系模型 信
  • 这两种关系对于联合运算是否兼容?

    我不确定以下两种关系是否适合联合 R lt schema name B 1 2 2 3 3 And Q lt schema name A B 5 1 6 1 4 2 3 4 我想加入工会 Q U R 可以吗 结果如何 并集运算符要求两个关系
  • 如何在 SQL Server 中实现 DIVIDE 操作的关系等效项

    我正在阅读一本教科书上的关系代数 我碰到除法运算 http en wikipedia org wiki Relational algebra Division 28 C3 B7 29 来自维基百科 除法是一个二元运算 写为 R S 结果由
  • SQL -> 关系代数

    假设我有以下关系 Branch branchNo PK street city postcode Staff staffNo PK fName lName sex branchNo FK 这对于这个问题来说并不重要 但是 PK 主键 FK
  • 查找未注册任何课程的学生姓名 - 学生、教师、课程、课程、已注册

    根据下面的数据库 使用关系代数投影出未注册课程的学生的姓名 Students snum sname major standing age gpa Faculty fid fname deptid Courses cnum cname cou
  • 关系数据模型与分层数据模型

    当 的时候关系模型 https en wikipedia org wiki Relational model由 F E Codd 提出 当时建立的数据库使用的是层次模型 https en wikipedia org wiki Hierarc
  • 什么是投影?

    从数据库理论和 NHibernate 的角度来看 使用 SetProjection 时什么是投影 投影是关系代数的基本运算之一 它采用一个关系和该关系的属性列表 可能为空 作为输入 它输出仅包含指定属性列表的关系删除重复的元组 换句话说 输
  • 如何为给定模式提供关系代数?

    员工 姓名 街道 城市 作品 人名 公司名称 工资 公司 公司名称 城市 管理 人员姓名 经理姓名 查找此数据库中所有不为第一银行公司工作的员工的姓名 假设所有人都为一家公司工作 并且允许人员出现在数据库中 例如 在员工中 但不能出现在作品
  • 代数 关系 sql GROUP BY SORT BY ORDER BY

    我想知道代数关系中的 GROUP BY SORT BY 和 ORDER BY 等价于什么 这两种操作在关系代数中都是不可能的 但人们一直在为这些操作创建一些 扩展 注 在原文中 部分文本写为下标 GROUP BY 根据 数据库系统基础 一书
  • theta 连接、等值连接和自然连接之间的区别

    当涉及到 theta 连接 等值连接和自然连接时 我无法理解关系代数 有人可以帮助我更好地理解它吗 如果我在 theta 连接上使用 符号 它与使用自然连接完全相同吗 A 西塔加入允许任意比较关系 例如 An equijoin是使用相等运算

随机推荐

  • 使用表单生成器将字段的值显示到 Rails 中的标签中

    我正在使用 Rails 3 2 并且需要使用表单生成器对象显示标签中字段的值 在文本框中显示它很简单 但我无法在标签中做到这一点 代码是这样的 上面的 f 是我的表单生成器 我的模型有一个名为 key name 的字段 第二行工作正常 我将
  • addslashes() 可以安全地防止 HTML 属性中的 XSS 吗?

    我不得不开发一个以前的开发人员留下的旧网络应用程序 它使用addslashes 来防止HTML属性上的XSS 这是一个例子 这是否容易受到 XSS 攻击 有没有什么方法可以让 javascript 在 value 属性中运行 就像在 src
  • 未定义的方法“分页”

    我正在尝试使用 will paginate gem 但出了点问题 我被困住了undefined method paginate 错误 我读了很多问题并尝试了很多事情 这是我所得到的 这是我的 LocationsController rb d
  • 在 pytube 中显示进度

    import pytube def video downloader vid url str input Enter Video URL print Connecting Please wait video pytube YouTube v
  • 在 ASP.NET 中处理数据时如何更新进度消息?

    我有一个流程 它输出逐步消息 即 处理项目 1 项目 2 中的错误等 我希望在整个过程中 而不是最后 将其输出给用户 我很确定我需要使用线程来完成此操作 但找不到合适的示例 这不是线程问题 而是 Web 浏览器 UI 问题 您希望浏览器在您
  • 如何仅对我想要提交的文件运行 Prettier?

    Using Husky https github com typicode husky 我已经设置了我的package json使用预提交挂钩 以便我的 JavaScript 代码使用以下格式进行格式化Prettier https pret
  • 具有模板参数大小的 const char 数组与 char 指针

    今天我在一些代码中看到了以下类型的构造 template
  • std::forward 与 std::move 的用法[重复]

    这个问题在这里已经有答案了 我总是读到std forward仅适用于模板参数 然而 我问自己为什么 请参见以下示例 void ImageView setImage const Image image image image void Ima
  • 在 React Native 中使用 Firebase 进行 Google 登录

    请注意 由于需要解释 问题可能会很长 否则它可能会非常模糊并导致相同的旧答案 我在创建时遇到问题Google Sign In页面进入React Native using firebase 基于firebase文档 随着 3 1 0 SDK
  • 如何防止 Windows(手机)8.1 通用应用程序锁屏?

    有谁知道如何防止 Windows 手机 8 1 通用应用程序中的锁屏 在 Windows Phone 8 中 我使用过 PhoneApplicationService Current UserIdleDetectionMode IdleDe
  • 将 C++ int 数组编组为 C#

    我想将一个整数数组从 C 编组到 C 我有一个非托管 C dll 其中包含 DLL EXPORT int fnwrapper intarr int test new int 3 test 0 1 test 1 2 test 2 3 retu
  • 使用 GitLab 将 Node.js 应用程序持续部署到 Heroku

    有涵盖 Ruby 和 Python 应用程序部署的教程 但我找不到 NodeJS 的良好文档或示例 http docs gitlab com ce ci examples test and deploy python application
  • 如何在 C++ 中清除 2D 矢量

    任何人都可以建议我 如何在 C 中清除 2D 矢量 我必须编写需要读取 Matrix Process 和 Clear Matrix 的程序 并为下一次读取操作做好准备 我已经使用向量创建了二维数组 gt 我正在填充但无法重置 下面是参考代码
  • WPF - 为基类实现 System.ComponentModel.INotifyPropertyChanged

    我想为基类上的属性实现 System ComponentModel INotifyPropertyChanged 接口 但我不太确定如何连接它 以下是我想要接收通知的属性的签名 public abstract bool HasChanged
  • 可编辑的 WPF 列表视图

    我想做一个ListView当用户双击某个项目时可编辑 我意识到网络上有很多示例 但是这些示例都是基于IsSelected属性 而不是处理双击事件 有什么想法或指示吗 UPDATE 因此 我遇到的另一个问题是 如何访问数据模板中的控件List
  • 使用假 mongoDB 进行 pytest 测试

    我有连接到 MongoDB 客户端的代码 我正在尝试测试它 为了进行测试 我不想连接到实际的客户端 因此我试图找出一个假客户端来进行测试 代码的基本流程是我在某处有一个函数创建一个pymongo客户端 然后查询并创建一个在其他地方使用的字典
  • 发布 Android 应用程序后,谷歌地图不显示?

    朋友们 在使用模拟器在 Eclipse 上测试应用程序时 谷歌地图可以正确显示 但是当我导出应用程序来发布它时 谷歌地图不见了 谁能指导我我犯了什么错误 任何帮助 将不胜感激 当您导出应用程序以发布它时 您可能不再使用调试密钥库 而是使用自
  • UIBezierPath 未绘制平滑曲线

    我正在使用 UIBezierPath 进行绘图 并且我已经编写了关于触摸事件的代码并且其工作正常 但是我的曲线不平滑 当我移动手指并绘制一些曲线时 它们不平滑 void drawRect CGRect rect UIColor redCol
  • npm WARN 已弃用 [email protected]:core-js@<3 不再维护,由于问题数量较多,不建议使用

    我在创建新的 Angular 应用程序时遇到以下错误 npm 警告已弃用 电子邮件受保护 cdn cgi l email protection core js 我尝试了下面链接中给出的解决方案 但它对我不起作用 错误 请将您的依赖项升级到
  • 查找未注册任何课程的学生姓名 - 学生、教师、课程、课程、已注册

    根据下面的数据库 使用关系代数投影出未注册课程的学生的姓名 Students snum sname major standing age gpa Faculty fid fname deptid Courses cnum cname cou