$T_1$ will have all the available course numbers
$T_2$ will have all the course numbers completed by student2310
$T_3$ will have the combination of all the courses and the courses completed by student2310
$\text{PRE_REQ} - T_3$ (set minus operation) will return us all the entries of $\text{PRE_REQ}$ which are not there in $T_3,$
Suppose $\langle C_1,C_5\rangle$ is a particular tuple of $(\text{PRE-REQ} - T_3),$
Now what does it imply? $\implies$ It implies that $C_5$ is one of the prerequisite course for $C_1$ which has not been completed by $C_5$. Proof: If student2310 would have completed $C_5$ then definitely $\langle C_1,C_5 \rangle$ should have been there in $T_3$ (remember $T_3$ is the combination of all the courses and the courses completed by student2310) and in that case $(\text{PRE_REQ} - T_3)$ can not have $\langle C_1,C_5 \rangle$ as a tuple.
So, for any such $\langle C_1,C_5 \rangle$ tuple, $(\langle C_1,$ any course id$\rangle)$ of $\text{PRE_REQ} - T_3, C_1$ should not be printed as output (Since there is some prerequisite course for $C_1$ which student2310 has not completed).
Now, suppose we have not got any tuple as a result of $(\text{PRE_REQ} - T_3)$ where $C_2$ is there under cno attribute $(\langle C_2,$ any course id$\rangle ),$ what does it imply?$\implies $ It implies that student2310 has completed all the prerequisite courses $C_2.$
Hence, in order to get the final result we need to project cno from $(\text{PRE_REQ} - T_3)$ and subtract it from $T_1.$
- $T_1 \leftarrow \pi_{\text{cno}}(\text{COURSES})$
- $T_2 \leftarrow \rho_{T_2(\text{std2310completedcourses})}(\pi_{\text{cno}}(\sigma_{\text{student_no} = 2310}(\text{COMPLETED})))$
- $T_3 \leftarrow T_1 \times T_2$
- $T_4 \leftarrow \rho_{T_4(\text{cno, pre_cno})}(\text{PRE_REQ}-T_3)$
- $Result \leftarrow T_1 - \pi_{\text{cno}}(T_4)$