- •Содержание
- •7.1. Реляционные языки.
- •7.2. Реляционная алгебра.
- •7.2.1. Основные понятия.
- •7.2.2. Выборка (или ограничение).
- •7.2.3. Проекции.
- •Проекция отношения Librarians по атребутам ClockNumber, FamilyNamе, Name, Patronymic и HomePhone
- •7.2.4. Декартово произведение.
- •7.2.6. Разность.
- •7.2.7. Операции соединения.
- •7.2.5. Объединение.
- •7.2.7.1. Тета-соединение.
- •7.2.7.2. Естественное соединение.
- •7.2.7.3. Внешнее соединение.
- •7.2.7.4. Полусоединение.
- •7.2.8. Пересечение.
- •7.2.9. Деление.
- •Контрольные вопросы:
7.2. Реляционная алгебра.
7.2.1. Основные понятия.
Реляционная алгебра — это теоретический язык операций, которые на основе одного или нескольких отношений позволяют создавать другое отношение без изменения самих исходных отношений. Таким образом, оба операнда и результат являются отношениями, а потому результаты одной операции могут стать исходными данными для другой операции. Это позволяет создавать вложенные выражения реляционной алгебры точно так же, как создаются вложенные арифметические выражения. Это свойство называется замкнутостью, т.е. отношения покрываются реляционной алгеброй так же, как числа — арифметическими операциями.
Реляционная алгебра является языком последовательного использования отношений, в котором все кортежи, возможно, взятые даже из разных отношений, обрабатываются одной командой, без организации циклов. Для команд реляционной алгебры предложено несколько вариантов синтаксиса. Ниже мы воспользуемся общепринятыми символическими обозначениями для этих команд и представим их в неформальном виде. Более подробные сведения по этому вопросу заинтересованный читатель сможет найти в работах Ульмана (Ullman, 1988).
Существует несколько вариантов выбора операций, которые включаются в реляционную алгебру. Исходно Кодд предложил восемь операторов, но впоследствии к ним были добавлены и некоторые другие. Пять основных операций реляционной алгебры, а именно выборка (selection), проекция (projection), декартово произведение (cartesian product), объединение (union) и разность (set difference), выполняют большинство операций извлечения данных, которые могут представлять для нас интерес. На основании пяти основных операций можно также вывести дополнительные операции, такие как операции соединения (join), пересечения (intersection) и деления (division). Функции этих операций схематически показаны на рис. 7.1.
Операции
выборки и проекции являются унарными,
поскольку они работают с одним отношением.
Другие операции работают с парами
отношений, и поэтому их называют бинарными
операциями. В приведенных ниже определениях
и
— это два отношения, определенные над
атрибутами
и
соответственно. Для иллюстрации
результатов выполнения операций мы
воспользуемся отношениями базы данных
«Библиотека».
Рис. 7.1. Схематическое представление функций операторов реляционной алгебры.
7.2.2. Выборка (или ограничение).
|
Операция выборки работает с одним отношением и определяет результирующее отношение, которое содержит только те кортежи (строки) отношения , которые удовлетворяют заданному условию (предикату). |
ПРИМЕР.
Составьте список библиотекарей у которых табельный номер превышает 80.
Здесь исходным отношением является отношение Librarians, а предикатом — выражение Clock-Number>80. Операция выборки определяет новое отношение, содержащее только те кортежи отношения Librarians, в которых значение атрибута ClockNumber превышает 80. Результат выполнения этой операции показан в табл. 7.1. Более сложные предикаты могут быть созданы с помощью логических операторов AND, OR и NOT.
Таблица 7.1.
Результат выполнения операции выборки из отношения Librarians кортежей с атрибутом ClockNumber > 80.
Code |
Clock-Number |
FamilyNamе |
Name |
Patronymic |
Pasport-Code |
Post |
HomePhone |
Note |
3 |
187 |
Иноземцева |
Иванна |
Модестов-на |
9 |
Ст. биб- лиотекарь |
775-34-00 |
blob |
4 |
83 |
Мальцева |
Диана |
Петровна |
12 |
Библио-текарь |
29-06-15 |
blob |
6 |
100 |
Ставка |
Лилия |
Ивановна |
7 |
Библио-текарь |
22-00-01 |
blob |
