![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Напомним, что алгеброй называется множество объектов с заданной на нем совокупностью операций, замкнутых относительно этого множества, называемого основным множеством.
Реляционная алгебра как теоретический язык запросов по сравнению с реляционным исчислением более наглядно описывает выполняемые над отношениями действия.
Примером языка запросов, основанного на реляционной алгебре, является ISBL (Information System Base Language — базовый язык информационных систем). Языки запросов, построенные на основе реляционной алгебры, в современных СУБД широкого распространения не получили. Однако знакомство с ней полезно для понимания сути реляционных операций, выражаемых другими используемыми языками.
Вариант реляционной алгебры, предложенный Коддом, включает в себя следующие основные операции: объединение, разность (вычитание), пересечение, декартово (прямое) произведение (или произведение), выборка (селекция, ограничение), проекция, деление и соединение. Упрощенное графическое представление этих операций приведено на рис. 10.2.
Операции реляционной алгебры Кодда можно разделить на две группы:
базовые теоретико-множественные
и специальные реляционные.
Первая группа операций включает в себя классические операции теории множеств:
объединение,
разность,
пересечение
и произведение.
Вторая группа представляет собой развитие обычных теоретико-множественных операций в направлении к реальным задачам манипулирования данными, в ее состав входят следующие операции:
проекция,
селекция,
соединение
и деление.
Операции реляционной алгебры могут выполняться над одним отношением (например, проекция) или над двумя отношениями (например, объединение).
В первом случае операция называется унарной, а во втором — бинарной.
При выполнении бинарной операции участвующие в операциях отношения должны быть совместимы по структуре.
Совместимость структур отношений означает совместимость имен атрибутов и типов соответствующих доменов.
Частным случаем совместимости является идентичность (совпадение).
Для устранения конфликтов имен атрибутов в исходных отношениях (когда совпадение имен недопустимо), а также для построения произвольных имен атрибутов результирующего отношения применяется операция переименования атрибутов.
Структура результирующего отношения по определенным правилам наследует свойства структур исходных отношений. В большинстве рассматриваемых бинарных реляционных операций будем считать, что заголовки исходных отношений идентичны, так как в этом случае не возникает проблем с заголовком результирующего отношения (в общем случае, заголовки могут не совпадать, тогда нужно оговаривать правила формирования заголовка отношения-результата).
По справедливому замечанию Дейта, реляционная алгебра Кодда обладает несколькими недостатками.
Во-первых, восемь перечисленных операций по охвату своих функций, с одной стороны, избыточны, так как минимально необходимый набор составляют пять операций: объединение, вычитание, произведение, проекция и выборка. Три другие операции (пересечение, соединение и деление) можно определить через пять минимально необходимых. Так, например, соединение — это проекция выборки произведения.
Во-вторых, этих восьми операций недостаточно для построения реальной СУБД на принципах реляционной алгебры.
Требуются дополнительные операции, включающие:
переименования атрибутов,
расширения – образования новых вычисляемых атрибутов,
подведения итогов – вычисления итоговых функций,
присвоения,
вставки,
обновления,
удаления,
реляционного сравнения,
построения сложных алгебраических выражений и т. д.
Рассмотрим перечисленные операции более подробно, сначала — операции реляционной алгебры Кодда, а затем — дополнительные операции, введенные Дейтом.
Объединение Разность Пересечение
![]() |
![]() |
![]() |
Произведение Выборка (селекция) Проекция
![]() |
![]() |
![]() |
Деление Соединение (естественное)
![]() |
![]() |
Рис. 10.2. Основные операции реляционной алгебры
Дата публикования: 2015-07-22; Прочитано: 1066 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!