Учебники

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

Предполагается, что реляционные системы баз данных будут оснащены языком запросов, который поможет пользователям запрашивать экземпляры базы данных. Существует два вида языков запросов — реляционная алгебра и реляционное исчисление.

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

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

Основные операции реляционной алгебры следующие:

  • Выбрать
  • проект
  • союз
  • Установить разные
  • Декартово произведение
  • переименовывать

Мы обсудим все эти операции в следующих разделах.

Выберите операцию (σ)

Он выбирает кортежи, которые удовлетворяют данному предикату из отношения.

Обозначение — σ p (r)

Где σ обозначает предикат выбора, а r обозначает отношение. p — логическая формула предложения, которая может использовать соединители, такие как и, или, и нет . В этих терминах могут использоваться реляционные операторы, такие как — =, ≠, ≥, <,>, ≤.

Например

σ subject = "database" (Books)

Вывод — выбирает кортежи из книг, предметом которых является «база данных».

σ subject = "database" and price = "450" (Books)

Вывод — выбирает кортежи из книг, где предметом является «база данных», а «цена» — 450.

σ subject = "database" and price = "450" or year > "2010" (Books)

Выходные данные — выбирает кортежи из книг, где предметом является «база данных», а «цена» составляет 450, или тех книг, которые были опубликованы после 2010 года.

Операция проекта (∏)

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

Обозначения — ∏ A 1 , A 2 , A n (r)

Где A 1 , A 2 , A n являются именами атрибутов отношения r .

Дублирующиеся строки автоматически удаляются, так как отношение является множеством.

Например

subject, author (Books)

Выбирает и проецирует столбцы, названные как субъект и автор из книги отношений.

Союз Операция (∪)

Он выполняет двоичное соединение между двумя данными отношениями и определяется как —

r ∪ s = { t | t ∈ r or t ∈ s}

Обозначения — r U s

Где r и s — это либо отношения базы данных, либо набор результатов отношений (временное отношение).

Чтобы операция объединения была действительной, должны выполняться следующие условия:

  • r и s должны иметь одинаковое количество атрибутов.
  • Домены атрибутов должны быть совместимы.
  • Дублирующиеся кортежи автоматически удаляются.
author (Books) ∪ ∏ author (Articles)

Вывод — проецирует имена авторов, написавших книгу, статью или обоих.

Установить разницу (-)

Результатом операции установки разности являются кортежи, которые присутствуют в одном отношении, но не во втором.

Обозначенияrs

Находит все кортежи, которые присутствуют в r, но не в s .

author (Books) − ∏ author (Articles)

Вывод — содержит имена авторов, которые написали книги, но не статьи.

Декартово произведение (Χ)

Объединяет информацию двух разных отношений в одно.

Обозначение — r Χ s

Где r и s — отношения, и их выходные данные будут определены как —

r Χ s = {qt | q ∈ r и t ∈ s}

σ author = 'tutorialspoint' (Books Χ Articles)

Выходные данные — возвращает отношение, которое показывает все книги и статьи, написанные tutorialspoint.

Переименовать операцию (ρ)

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

Обозначениеρ x (E)

Где результат выражения E сохраняется с именем x .

Дополнительные операции —

  • Установить пересечение
  • присваивание
  • Естественное соединение

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

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

Реляционное исчисление существует в двух формах —

Реляционное исчисление кортежей (TRC)

Фильтрация диапазонов переменных по кортежам

Обозначение — {T | Состояние}

Возвращает все кортежи T, которые удовлетворяют условию.

Например

{ T.name |  Author(T) AND T.article = 'database' }

Выходные данные — возвращает кортежи с именем name от автора, который написал статью о «базе данных».

TRC может быть определена количественно. Мы можем использовать Existential (∃) и Universal Quantifiers (∀).

Например

{ R| ∃T   ∈ Authors(T.article='database' AND R.name=T.name)}

Вывод. Приведенный выше запрос даст тот же результат, что и предыдущий.

Доменное реляционное исчисление (DRC)

В DRC фильтрующая переменная использует область атрибутов вместо целых значений кортежа (как сделано в TRC, упомянутом выше).

Запись

{a 1 , a 2 , a 3 , …, a n | P (a 1 , a 2 , a 3 , …, a n )}

Где a1, a2 — атрибуты, а P — формулы, построенные из внутренних атрибутов.

Например

{< article, page, subject > | 
∈ TutorialsPoint ∧ subject = 'database'}

Выходные данные — возвращает статью, страницу и тему из отношения TutorialsPoint, где тема — это база данных.

Как и TRC, DRC также может быть записан с использованием экзистенциальных и универсальных квантификаторов. В DRC также участвуют реляционные операторы.

Выражение силы Tuple Relation Calculus и Domain Relation Calculus эквивалентно реляционной алгебре.