【问题标题】:Relational algebra to find rows that do not have matches关系代数查找不匹配的行
【发布时间】:2018-02-26 03:01:30
【问题描述】:

我有三个关系:

Course(courseNum, units, time, room)
Student(ID, name, degree)
Takes(ID, courseNum)

我需要一个关系代数表达式,它显示没有研究生的课程列表以及相关信息(courseNum、单位、时间、房间)。

如何使用关系代数找到表示“这门课程没有研究生”的关系?

【问题讨论】:

  • 您使用的是什么“关系代数”?有许多。同样在这个设计中,你没有告诉我们在给定情况下,关系中的元组是什么。那么我们怎么知道如何将学生限制为研究生呢?请谷歌“stackexchange homework”并展示你能做的部分。

标签: database relational-algebra


【解决方案1】:

我如何使用关系代数找到表明该课程没有研究生的关系?

R MINUS S 保存在 R 中但不在 S 中的行。

因此,如果 R 具有属性 r1, ... 包含从某些 (特征)谓词(句子模板) 中构成真正 命题(陈述)的元组r 由 r1, ... 和具有属性 r1, ... 的 S 参数化的元组包含从某个谓词 s 中根据 r1, ... 然后@987654326 提出真命题的元组@ 包含从谓词 rAND NOTs 提出真实命题的元组。

同样JOIN对应AND,UNION对应OR,PROJECTattributes kept对应EXISTSattributes dropped,@ 987654338@condition 到 ANDcondition 等等。这就是我们知道如何构建特定查询的方式——我们使用返回元组的关系运算符我们希望基础/命名关系持有(通过更新)满足其谓词的元组(根据设计)。

(要使用MINUS & UNION,我们有时必须重新排列谓词表达式以获得具有相同属性的参数表达式。我们已经让任何NOTs 出现在AND NOT 中。通常这样做通过应用德摩根定律和分配定律。Find the names of students who are not enrolled in any course - Students, Faculty, Courses, Offerings, Enrolled)

Relational algebra for banking scenario
Forming a relational algebra query from an English description
Is there any rule of thumb to construct SQL query from a human-readable description?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-21
    相关资源
    最近更新 更多