Изменения

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

Исчисление кортежей

2297 байт добавлено, 23:59, 26 декабря 2021
Cравнение атрибутов с применением формул
== Переменные-кортежи ==
Каждая переменнаяУ каждой переменной-кортеж имеет кортежа есть тип{{---}} набор атрибутов, который состоит для каждого из имен и типов атрибутов и набора которых есть домен, а так же набор значений. Такая комбинация в данной модели называется отношением. Из этого следует, что каждая кортежная переменная пробегает некоторое отношение.
=== Синтаксис ===
Для каждой переменной берем ее значение из тела соответствующего отношения:
<font color = red>Переменная <font color = grey>::</font> Отношение</font>
=== Примеры ===
Мжно задать переменная S, которая пробегает по всем студентам, и переменную G, которая пробегает по всем группам:
S <font color = grey>::</font> Students
G <font color = grey>::</font> Groups
Можно записать группы четвертого курса, то есть группы, которые имеют название M34351, M34371 или M34391:
G4 <font color = grey>::</font> Groups <font color = blue>where</font>
Name <font color = grey>=</font> <font color = green>'M34351'</font> <font color = blue>∨</font>
== Операции с отношениями ==
=== Ограничение ===
Можно ограничить отношение, выбрав те кортежи, которые удовлетворяют требуемым условиям.Это делается с помощью ключевого слова where:
<font color = red>Отношения</font> <font color = blue>where</font> <font color = red>Условие</font>
=== Объединение ===
Для объединения используется синтаксис перечисления необходимых объединяемых отношений через запятую.:
<font color = red>Отношение1<font color = grey>,</font> Отношение2</font>
=== Примеры ===
Рассмотрим примеры. Можно задать отношение {{---}} группы, имеющие название M34371:
Groups <font color = blue>where</font> Name <font color = grey>=</font> <font color = green>'M34371'</font>
Помимо способа, предложенного в предыдущей секции, можно задать группы 4 курса по-другому. Это такие группы, у которых название M34351, еще такие группы, у которых название M34371, и такие группы, у которых название M34391.
G4 <font color = grey>::</font> Groups <font color = blue>where</font> Name <font color = grey>=</font> <font color = green>'M34351'</font><font color = grey>,</font>
Groups <font color = blue>where</font> Name <font color = grey>=</font> <font color = green>'M34371'</font><font color = grey>,</font>
== Условия ==
Разделяют три вида условий: простые, составные и условия с кванторами.
=== Простые условия ===
Сравнение ==== Cравнение атрибутов с константами====К простым условиям относится сравнение атрибутов с константами. Например, можно найти студентов с именем Иван:
S<font color = grey>.</font>Name <font color = grey>=</font> <font color = green>'Иван'</font>
Или выделить студентов с идентификатором меньше 5:
S<font color = grey>.</font>Id <font color = grey><</font> <font color = #056967>5</font>
Сравнение ==== Cравнение атрибутов между собой (====Также можно сравнивать атрибуты между собой, в том числе и на неравенство). Например найти студентов, имеющих идентификатор не меньше, чем идентификатор их группы:
S<font color = grey>.</font>Id <font color = blue>$\geq$</font> G<font color = grey>.</font>Id
Сравнение ==== Cравнение атрибутов с применением формул====В качестве расширения можно использовать произвольные формулы ровно так же, как были устроены расширения в [[Реляционная алгебра|реляционной алгебре]]. Можно использовать любые формулы, зависящие от значений кортежных переменных. Например, можно найти студентов, у которых имя на 3 символа длиннее фамилии:
length<font color = grey>(</font>S<font color = grey>.</font>FirstName<font color = grey>)</font> <font color = grey>=</font> length<font color = grey>(</font>S<font color = grey>.</font>LastName<font color = grey>)</font> <font color = grey>+</font> <font color = #056967>3</font>
Можно использовать любые формулы, зависящие от значений кортежных переменных.
=== Составные условия ===
Анонимный участник

Навигация