Для управления реляционной базой данных Э.Ф. Кодд ввел реляционные языки обработки данных — реляционную алгебру и реляционное исчисление. Появление реляционных языков дополнительно к реляционной модели, которая сама по себе имела, безусловно, большое значение, явилось серьезным основанием для реляционной революции в области баз данных. Реляционные языки, позволяя манипулировать данными на основе только их логических характеристик, заняли одно из важнейших мест новой модели. Кодд предложил 2 языка манипулирования данными: реляционная алгебра и реляционное исчисление.
Реляционная алгебра — это процедурный язык обработки реляционных таблиц. Это означает, что в реляционной алгебре используется пошаговый подход к созданию реляционных таблиц, со¬держащих ответы на запросы. Большое внимание, проявляемое к реляционной алгебре, обусловлено тем, что она породила многие термины, часто встречаю¬щиеся в коммерческих языках баз данных. Более того, некоторые коммерческие языки баз данных основаны на реляционной алгебре.
Реляционное исчисление - непроце¬дурный язык. В реляционном исчислении запрос создается путем определе-ния таблицы запроса за один шаг.
Большое значение реляционного исчисления обусловлено двумя причинами:
Кодд показал логи¬ческую эквивалентность реляционной алгебры и реляционного исчисления. Это означает, что любой за¬прос, который можно сформулировать при помощи реляционного исчисления, также можно сформулировать, пользуясь реляционной алгеброй, и наоборот. Этот факт позволил измерять логическую мощность языка запросов. Если язык имеет как минимум те же возможности, что и реляционная алгебра, то он называется реляционно-полным. Таким образом, реляционная алгебра или реляционное исчисле¬ние являются эталоном при тестировании логических возмож¬ностей ком¬мерческих реляционных языков.
Реляционная алгебра
Операторы реляционной алгебры используют одно или два из существующих отношений для создания нового отношения, которое затем может быть использовано в качестве операнда для нового оператора. Реляционная алгебра (или алгебра отношений) представляет собой совокупность операций высокого уровня над отношениями.
Реляционная алгебра определяет следующие операции: объедине¬ние, пересечение, разность, произведение, выбор,создание проекций, соединение, деление.
Одной из главнейших операций при работе с БД в реляционной теории является запрос. И выполнение всех перечисленных операций реляционной алгебры всегда направлено именно на реализацию запросов.
Запрос — операция над отношениями, результатом которой является отношение. Под системой запросов будем понимать формальную систему для выражения запросов. Запрос с использованием реляционной алгебры задает алгоритм преобразования отношений, приводящий к требуемому результату.
Операции реляционной алгебры делятся на две группы - основные и дополнительные.
Основные операции реляционной алгебры
К основным операциям относятся следующие булевы операции: объединение, разность, декартово произведение.
Объединение Union
Пусть имеются отношения r и s, тогда отношение t = r ? s называется объединением r и s, если каждый кортеж, принадлежащий t, принадлежит или r, или s, или им обоим.
Необходимо сформировать ответ на следующий запрос: какие типы деталей входят в состав обоих изделий? Для достижения этой цели необходимо выполнить операцию t=r?s. Результирующее отношение содержит все детали, которые входят в состав обоих изделий.
Разность
Пусть имеются два отношения r и s, тогда отношение t=r - s называется разностью r и s, если каждый кортеж, принадлежащий t, принадлежит r, но не принадлежит s. Операция применяется к отношениям одной арности. Следует отметить, что операция разности является
Декартово произведение
Под декартовым произведением двух отношений понимается множество упорядоченных пар кортежей. Пусть имеются два отношения r и s, тогда отношение t = r * s арности k = k1 + k2, где k1 — арность r, а k2 — арность s, называется декартовым произведением r и s, если оно состоит из кортежей, первые k1 компонент которых образуют кортежи из r, а остальные k2 — из s. Как видим, выполнение данной операции, в отличии от других уже рассмотренных операций, приводит к тому, что степень результирующего отношения не совпадает со степенью ни одного из операндов, а равна сумме степеней исходных отношений.
Относительно влияния перестановки операндов на результат операции декартово произведение можно считать симметричной операцией.