I have the following database scheme:
student: sid
course: pid
prerequisite: cid, precid
records: sid, cid
How do I go about creating a query in relational calculus such that i need to find all courses for which all its prerequisites have been taken by every student who has taken the course PSY100? I want to write this with at least one universal quantification ∀.
My idea was to find courses for which, for all courses to return, and for all students in records, there exist a student who took PSY100, that has also taken the prerequisite of that course to return.
so i have it written like this
{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) )]
I am really confused about this. I am pretty sure this is wrong. any help would be greatly appreciated!