0

我有以下数据库方案:

student: sid
course: pid
prerequisite: cid, precid
records: sid, cid

如何在关系微积分中创建一个查询,以便我需要找到所有参加过 PSY100 课程的学生都已完成所有先决条件的所有课程?我想用至少一个全称 ∀ 来写这个。

我的想法是找到课程,对于所有要返回的课程,并且对于记录中的所有学生,都存在一个参加过 PSY100 的学生,该学生也满足了返回该课程的先决条件。

所以我把它写成这样

{x:cid | ∃ c IN course [c(cid) = x(cid) AND
  ∀ y IN course ∀ r record
  ( y(cid) = c(cid) AND r(cid) = c(cid)
   → ∃ p IN prerequisite ( r(cid) = PSY100 AND r(cid) = p(pid) )] 

我真的很困惑。我很确定这是错误的。任何帮助将不胜感激!

4

0 回答 0