Исчисление кортежей и его реляционная полнота — различия между версиями
Sashapff (обсуждение | вклад) (→Составные условия) |
Sashapff (обсуждение | вклад) (→Составные условия) |
||
Строка 54: | Строка 54: | ||
Из простых условий можно строить логические формулы с помощью стандартных связок: <font color = blue>$\land$</font>, <font color = blue>$\lor$</font>, <font color = blue>$\lnot$</font>. | Из простых условий можно строить логические формулы с помощью стандартных связок: <font color = blue>$\land$</font>, <font color = blue>$\lor$</font>, <font color = blue>$\lnot$</font>. | ||
− | G <font color = blue>where</font> Name <font color = gray>=</font> <font color = green>'M34371'</font> <font color = blue>∨</font> Name <font color = gray>=</font> <font color = green>'M34391'</font> | + | G <font color = blue>where</font> Name <font color = gray>=</font> <font color = green>'M34371'</font> <font color = blue>∨</font> Name <font color = |
+ | gray>=</font> <font color = green>'M34391'</font> | ||
− | S <font color = blue>where</font> FirstName <font color = gray>=</font> <font color = green>'Иван'</font> <font color = blue>∧</font> LastName <font color = gray><></font> <font color = green>'Иванов'</font> | + | S <font color = blue>where</font> FirstName <font color = gray>=</font> <font color = green>'Иван'</font> <font color = blue>∧</font> LastName <font color = gray><></font> <font color = green>'Иванов'</font> |
=== Условия с кванторами === | === Условия с кванторами === |
Версия 00:28, 20 декабря 2021
В этом разделе будет рассмотрен один из видов реляционного исчисления — исчисление кортежей.
Содержание
Переменные-кортежи
Каждая переменная-кортеж имеет тип.
Тип кортежа
- Имена и типы атрибутов;
- Набор значений.
Комбинация из имен и типов атрибутов и набора значений в данной модели называется отношением. Из этого следует, что каждая кортежная переменная пробегает некоторое отношение.
Синтаксис
Переменная :: Отношение
Примеры
S :: Students G :: Groups G4 :: Groups where Name = 'M34351' ∨ Name = 'M34371' ∨ Name = 'M34391'
Последний пример демонстрирует, что для отношения можно указать ограничивающее его условие.
Операции с отношениями
Ограничение
Можно ограничить отношение, выбрав те кортежи, которые удовлетворяют требуемым условиям.
Отношения where Условие
Объединение
Для объединения используется синтаксис перечисления необходимых отношений через запятую.
Отношение1, Отношение2
Примеры
Groups where Name = 'M34371'
G4 :: Groups where Name = 'M34351', Groups where Name = 'M34371', Groups where Name = 'M34391'
Условия
Простые условия
Сравнение атрибутов с константами:
S.Name = 'Иван'
S.Id < 5
Сравнение атрибутов между собой (в том числе и на неравенство):
S.Id $\geq$ G.Id
Сравнение с применением формул:
length(S.FirstName) = length(S.LastName) + 3
Можно использовать любые формулы, зависящие от значений кортежных переменных.
Составные условия
Из простых условий можно строить логические формулы с помощью стандартных связок: $\land$, $\lor$, $\lnot$.
G where Name = 'M34371' ∨ Name = 'M34391'
S where FirstName = 'Иван' ∧ LastName <> 'Иванов'