我有三个关系
Course(courseNum, units, time, room)
Student(ID, name, degree)
Takes(ID, courseNum)
我需要一个关系代数表达式,它显示没有研究生的信息列表(= courseNum,单位,时间,房间)。
我不明白的是,我如何使用关系代数来找到指示this course does not have grad students
的关系?
如何使用关系代数找到表明该课程没有研究生的关系?
R MINUS S
保存在R中但不在S中的行。
因此,如果R具有属性r1,...包含从一些(特征)谓词(句子模板)r生成真正命题(语句)的元组r由r1,...和S参数化的属性r1,...保持元组,从r1的某些谓词中提出一个真正的命题,然后R MINUS S
持有从谓词r
AND NOT
s
提出真正命题的元组。
类似地,JOIN
对应于AND
,UNION
到OR
,PROJECT
attributes kept
到EXISTS
attributes dropped
,RESTRICT
condition
到AND
condition
等。这就是我们如何知道如何构建特定查询 - 我们使用关系运算符返回我们想要的基元/命名关系的元组保持(通过更新)满足其谓词的元组(根据设计)。
(为了使用MINUS
和UNION
,我们有时必须重新排列谓词表达式以获得具有相同属性的参数表达式。我们已经得到任何NOT
s出现在AND NOT
。通常这是通过应用De Morgan的定律和分配律来完成的.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?