Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УД.docx
Скачиваний:
12
Добавлен:
03.09.2019
Размер:
481.6 Кб
Скачать
  1. Операторы начальной алгебры э. Кодда.

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

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

Реляционная алгебра является языком последовательного использования отношений, в котором все кортежи, возможно, даже взятые из разных отношений, обрабатываются одной командой без организации циклов. Э. Ф. Кодд определил так называемую “начальную алгебру” – набор из восьми операторов, символически показанный на рис. 7.1, составляющих две группы по четыре оператора в каждой:

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

  • специальные реляционные операции: выборка, проекция, соединение и деление.

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

Выборка возвращает отношение, содержащее все кортежи из определенного отношения, которые удовлетворяют определенным условиям. Операция выборки также называется операцией ограничения (изначально она называлась restrict – ограничение, но теперь ее чаще называют select – выборка). Последнее название не совсем удачно, поскольку его легко перепутать с оператором SELECT в языке SQL, который на самом деле гораздо мощнее алгебраической операции restrict – он в основном включает функциональные возможности всех первоначальных восьми операций и имеет дополнительные возможности.

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

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

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

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

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

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

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