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

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

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

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

В процессе развития реляционной теории и практики было предложено несколько новых реляционных операций, например полусоединение (SEMI-JOIN) и полуразность, или анти-полусоединение (ANTI-SEMI-JOIN)[1][2], CROSS APPLY и OUTER APPLY, транзитивное замыкание (TCLOSE) и др.

Поскольку многие операции выразимы друг через друга, в составе реляционной алгебры можно выделить несколько вариантов базиса (набора операций, через который выразимы все остальные). Наиболее известный и строго определённый базис (алгебра А) предложен Кристофером Дейтом и Хью Дарвеном[3].

Реляционная алгебра и реляционное исчисление эквиваленты по своей выразительной силе[4]. Существуют правила преобразования запросов между ними.

Содержание

Замкнутость реляционной алгебры

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

Операции над одним отношением называются унарными, над двумя отношениями — бинарными, над тремя — тернарными (таковые практически неизвестны).

Пример унарной операции — проекция, пример бинарной операции — объединение.

N-арную реляционную операцию f можно представить функцией, возвращающей отношение и имеющей n отношений в качестве аргументов:

R = f(R_1, R_2,\dots, R_n)

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

R = f(f_1(R_{11},R_{12},\dots),f_2(R_{21},R_{22},\dots),\dots)

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

Ограничения на операции

Некоторые реляционные операции, в частности, операции объединения, пересечения и вычитания, требуют, чтобы отношения имели совпадающие (одинаковые) заголовки (схемы). Это означает, что совпадают количество атрибутов, названия атрибутов и тип (домен) одноимённых атрибутов.

Некоторые отношения формально не являются совместимыми из-за различия в названиях атрибутов, но становятся таковыми после применения операции переименования атрибутов.

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

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

Переименование

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

R RENAME Atr1, Atr2, … AS NewAtr1, NewAtr2,

где

R — отношение
Atr1, Atr2, … — исходные имена атрибутов
NewAtr1, NewAtr2, … — новые имена атрибутов

Объединение

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

A UNION B

Пересечение

Отношение с тем же заголовком, что и у отношений A и B, и телом, состоящим из кортежей, принадлежащих одновременно обоим отношениям A и B.
Синтаксис:

A INTERSECT B

Вычитание

Отношение с тем же заголовком, что и у совместимых по типу отношений A и B, и телом, состоящим из кортежей, принадлежащих отношению A и не принадлежащих отношению B.
Синтаксис:

A MINUS B

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

Отношение (A1, A2, …, Am, B1, B2, …, Bm), заголовок которого является сцеплением заголовков отношений A(A1, A2, …, Am) и B(B1, B2, …, Bm), а тело состоит из кортежей, являющихся сцеплением кортежей отношений A и B:

(a1, a2, …, am, b1, b2, …, bm)

таких, что

(a1, a2, …, am)A,
(b1, b2, …, bm)B.

Синтаксис:

A TIMES B

Выборка (ограничение)

Отношение с тем же заголовком, что и у отношения A, и телом, состоящим из кортежей, значения атрибутов которых при подстановке в условие c дают значение ИСТИНА. c представляет собой логическое выражение, в которое могут входить атрибуты отношения A и/или скалярные выражения.
Синтаксис:

A WHERE c

Проекция

Отношение с заголовком (X, Y, …, Z) и телом, содержащим множество кортежей вида (x, y, …, z), таких, для которых в отношении A найдутся кортежи со значением атрибута X равным x, значением атрибута Y равным y, …, значением атрибута Z равным z. При выполнении проекции выделяется «вертикальная» вырезка отношения-операнда с естественным уничтожением потенциально возникающих кортежей-дубликатов.
Синтаксис:

A[X, Y, …, Z]

или

PROJECT A {x, y, …, z}

Соединение

Операция соединения есть результат последовательного применения операций декартового произведения и выборки. Если в отношениях имеются атрибуты с одинаковыми наименованиями, то перед выполнением соединения такие атрибуты необходимо переименовать.
Синтаксис:

(A TIMES B) WHERE c

Деление

Отношение с заголовком (X1, X2, …, Xn) и телом, содержащим множество кортежей (x1, x2, …, xn), таких, что для всех кортежей (y1, y2, …, ym) ∈ B в отношении A(X1, X2, …, Xn, Y1, Y2, …, Ym) найдется кортеж (x1, x2, …, xn, y1, y2, …, ym).
Синтаксис:

A DIVIDEBY B

Примечания

  1. Introduction to Joins
  2. Дейт, Кристофер. SQL и реляционная теория. Как грамотно писать код на SQL. — Символ-Плюс, 2010
  3. К. Дейт, Хью Дарвен. Основы будущих систем баз данных. Третий манифест. М: Янус-К, 2004.
  4. Грей, 1989, с. 188

Литература

  • Грей П. Логика, алгебра и базы данных. — М.: Машиностроение, 1989. — С. 188-213. — 368 с.

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Полезное


Смотреть что такое "Реляционная алгебра" в других словарях:

  • Реляционная алгебра — формальная система манипулирования отношениями, основными операциями которой являются: проекция, соединение, пересечение и объединение. См. также: Реляционная модель данных Финансовый словарь Финам …   Финансовый словарь

  • реляционная алгебра — — [http://www.iks media.ru/glossary/index.html?glossid=2400324] Тематики электросвязь, основные понятия EN relational algebra …   Справочник технического переводчика

  • реляционная алгебра — saryšių algebra statusas T sritis automatika atitikmenys: angl. relational algebra vok. Relationsalgebra, f rus. алгебра отношений, f; реляционная алгебра, f pranc. algèbre des relations, f …   Automatikos terminų žodynas

  • Реляционная модель данных — (РМД)  логическая модель данных, прикладная теория построения баз данных, которая является приложением к задачам обработки данных таких разделов математики как теории множеств и логика первого порядка. На реляционной модели данных строятся… …   Википедия

  • Алгебра (значения) — Алгебра  раздел математики либо математическая структура специального вида (см. Алгебраическая система) Как раздел математики Абстрактная алгебра Алгебра логики  раздел математической логики. Коммутативная алгебра Линейная алгебра… …   Википедия

  • Реляционная модель — данных логическая модель данных, строгая математическая теория, описывающая структурный аспект, аспект целостности и аспект обработки данных в реляционных базах данных. Структурный аспект (составляющая) данные в базе данных представляют собой… …   Википедия

  • Проекция (реляционная алгебра) — У этого термина существуют и другие значения, см. Проекция. Проекция в реляционной алгебре  унарная операция, которая позволяет получить «вертикальное» подмножество данного отношения, или таблицы, то есть такое подмножество, которое… …   Википедия

  • алгебра отношений — saryšių algebra statusas T sritis automatika atitikmenys: angl. relational algebra vok. Relationsalgebra, f rus. алгебра отношений, f; реляционная алгебра, f pranc. algèbre des relations, f …   Automatikos terminų žodynas

  • Реляционная СУБД — (РСУБД; иначе Система управления реляционными базами данных, СУРБД)  СУБД, управляющая реляционными базами данных. Понятие реляционный (англ. relation  отношение) связано с разработками известного английского специалиста в области… …   Википедия

  • Реляционная база данных — Реляционная база данных  база данных, основанная на реляционной модели данных. Слово «реляционный» происходит от англ. relation (отношение[1]). Для работы с реляционными БД применяют реляционные СУБД. Использование реляционных баз… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»