Исчисление кортежей и его реляционная полнота — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Составные условия)
м (rollbackEdits.php mass rollback)
 
(не показано 14 промежуточных версий 2 участников)
Строка 1: Строка 1:
В этом разделе будет рассмотрен один из видов [[Реляционное исчисление | реляционного исчисления]] {{---}} исчисление кортежей.
 
  
== Переменные-кортежи ==
 
Каждая переменная-кортеж имеет тип.
 
 
=== Тип кортежа ===
 
* Имена и типы атрибутов;
 
* Набор значений.
 
Комбинация из имен и типов атрибутов и набора значений в данной модели называется отношением. Из этого следует, что каждая кортежная переменная пробегает некоторое отношение.
 
 
=== Синтаксис ===
 
<font color = red>Переменная <font color = grey>::</font> Отношение</font>
 
 
=== Примеры ===
 
S <font color = grey>::</font> Students
 
G <font color = grey>::</font> Groups
 
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>
 
    Name <font color = grey>=</font> <font color = green>'M34371'</font> <font color = blue>∨</font>
 
    Name <font color = grey>=</font> <font color = green>'M34391'</font>
 
Последний пример демонстрирует, что для отношения можно указать ограничивающее его условие.
 
 
== Операции с отношениями ==
 
=== Ограничение ===
 
Можно ограничить отношение, выбрав те кортежи, которые удовлетворяют требуемым условиям.
 
<font color = red>Отношения</font> <font color = blue>where</font> <font color = red>Условие</font>
 
 
=== Объединение ===
 
Для объединения используется синтаксис перечисления необходимых отношений через запятую.
 
<font color = red>Отношение1<font color = grey>,</font> Отношение2</font>
 
 
=== Примеры ===
 
Groups <font color = blue>where</font> Name <font color = grey>=</font> <font color = green>'M34371'</font>
 
 
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>
 
        Groups <font color = blue>where</font> Name <font color = grey>=</font> <font color = green>'M34391'</font>
 
 
== Условия ==
 
=== Простые условия ===
 
Сравнение атрибутов с константами:
 
S<font color = grey>.</font>Name <font color = grey>=</font> <font color = green>'Иван'</font>
 
 
S<font color = grey>.</font>Id <font color = grey><</font> <font color = #056967>5</font>
 
 
Сравнение атрибутов между собой (в том числе и на неравенство):
 
S<font color = grey>.</font>Id <font color = blue>$\geq$</font> G<font color = grey>.</font>Id
 
 
Сравнение с применением формул:
 
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>
 
Можно использовать любые формулы, зависящие от значений кортежных переменных.
 
 
=== Составные условия ===
 
Из простых условий можно строить логические формулы с помощью стандартных связок: <font color = blue>$\land$</font>, <font color = blue>$\lor$, <font color = blue>$\lnot$</font>.
 
 
=== Условия с кванторами ===
 

Текущая версия на 19:36, 4 сентября 2022