Изменения

Перейти к: навигация, поиск
Пример преобразования
=== Проекция <tex>\pi_{A_1,\ldots,A_n}(R)</tex> ===
Проекция выражается, как select необходимого набора атрибутов:
<font color = blue>select</font> A1<font color = gray>, $,\ldots$,$</font>An <font color = blue>from</font> R
=== Фильтр <tex>\sigma_\theta(R)</tex> ===
=== Применение кванторов ===
==== Квантор существования ====
Квантор существования соответсвует соответствует проекции. Проецируем, исключая атрибуты, порожденные переменной.
* Если существует хотя бы одно значение кортежной переменной, удовлетворяющее условию, то проекция окажется не пустой.
* Если такого значения не окажется, то проекция окажется пустой.
Получаем в точности поведение квантора существования.
==== Квантор всеобщности ====
=== Пример преобразования ===
Рассмотрим пример {{---}} группы, в которых хотя бы один студент полностью аттестован. То есть существует такой студент, что для любого курса существует оценка не меньше 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>. Можем записать как одно большое выражение в терминах реляционной алгебры.
== Реляционная полнота ==
Анонимный участник

Навигация