Главная
Новости
Строительство
Ремонт
Дизайн и интерьер

















Яндекс.Метрика





         » » Алгебра Кодда

Алгебра Кодда



Реляционные операции

Совместимость отношений

Отношения, совместимые по объединению

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

Отношения называются совместимыми по объединению, если

  • они имеют одно и то же множество имен атрибутов, то есть для любого атрибута в одном отношении найдется атрибут с таким же наименованием в другом отношении,
  • атрибуты с одинаковыми именами определены на одних и тех же типах данных (доменах).

Некоторые отношения не являются совместимыми по объединению, но становятся таковыми после переименования некоторых атрибутов.

Отношения, совместимые по взятию расширенного декартова произведения

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

Операция переименования атрибутов

Результатом применения операции переименования атрибутов является отношение с изменёнными именами атрибутов.

Синтаксис:
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

Проекция

Проекция в реляционной алгебре — унарная операция, которая позволяет получить «вертикальное» подмножество данного отношения, или таблицы, то есть такое подмножество, которое получается выбором специфицированных атрибутов с последующим исключением, если это необходимо, избыточных дубликатов кортежей. Пусть дана таблица T {displaystyle T} с именами атрибутов A 1 , A 2 , … , A n {displaystyle A_{1},;A_{2},;ldots ,;A_{n}} , то есть T ( A 1 , A 2 , … , A n ) {displaystyle T(A_{1},;A_{2},;ldots ,;A_{n})} и некоторое подмножество множества имен атрибутов { A i 1 , A i 2 , … , A i k } {displaystyle {A_{i_{1}},;A_{i_{2}},;ldots ,;A_{i_{k}}}} . Результатом проекции таблицы по выбранным именам атрибутов называется новая таблица T ( A i 1 , A i 2 , … , A i k ) {displaystyle T(A_{i_{1}},;A_{i_{2}},;ldots ,;A_{i_{k}})} , полученная из исходной таблицы вычеркиванием атрибутов, не входящих в выбранное множество, с последующим возможным удалением избыточных дубликатов кортежей.

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

Соединение

Операция соединения есть результат последовательного применения операций декартового произведения и выборки. Если в отношениях и имеются атрибуты с одинаковыми наименованиями, то перед выполнением соединения такие атрибуты необходимо переименовать.
Синтаксис:
(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

Зависимость реляционных операторов

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

  • Оператор соединения

Оператор соединения определяется через операторы декартового произведения и выборки следующим образом: (A TIMES B) WHERE X=Y где X и Y атрибуты соответственно отношений A и B с первоначально равными именами.

  • Оператор пересечения

Оператор пересечения выражается через вычитание следующим образом: A INTERSECT B = A MINUS (A MINUS B)

  • Оператор деления

Оператор деления выражается через операторы вычитания, декартового произведения и проекции следующим образом: A DIVIDEBY B = A[X] MINUS ((A[X] TIMES B) MINUS A)[X]

Примитивные реляционные операторы

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

  • Оператор декартового произведения

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

  • Оператор проекции

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

  • Оператор выборки

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

  • Операторы объединения и вычитания

Доказательство примитивности операторов объединения и вычитания более сложны и мы их здесь не приводим.