462
правки
Изменения
Новая страница: «== Алгебра через исчисление == Выразим операции реляционной алгебры через операции реляц…»
== Алгебра через исчисление ==
Выразим операции реляционной алгебры через операции реляционного исчисления.
=== Проекция <tex>\pi_{A_1,\ldots,A_n}(R)</tex> ===
<font color = blue>select</font> A1<font color = gray>$,\ldots,$</font>An <font color = blue>from</font> R
=== Фильтр <tex>\sigma_\theta(R)</tex> ===
<font color = blue>from</font> R <font color = blue>where</font> <font color = red>$\theta$</font>
=== Дополнительный столбец <tex>\varepsilon_{A=expr}(R)</tex> ===
<font color = blue>select</font> R<font color = grey>.*,</font> expr <font color = blue>as</font> A <font color = blue>from</font> R
=== Объединение <tex>R_1 \cup R_2</tex> ===
R <font color = grey>::</font> R1<font color = grey>,</font> R2
=== Разность <tex>R1 \smallsetminus R2</tex> ===
R <font color = grey>::</font> R1 <font color = blue>where $\lnot\exists$</font>R2 <font color = grey>(</font>R1 <font color = grey>=</font> R2<font color = grey>)</font>
=== Декартово произведение <tex>R_1 \times R_2</tex> ===
R1<font color = grey>.*,</font> R2<font color = grey>.*</font> <font color = blue>from</font> R1<font color = grey>,</font> R2
=== Естественное соединение <tex>R_1 \bowtie R_2</tex> ===
R1<font color = grey>.*,</font> R2<font color = grey>.*</font> <font color = blue>from</font> R1<font color = grey>,</font> R2 <font color = blue>where</font>
R1<font color = grey>.</font><font color = red>Атрибуты</font> <font color = grey>=</font> R2<font color = grey>.</font><font color = red>Атрибуты</font>
Набор перечисленных операций составляет базис операций реляционной алгебры. Все операции этого набора можно эмулировать в терминах реляционного исчисления. Из этого следует, что выразительна мощность реляционного исчисления не меньше выразительной мощности реляционной алгебры.
Выразим операции реляционной алгебры через операции реляционного исчисления.
=== Проекция <tex>\pi_{A_1,\ldots,A_n}(R)</tex> ===
<font color = blue>select</font> A1<font color = gray>$,\ldots,$</font>An <font color = blue>from</font> R
=== Фильтр <tex>\sigma_\theta(R)</tex> ===
<font color = blue>from</font> R <font color = blue>where</font> <font color = red>$\theta$</font>
=== Дополнительный столбец <tex>\varepsilon_{A=expr}(R)</tex> ===
<font color = blue>select</font> R<font color = grey>.*,</font> expr <font color = blue>as</font> A <font color = blue>from</font> R
=== Объединение <tex>R_1 \cup R_2</tex> ===
R <font color = grey>::</font> R1<font color = grey>,</font> R2
=== Разность <tex>R1 \smallsetminus R2</tex> ===
R <font color = grey>::</font> R1 <font color = blue>where $\lnot\exists$</font>R2 <font color = grey>(</font>R1 <font color = grey>=</font> R2<font color = grey>)</font>
=== Декартово произведение <tex>R_1 \times R_2</tex> ===
R1<font color = grey>.*,</font> R2<font color = grey>.*</font> <font color = blue>from</font> R1<font color = grey>,</font> R2
=== Естественное соединение <tex>R_1 \bowtie R_2</tex> ===
R1<font color = grey>.*,</font> R2<font color = grey>.*</font> <font color = blue>from</font> R1<font color = grey>,</font> R2 <font color = blue>where</font>
R1<font color = grey>.</font><font color = red>Атрибуты</font> <font color = grey>=</font> R2<font color = grey>.</font><font color = red>Атрибуты</font>
Набор перечисленных операций составляет базис операций реляционной алгебры. Все операции этого набора можно эмулировать в терминах реляционного исчисления. Из этого следует, что выразительна мощность реляционного исчисления не меньше выразительной мощности реляционной алгебры.