Исчисление доменов и его реляционная полнота
Содержание
Исчисление доменов и его реляционная полнота
Исчисление доменов
Синтаксис
Переменная :: Тип -- Переменная может принимать значения из какого-то типа. Тип == набор значений -- Условие принадлежности отношению Отношение { Атрибут1 = Значение1, Атрибут2 = Значение2, ... }
Условие принадлежности
Предикат, значение которого истина тогда, когда в отношении есть кортеж с совпадающими значениями атрибутов.
Пример:
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}
-> Исчисление доменов реляционно полно