Скачиваний:
147
Добавлен:
02.05.2014
Размер:
2.66 Mб
Скачать

6.1. Введение

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

В [6.1] Кодд определяет так называемую "начальную" алгебру, т.е. набор из восьми операторов, символически показанный на рис. 6.1. Определяя именно эти восемь опера- торов, Кодд преследовал особую цель, речь о которой пойдет в следующей главе. Одна- ко важно понимать, что алгебра этими восемью операторами не исчерпывается. На са- мом деле можно было бы определить любое число операторов, которые удовлетворяли бы простому необходимому условию: "отношение на входе — отношение на выходе" (множество таких операторов действительно предлагалось разными авторами; см., на- пример, [6.10]). В этой главе мы сначала рассмотрим операторы Кодда (или, по крайней мере, его версию этих операторов), а затем используем их в качестве основы для обсуж- дения различных алгебраических идей. В продолжение этой темы обсуждаются способы, с помощью которых данный первоначальный набор операторов можно расширить в том или ином направлении.

Обзор операций начальной алгебры

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

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

2. Специальные реляционные операции: выборка, проекция, соединение и деление. Ниже приведены упрощенные определения этих восьми операторов (рис. 6.1).

Выборка Возвращает отношение, содержащее все кортежи из заданного от-

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

Выборка

Проекция

Произведение

ГПрОИЗЕ

а

X

а

У

Ь

X

Ь

У

с

X

с

У

Соединение

Пересечение

Разность

Гсоединеь

а1

Ы

с1

а2

Ы

с1

аЗЬ2с2-♦Деление —^

а

X

а

У

а

Z

Ь

X

с

У

Рис б / Первоначальные восемь операторов (обзор)

Проекция Возвращает отношение, содержащее все кортежи (подкортежи) за-

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

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

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

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

Разность Возвращает отношение, содержащее все кортежи, которые принад-

лежат первому из двух заданных отношений и не принадлежат вто- рому

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

Деление Для заданных двух унарных отношений и одного бинарного возвра-

щает отношение, содержащее все кортежи из первого унарного от- ношения, которые содержатся также в бинарном отношении и соот- ветствуют всем кортежам во втором унарном отношении

На этом закончим краткий обзор первоначальных операторов. План остальной части главы такой: в следующем разделе повторно и более подробно рассматривается вопрос реляционного замыкания. Затем в разделах 6.3 и 6.4 детально обсуждаются восемь пер- воначальных операторов, предложенных Коддом, а в разделе 6.5 даются некоторые при- меры их использования для построения запросов. В разделе 6.6 рассматривается более общий вопрос о назначении реляционной алгебры. В разделе 6.7 описывается несколько полезных расширений начальной алгебры Кодда, в частности два важных оператора — EXTEND и SUMMARIZE. В разделе 6.8 приводятся операторы отображения между отноше- ниями, которые включают атрибуты, принимающие в качестве значений другие отноше- ния, и между отношениями с атрибутами, которые принимают только скалярные значе- ния. В разделе 6.9 рассматривается реляционное сравнение. И наконец в разделе 6.10 приводится краткое заключение.

И еще два предварительных замечания.

  • По очевидным причинам мы часто будем использовать фразы наподобие "X явля- ется выборкой из R" (где R — некоторая переменная-отношение), в то время как более корректно следовало бы говорить "X — выборка из отношения, которое яв- ляется текущим значением переменной-отношения R" или даже "X — это пере- менная, текущим значением которой является выборка из отношения, которое яв- ляется текущим значением переменной-отношения R". Мы надеемся, что такое со- кращение не приведет к путанице.

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

Соседние файлы в папке Дейт К. Дж. Введение в системы баз данных [7 издание]