Главная » SQL, Базы данных » НЕКОТОРЫЕ ДОПОЛНИТЕЛЬНЫЕ ЗАМЕЧАНИЯ

0

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

Ассоциативность и коммутативность

Можно легко убедиться в том, что операция UNION является ассоциативной. Это означает, что если a, b и с — произвольные отношения одного и того же типа, то следующие два выражения логически эквиваленты.

( a UNION b ) UNION с И     a UNION ( b UNION с )

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

a UNION b UNION  с

Аналогичные замечания относятся к операциям INTERSECT, TIMES и JOIN (но не к операции MINUS). Примечание. На практике по этой причине, а также по  некоторым другим причинам может оказаться более предпочтительной префиксная система обозначений, как, например, UNION (a, b ,  с), а не инфиксный стиль,  применяемый в языке Tutorial D. Но в данной книге автор придерживается инфиксного стиля.

Кроме того, операции UNION, INTERSECT, TIMES и JOIN (но не операция MINUS) являются коммутативными. Это означает, что следующие выражения также являются логически эквивалентными.

a   UNION b И

b UNI ON a

Аналогичное замечание относится и к операциям INTERSECT, TIMES и JOIN.

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

ассоциативной, ни коммутативной, а реляционная версия этой операции (как

уже было показано) обладает обоими этими свойствами.

Некоторые  э к вивалентности

В этом подразделе просто перечислены некоторые важные эквивалентности, которые в основном предназначены для использования в дальнейшем изложении. В приведенных ниже формулах r обозначает произвольное отношение, a empty—  пустое отношение такого же типа, как и r.

■      r WHERE TRUE = r (сокращение тождества).

■      r WHERE   FALSE  =  empty.

■      r  { X,   Y,   . . . ,   z  }  = r, если x,Y,…, z— все атрибуты r (проекция тождества).

r  {  }  = TABLE_DUM, если r = empty, в противном случае TABLE_DEE (нульарная проекция).

■      r  JOIN  r  s  r  UNION  r  s  r   INTERSECT  r =  r.

■      r  JOIN TABLE_DEE  =  TABLE_DEE  JOIN r  = r (Т.е. TABLE_DEE ЯВЛЯеТСЯ еДИничным элементом применительно к операции соединения, так же, как в обычной арифметике нуль — единичный элемент применительно к сложению, а единица — единичный элемент применительно к умножению).

rTIMES  TABLE_DEE  =  TABLE_DEE  TIMES  r  =  r (эта эквикалентность представляет собой частный случай предыдущей).

■      r UNION empty = r MINUS empty = r.

■      empty INTERSECT r = empty MINUS r = empty.

Некоторые обобщения

Все операции JOIN, UNION и INTERSECT были определены первоначально как бинарные (т.е. каждая из них принимает в качестве операндов два и только два отношения)5; но, как было показано выше, эти операции могут быть однозначно обобщены для преобразования их в n-арные для произвольного п > 1. А что  можно сказать по поводу таких операций с п = 1 или п = 0? Оказалось, что желательно иметь возможность определить,  по  крайней  мере,  с  концептуальной  точки  зрения,  операции  "соединения", "объединения" и "пересечения" только с одним отношением и вообще без отношений (даже несмотря на то, что в языке Tutorial D не предусмотрена непосредственная синтаксическая поддержка ни для одной подобной операции). Определения таких  операций приведены ниже. Допустим, что s — множество отношений (в случае объединения и пересечения все они принадлежат к одному и тому же типу отношения RT). В таком случае справедливы приведенные ниже утверждения.

■      Если s содержит только одно отношение r, то результат всех операций соедине ния, объединения и пересечения всех отношений BS определен просто как r.

■      Если s вообще не содержит отношений, то справедливы следующие утверждения:

■     соединение всех отношений в s определено как отношение TABLE_DEE (С тем же единичным элементом, который соответствует соединению);

5 Операция MINUS также является бинарной. В отличие от нее, операции ограничения и проекции являются унарными.

▪    объединение всех отношений в s определено как пустое отношение типа RT;

▪    пересечение всех отношений в s определено как "универсальное" отношение6 типа RT, иными словами, как то уникальное отношение типа RT, которое содержит все возможные кортежи с заголовком н, где н — заголовок отношения типа RT.

Источник: Дейт К. Дж., Введение в системы баз данных, 8-е издание.: Пер. с англ. — М.: Издательский дом «Вильямс», 2005. — 1328 с.: ил. — Парал. тит. англ.

По теме:

  • Комментарии