<<
>>

Операции реляционной алгебры

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

При описании операций реляционной алгебры будем ис-пользовать обозначения:

¦ ИФ (ИФ1; ИФ2) — имя исходного (первого исходного; второго исходного) файла;

¦ ФР — имя файла результата.

Некоторые операции накладывают на исходные файлы ограничения, которые в определенном смысле можно рас-сматривать как внутренние ограничения целостности.

Проектирование

Формальная запись: ФР = рго] [список имен полей] (ИФ).

Операция не накладывает ограничений на исходный файл.

Операция предусматривает следующие действия:

¦ из ИФ исключаются все поля, имена которых отсутствуют в списке имен полей;

¦ из полученного файла удаляются повторяющиеся записи.

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

Эта операция также не накладывает ограничений на ИФ.

В файл результата заносятся те записи из ИФ, которые удов-летворяют условию поиска. Условие представляет собой ло-гическое выражение, связывающее значения полей ИФ.

Пример. Пусть для приведенного выше ИФ КАДРЫ тре-буется выявить сотрудников П/Я 34170, имеющих должность “ст. инженер”.

Отметим, что данная операция не изменяет структуру ИФ. Кроме того, при такой формальной записи операции пред-полагается, что СУБД поддерживает отработку сложных (со-ставных) запросов, в противном случае пришлось бы составное условие поиска отрабатывать последовательно — сначала выявить сотрудников, имеющих должность “ст. инженер”, а затем — из них выделить тех, кто служит в П/Я 34170 (или наоборот).

Иногда такой (последовательный) порядок поиска имеет определенные преимущества — прежде всего в тех случаях, когда на сложный запрос дан отрицательный ответ и непонятно, что послужило причиной этого (в нашем примере — или нет сотрудников должности “ст. инженер”, или никто из них не “работает” в указанном П/Я, или такого предприятия вообще “нет” в БД).

Соединение

В реляционной алгебре определено несколько операций соединения. Мы рассмотрим так называемое естественное соединение.

Условием выполнения данной операции является наличие в соединяемых файлах одного или нескольких однотипных полей, по которым и осуществляется соединение (эти поля указываются в списке; если список пуст, соединение осуществляется по всем однотипным полям).

В файл результата заносятся записи, являющиеся так называемыми конкатенациями (англ. concatenate — сцеплять, связывать) записей исходных файлов. Иными словами, в ФР попадают записи ИФ1 и ИФ2 с совпадающими значениями полей, по которым осуществляется соединение (“сцепка”).

Пример 1. Пусть помимо файла КАДРЫ имеется файл ЦЕХ, в котором указаны порядковый НОМЕР сотрудника (как и в первом файле) и НОМЕР_ЦЕХА — номер цеха, в котором данный сотрудник работает.

Следует обратить внимание, что в формате команды не указаны поля соединения. Следовательно, оно осуществляется по единственному однотипному полю (НОМЕР).

Пример 2. Пусть требуется выяснить, в каком цехе п/я 34170 работает ст. инженер Сидоров.

Объединение

Условием выполнения операции является однотипность (одинаковая структура) исходных файлов.

В файл результата заносятся неповторяющиеся записи исходных файлов.

Разность (вычитание)

Формальная запись:

ФР = ИФ1—ИФ2.

Условием выполнения операции является однотипность (одинаковая структура) исходных файлов.

В файл результата заносятся записи первого исходного файла, которых нет во втором.

Пример. В условиях предыдущего примера выполним операцию

ФР = УЧ_Д_К АФЕДРЫ1 — УЧ_Д_КАФЕДРЫ2.

Получим данные об учебных дисциплинах, читаемых кафедрой № 1 без участия кафедры № 2.

Пересечение

Формальная запись:

ФР = ИФ1-ИФ2.

Условием выполнения операции является однотипность (одинаковая структура) исходных файлов.

В результирующий файл заносятся записи, присутствующие в обоих исходных файлах.

Пример. Для уже известных файлов УЧ_Д_КАФЕДРЫ1 и УЧ_Д_КАФЕДРЫ2 выполним операцию пересечения

ФР = УЧ_Д_К АФЕДРЫ 1 — УЧ_Д_КАФЕДРЫ2.

Деление

Формальная запись:

ФР = ИФ1+ИФ2.

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

В файл результата, состоящий из полей первого исходного файла, не входящих во второй, заносятся те записи, которые согласуются со всеми записями второго исходного файла.

Умножение

Формальная запись:

ФР = ИФ1ХИФ2.

Условием выполнения операции умножения является от-сутствие в исходных файлах полей с одинаковыми именами.

В файл результата, содержащий поля обоих исходных файлов, заносятся все возможные комбинации записей ИФ1 и ИФ2.

Пример. Пусть в БД хранятся данные об инженерах и старших инженерах (в файлах СТАРШИЕ ИНЖЕНЕРЫ и ИНЖЕНЕРЫ соответственно).

Старшие инженеры

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

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

<< | >>
Источник: В. Б. Уткин. Информационные системы в экономике. 2008

Еще по теме Операции реляционной алгебры:

  1. Алгебра событий и алгебра вероятностей
  2. Реляционные базы данных
  3. Реляционная модель данных
  4. Промежуточные операции коммерческих банков. Операции с валютой и валютными ценностями
  5. Депозитные операции и операции по вкладам физических лиц
  6. Аутентификации лиц, совершающих операции как основа безопасности карточных операций
  7. Расчетно-кассовые операции как одна из важнейших операций коммерческого банка
  8. Бартерные операции. Старейшая форма товарообменных операций — бартер.
  9. Пассивные операции коммерческого банка. Общая характеристика пассивных операций банков
  10. Активные операции коммерческого банка. Понятие активных операций и их содержание
  11. Активы коммерческих банков. Кредитные операции коммерческих банков. Операции межбанковского кредитования
  12. Операции коммерческих банков
  13. Банковские операции
  14. Основные операции коммерческих банков