关系代数与混淆一个复杂的例子

时间:2015-03-09 12:29:11

标签: sql database database-design relational-database relational-algebra

我们有3个关系:

Students(sid, sname)
Courses(cid, cname, dept)
take(sid, cid, grade)

We want to find student numbers of students whose these students take all courses that present in 'CS' department

  

为什么(第4行)是这个查询的答案?

任何人都可以说(第1行)到(第3行)不同。我在DB中的Solved-Ex中读到了这个。

enter image description here

1 个答案:

答案 0 :(得分:1)

另一种表达第四行的方法是:

all students
except
(
    all combinations of students and CS courses
    except
    all taken courses
)

括号内的集合包含未采取的所有学生+ CS课程组合。从所有学生中减去这一点,你就会得到那些参加过所有CS考试的学生。