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

Предложив реляционную модель данных, Э. Кодд создал и инструмент для удобной работы с отношениями – реляционную алгебру. Основная идея реляционной алгебры состоит в том, что коль скоро отношения являются множествами, то средства манипулирования отношениями могут базироваться на традиционных теоретико-множественных операциях (объединение, пересечение и т.д.), дополненных некоторыми специальными операциями, специфичными для баз данных.

Напомним, что алгеброй называется множество объектов (называемое основным множеством) с заданной на нем совокупностью операций. Основным множеством в реляционной алгебре является множество отношений. На нем заданы 8 операций, использующих отношения в качестве аргументов, и возвращающие отношения в качестве результата. Таким образом, реляционный оператор f выглядит как функция с отношениями в качестве аргументов:

R=f(R1, R2, …, Rn)

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

R=f(f1(R11, R12, …), f2(R21, R22, …), …)

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

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

Множество реляционных операторов можно разделить на две группы.

Теоретико-множественные операторы:

- Объединение

- Пересечение

- Вычитание

- Декартово произведение

Специальные реляционные операторы:

- Выборка

- Проекция

- Соединение

- Деление

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: