Изменения
Новая страница: «=Исчисление доменов и его реляционная полнота= ==Исчисление доменов== ===Синтаксис=== <font colo…»
=Исчисление доменов и его реляционная полнота=
==Исчисление доменов==
===Синтаксис===
<font color=red>Переменная</font> :: <font color=red>Тип</font> <font color=green>-- Переменная может принимать значения из какого-то типа. Тип == набор значений
</font>
<font color=green>-- Условие принадлежности отношению</font>
<font color=red>Отношение {</font>
<font color=red>Атрибут1</font> = <font color=red>Значение1</font>,
<font color=red>Атрибут2</font> = <font color=red>Значение2</font>,
...
<font color=red>}</font>
===Условие принадлежности===
Предикат, значение которого истина тогда, когда в отношении есть кортеж с совпадающими значениями атрибутов.
Пример:
S{FirstName = 'Иван', LastName = 'Иванов'}
`
Отношение {
Атрибут1 = Значение1,
Атрибут2 = Значение2,
...
}
`
Как мы будем записывать запросы?
Опишем переменные
`
<переменные> where <логическое выражение>
`
В логические выражения могут входить условие принадлежности, логические связки, кванторы и отрицания.
Реляционная полнота
--------------------
Проекция
A1, ..., An from R where R{A1=A1, ..., An = An}
Фильтр
A1, ..., An from R where R{A1=A1, ..., An = An} ∧ θ
Переименовывание
expr as A from R where R{A1=A1, ..., An = An}
Объединение
A1, ..., An where R1{Ai=Ai} ∨ R2{Ai=Ai}
Разность
A1, ..., An where R1{Ai=Ai} ∧ ¬R2{Ai=Ai}
Декартово произведение
A1, ..., An, B1, ..., Bm where R1{Ai=Ai} ∧ R2{Bj=Bj}
Естественное соединение
A1, ..., An, B1, ..., Bm, C1, ..., Cl where
R1{Ai=Ai, Bj=Bj} ∧ R2{Ck=Ck, Bj=Bj}
-> Исчисление доменов реляционно полно
==Исчисление доменов==
===Синтаксис===
<font color=red>Переменная</font> :: <font color=red>Тип</font> <font color=green>-- Переменная может принимать значения из какого-то типа. Тип == набор значений
</font>
<font color=green>-- Условие принадлежности отношению</font>
<font color=red>Отношение {</font>
<font color=red>Атрибут1</font> = <font color=red>Значение1</font>,
<font color=red>Атрибут2</font> = <font color=red>Значение2</font>,
...
<font color=red>}</font>
===Условие принадлежности===
Предикат, значение которого истина тогда, когда в отношении есть кортеж с совпадающими значениями атрибутов.
Пример:
S{FirstName = 'Иван', LastName = 'Иванов'}
`
Отношение {
Атрибут1 = Значение1,
Атрибут2 = Значение2,
...
}
`
Как мы будем записывать запросы?
Опишем переменные
`
<переменные> where <логическое выражение>
`
В логические выражения могут входить условие принадлежности, логические связки, кванторы и отрицания.
Реляционная полнота
--------------------
Проекция
A1, ..., An from R where R{A1=A1, ..., An = An}
Фильтр
A1, ..., An from R where R{A1=A1, ..., An = An} ∧ θ
Переименовывание
expr as A from R where R{A1=A1, ..., An = An}
Объединение
A1, ..., An where R1{Ai=Ai} ∨ R2{Ai=Ai}
Разность
A1, ..., An where R1{Ai=Ai} ∧ ¬R2{Ai=Ai}
Декартово произведение
A1, ..., An, B1, ..., Bm where R1{Ai=Ai} ∧ R2{Bj=Bj}
Естественное соединение
A1, ..., An, B1, ..., Bm, C1, ..., Cl where
R1{Ai=Ai, Bj=Bj} ∧ R2{Ck=Ck, Bj=Bj}
-> Исчисление доменов реляционно полно