Изменения
→Пример преобразования
=== Пример преобразования ===
Рассмотрим пример {{---}} группы, в которых хотя бы один студент полностью аттестован. То есть существует такой студент, что для любого курса существует оценка не меньше 60 баллов. На языке исчислений запрос будет выглядеть так:
<font color = blue>select</font> G<font color = grey>.</font>GId <font color = blue>where $\exists$</font>S <font color = grey>(</font><font color = blue>$\forall$</font>C <font color = grey>(</font><font color = blue>$\exists$</font>P
<font color = grey>(</font>G<font color = grey>.</font>GId <font color = grey>=</font> S<font color = grey>.</font>GId <font color = blue>$\land$</font> S<font color = grey>.</font>SId <font color = grey>=</font> P<font color = grey>.</font>SId <font color = blue>$\land$</font>
C<font color = grey>.</font>CId <font color = grey>=</font> P<font color = grey>.</font>CId <font color = blue>$\land$</font> P<font color = grey>.</font>Points <font color = blue>$\geq$</font> <font color = #056967>60</font><font color = grey>)))</font>
Выражению соответствуют такие группы, что существует хотя бы один студент, учащийся в этой группе, у которого по всем курсам существует положительная оценка. Для удобства выражение уже записано в предваренной нормальной форме. Преобразуем:
* Для простоты равенства соответствующих атрибутов уже неявно записаны как естественные соединения: <tex>T_0=\sigma_{P.Points\geq60}((G \bowtie S \times C) \bowtie P)</tex>. Для простоты равенства соответствующих атрибутов уже неявно записаны как естественные соединения.* Самый внутренний квантор существования, поэтому проецируем на оставшиеся атрибуты соответствующих отношений: <tex>T_1=\pi_{G_∗,S_∗,C_∗}(T_0)</tex>. Самый внутренний * Следующий квантор существованиявсеобщности, поэтому проецируем делим на оставшиеся все атрибуты соответствующих отношений.* , принадлежащие отношению C: <tex>T_2=T_1 \div C</tex>. Следующий * Еще один квантор всеобщностисуществования, поэтому делим на все атрибуты, принадлежащие отношению C.* снова проецируем: <tex>T_3=\pi_{G_∗}(T_2)</tex>. Еще один квантор существования, снова проецируем. * Можем записать как одно большое выражение в терминах реляционной алгебры: <tex>T=\pi_{G_∗}(\pi_{G_∗,S_∗,C_∗}(\sigma_{P.Points\geq60}((G \bowtie S \times C) \bowtie P)) \bowtie C)</tex>. Можем записать как одно большое выражение в терминах реляционной алгебры.
== Реляционная полнота ==