Реляционная алгебра, реляционное исчисление - Банки и базы данных. Системы управления базами данных

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

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

Рассмотрим сначала основные операции реляционной алгебры.

Объединением двух отношений, имеющих одинаковые схемы, называется отношение, множеством кортежей которого являются все кортежи исходных отношений.

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

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

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

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

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

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

Теперь дадим определения специальных операций.

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

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

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

Частными случаями операции проекции являются операция тождественной проекции (результатом ее выполнения является исходное отношение) и операция пустой проекции (ее результатом является пустое множество).

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

Операцию деления можно определить следующим образом. Пусть имеются два отношения R1 и R2, А - подмножество множества атрибутов отношения R1, В - подмножество множества атрибутов обоих отношений. Делением отношения R1 на отношение R2 по общему подмножеству атрибутов В является отношение, состоящее из множества атрибутов А и содержащее набор таких кортежей а, что в отношении R1 имеются наборы кортежей а и b, где набор кортежей b является множеством значений подмножества В отношения R2.

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

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

Кроме того, операций реляционной алгебры недостаточно для построения реальной СУБД. Поэтому Дейтом были предложены дополнительные операции - переименования, расширения, подведения итогов, присвоения, вставки, обновления, удаления, сравнения.

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

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

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

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

Операция реляционного сравнения используется для сравнения значений атрибутов в двух отношениях.

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

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

    1. Так же как и в обычной алгебре, в реляционной алгебре определен приоритет выполнения операций, который всегда нужно учитывать при записи выражений. При необходимости изменения порядка производимых вычислений используются скобки. 2. Одно и то же выражение может быть записано с помощью различных комбинаций операций реляционной алгебры. Это позволяет зачастую упрощать выражения. 3. Операции реляционной алгебры могут производиться как над одним, так и над двумя отношениями. В первом случае они называются унарными, во втором - бинарными. При выполнении бинарных операций реляционной алгебры следует помнить о совместимости исходных отношений: при выполнении действий над двумя отношениями необходимо следить за эквивалентностью их схем, степеней и в нужных случаях перед выполнением тои либо иной операции совмещать исходные отношения (в частности, менять названия атрибутов).

В заключение отметим, что в реляционной алгебре все действия выполняются над отношениями, и результатом всех выполненных операций также являются отношения. В этом контексте любой формализованный язык реляционной алгебры (в качестве примера можно привести язык запросов ISBL - Information System Base Language) следует считать процедурным - искомое отношение вычисляется при выполнении последовательности реляционных операторов. Эти операторы состоят из операндов (отношений) и самих реляционных операций.

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

Похожие статьи




Реляционная алгебра, реляционное исчисление - Банки и базы данных. Системы управления базами данных

Предыдущая | Следующая