Изменения

Перейти к: навигация, поиск

Исчисление доменов и его реляционная полнота

906 байт добавлено, 23:24, 19 декабря 2021
Реляционная полнота исчисления доменов
Выразим базис реляционной алгебры в терминах исчисления доменов:
'''Проекция $\pi_{A_1, ..., A_n}(R)$'''Выбираем только такие наборы значений $A_1$...$A_n$, которые есть в исходном отношении R. Это важно, тк если опустить <code>where</code>, то получим декартово произведение доменов
$A_1$, ..., $A_n$ <font color=blue>from</font> $R$ <font color=blue>where</font> $R$<font color=red>{</font>$A_1$ = $A_1$, ..., $A_n$ = $A_n$<font color=red>}</font>
$A_1$, ..., $A_n$ <font color=blue>from</font> $R$ <font color=blue>where</font> $R$<font color=red>{</font>$A_1$ = $A_1$, ..., $A_n$ = $A_n$<font color=red>}</font> ∧ $θ$
'''Переименовывание $ε_{A=expr}(R_1)$'''Просто используем специальный синтаксис ..., $expr $ as $A $, ... <font color=blue>from</font> $R$ <font color=blue>where</font> $R${$A_1$ = $A_1$, ..., $A_n$ = $A_n$}
'''Объединение $R_1 ∪ R_2$'''
$A_1$, ..., $A_n$, $B_1$, ..., $B_m$ <font color=blue>where</font> $R_1$<font color=red>{</font>$A_i$ = $A_i$<font color=red>}</font> ∧ $R_2$<font color=red>{</font>$B_j$ = $B_j$<font color=red>}</font>
'''Естественное соединение $R_1 ⋈ R_2$'''Выбираем такие наборы значений $A_1$, ..., $A_n$, $B_1$, ..., $B_m$, $C_1$, ..., $C_l$, что $B_1$, ..., $B_m$ совпадает с соответствующими атрибутами и $R_1$ и $R_2$. Это можно записать как с явной проверкой равенства этих атрибутов (тогда придётся использовать ещё m переменных), так и с неявной, как это сделано здесь.
$A_1$, ..., $A_n$, $B_1$, ..., $B_m$, $C_1$, ..., $C_l$ <font color=blue>where</font> $R_1$<font color=red>{</font>$A_i$ = $A_i$, $B_j$ = $B_j$<font color=red>}</font> ∧ $R_2$<font color=red>{</font>$C_k$ = $C_k$, $B_j$ = $B_j$<font color=red>}</font>
<div></div>
}}
Анонимный участник

Навигация