Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
146
Добавлен:
11.04.2015
Размер:
380.93 Кб
Скачать

Глава 4. Реляционная алгебра и реляционное исчисление

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

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

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

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

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

Большинство действий по извлечению данных выполняются с помощью пяти основных операций реляционной алгебры:

  • выборка (selection);

  • проекция (projection);

  • декартово произведение (Cartesian product);

  • объединение (union);

  • разность множеств (set difference).

С использованием этих основных операций можно вывести следующие дополнительные операции:

  • соединение (join);

  • пересечение (intersection);

  • деление (division).

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

* * * * * * * * *

σ<условие>(R) —операция выборки (ограничения). Включает в результирующую таблицу только те строки из исходной таблицы R, которые удовлетворяют заданному условию.

* * * * * * * * *

Π<список атрибутов>(R) —операция проекции. Определяет новое отношение, которое содержит вертикальное подмножество исходной таблицы R, создаваемое посредством извлечения значений указанных атрибутов и исключения из результата повторяющихся строк.

* * * * * * * * *

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

Если таблицы RиSвключают, соответственно,NиMзаписей, то объединенная таблица может содержать не более (N+M) записей.

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

* * * * * * * * *

R–S—разностьтаблицRиS. Состоит из записей, которые имеются в таблицеR, но отсутствуют в таблицеS. При этом таблицыRиSдолжны быть совместимыми по объединению.

* * * * * * * * *

RS—операция пересечения. Определяет таблицу, в которой содержатся записи, присутствующие одновременно как в таблицеR, так и в таблицеS. ТаблицыRиSдолжны быть совместимыми по объединению. Пересечение можно сформулировать и на основе операции разности множеств:RS=R–(R–S).

* * * * * * * * *

RS—операция декартова произведения. Определяет новое отношение, которое является результатом сцепления каждого кортежа из таблицыRс каждым кортежем из таблицыS. Если одна таблица имеет N записей и n атрибутов, а другая таблица —Mзаписей иmатрибутов, то их декартово произведение будет содержатьNMзаписей и (n+m) атрибутов. Если исходные таблицы содержат атрибуты с одинаковыми именами, то в результирующей таблице к имени каждого такого атрибута будет добавлено в качестве префикса имя таблицы, к которой принадлежит атрибут. Этим обеспечивается уникальность имен атрибутов для таблицы, которая получается в результате произведения.

* * * * * * * * *

С помощью операции присваивания(Result<реляционное выражение>) можно присвоить произвольное имя (в данном случаеResult) результату выполнения действий, записанных в виде реляционного выражения.

* * * * * * * * *

Для операции соединенияимеется несколько разновидностей.

1)R▷◁ΘS—операция Θ–соединения. Определяет таблицу, которая содержит кортежи из декартова произведенияRS, удовлетворяющие определенному условиюΘ, т.е. R▷◁ΘS=σΘ(RS).

2)Если условиеΘсодержит только операцию сравнения по равенству (=), то имеет местосоединение по эквивалентности.

3)R▷◁S—операция естественного соединения. Реализуется как соединение по эквивалентности с учетом всех общих атрибутов в таблицахRиS. В результирующей таблице каждый общий атрибут присутствует только в единственном экземпляре. Следовательно, степень естественного соединения таблицRиSравна сумме степеней этих таблиц за вычетом количества общих атрибутов.

4)R◁S—левое внешнее соединение. При выполнении этой операции в результирующую таблицу включаются также кортежи таблицы R, не имеющие совпадающих значений в общих столбцах таблицы S.

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

Соседние файлы в папке Лекции и прочее