Изменения

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

Реляционная алгебра

2911 байт добавлено, 00:34, 14 декабря 2021
Создание страницы.
==Запросы. Мотивация==

Базы данных подразумевают не только хранение данных, но и запросы, позволяющие эти данные так или иначе получать. Как минимум, запросы нужны для следующих действий:
* Выборка данных: достаем данные из БД, чтобы их как-то использовать уже извне;
* Область действия обновлений: часто в запросах обовления (например, UPDATE, DELETE) необходимо указывать область данных, на которые этот запрос распостраняется;
* Ограничения целостности: до сих пор было только два вида ограничений (ключи и внешние ключи). Использование запросов позволит расширить инструментарий;
* Ограничения доступа.

== Реляционная алгебра ==

В рамках курса рассматривается несколько подходов к описанию запросов. Один из них {{---}} реляционная алгебра.
{{Определение
|definition=
'''Реляционная алгебра''' {{---}} императивный язык для работы с отношениями. Носитель в терминах алгебры над отношениями {{---}} множество всех отношений. Далее будут определены операции, замкнутые над носителем, и ограничения, им соответствующие.
}}

== Примеры операций ==

* Проекция: <tex>\pi_A(R)</tex>;
* Естественное соединение: <tex>R_1 \bowtie R_2</tex>.

'''Замечание'''. Поскольку все операции в алгебре замкнуты по определению, можно комбинировать применения тех или иных операций любым разумным способом. Например: <tex>\pi_A(R_1 \bowtie \pi_B(R_2)) \bowtie R_3</tex>.

== Отношения и операции ==

Для определения операций будет полезным уточнить, что такое отношение.
{{Определение
|definition=
'''Отношение''' {{---}} пара из заголовка и тела.
}}

{{Определение
|definition=
'''Операция''' {{---}} правило построения заголовка и тела по заданным отношениям, а так же набор условий, при которых операция применима.
}}
26
правок

Навигация