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

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

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

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

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

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

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

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

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

Обозначение - σ 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)

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

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

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

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

Находит все кортежи, которые присутствуют в 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 также участвуют реляционные операторы.

Степень выраженности исчисления корреляции кортежей и исчисления отношений доменов эквивалентна реляционной алгебре.