我有以下数据库方案:
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) )]
我真的很困惑。我很确定这是错误的。任何帮助将不胜感激!