Exercise 5: Converting subqueries to RA

Consider the following relational schema:

Student(snum, sname, major, level, age)
Class(name, meets_at, room, fid)
Enrolled(snum, cname)
Faculty(fid, fname, deptid)

Translate the following SQL queries to RA.

(a)

SELECT S.sname
FROM Student S
WHERE S.snum IN (SELECT E.snum 
                     FROM Enrolled E)

(b)

SELECT S.sname
FROM Student S
WHERE S.snum NOT IN (SELECT E.snum 
                     FROM Enrolled E)

(c)

SELECT C.name FROM Class C
WHERE C.room = 'R128'
OR C.name IN (SELECT E.cname 
              FROM Enrolled E
              GROUP BY E.cname 
              HAVING COUNT(*) >= 5)

(d)

SELECT F.fname
FROM Faculty F
WHERE 5 > (SELECT COUNT(E.snum)
           FROM Class C, Enrolled E
           WHERE C.name = E.cname AND
           C.fid = F.fid)