Реляционное исчисление — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Отличия от реляционной алгебры)
(Реляционное исчисление)
(не показаны 3 промежуточные версии этого же участника)
Строка 7: Строка 7:
 
'''Реляционное исчисление''' {{---}} декларативный язык для работы с отношениями, описывающий какими свойствами должен обладать требуемый результат.
 
'''Реляционное исчисление''' {{---}} декларативный язык для работы с отношениями, описывающий какими свойствами должен обладать требуемый результат.
 
}}
 
}}
 +
В отличие от [[Реляционная алгебра | реляционной алгебры]] не описываем, как будет получен результат.
 +
 
Выделяют две разновидности реляционного исчисления:
 
Выделяют две разновидности реляционного исчисления:
* Исчисление кортежей;
+
* Исчисление кортежей {{---}} переменные принимают значения кортежа целиком;
* Исчисление доменов.
+
* Исчисление доменов {{---}} каждая переменная принимает одно атомарное значение из какого-то домена.
  
 
== Структура запросов ==
 
== Структура запросов ==
  
Запросы в обоих видах исчислений устроены одинаково.
+
Запросы в обоих видах исчислений устроены одинаково:
=== Части запроса ===
+
* Сначала определение переменных, с которыми будем работать;
* Определение переменных;
+
* Затем определение атрибутов результата из наборов переменных и свойств, которым они должны удовлетворять.
* Определение атрибутов результата и свойств, которым они должны удовлетворять.
 
  
 
=== Синтаксис ===
 
=== Синтаксис ===

Версия 23:22, 26 декабря 2021

В этом разделе будет рассмотрен подход к формированию запросов, основанный на описании данных, которые необходимо получить.

Реляционное исчисление

Определение:
Реляционное исчисление — декларативный язык для работы с отношениями, описывающий какими свойствами должен обладать требуемый результат.

В отличие от реляционной алгебры не описываем, как будет получен результат.

Выделяют две разновидности реляционного исчисления:

  • Исчисление кортежей — переменные принимают значения кортежа целиком;
  • Исчисление доменов — каждая переменная принимает одно атомарное значение из какого-то домена.

Структура запросов

Запросы в обоих видах исчислений устроены одинаково:

  • Сначала определение переменных, с которыми будем работать;
  • Затем определение атрибутов результата из наборов переменных и свойств, которым они должны удовлетворять.

Синтаксис

Определения переменных
select СписокАтрибутов
from Переменные
where Условие

Отличия от реляционной алгебры

Рассмотрим разницу между реляционной алгеброй и реляционным исчислением на примере: получить идентификаторы студентов, обучающихся в группе M34371.

Запрос в реляционной алгебре состоит из естественного соединения студентов с номерами групп, затем фильтрации по номеру группы и получения идентификаторов студентов: [math]\pi_{SId}(\sigma_{Name=M34371}(Students \bowtie Groups))[/math]. По шагам описали, что необходимо сделать.

Соответсвующий запрос в терминах исчисления кортежей (S — Students, G — Groups):

select S.SId from S
where $\exists$G (S.GId = G.GId  G.Name = 'M34371')

То есть, не указываем, как конкретно собираемся исполнять запрос, а описали, какие студенты нас интересуют.