Главная » Информационные системы » Управление данными » 12. Специальные реляционные операции манипулирования реляционными данными

12. Специальные реляционные операции манипулирования реляционными данными

Специальные реляционные операции включают: ограничение отношения; проекцию отношения; соединение отношений; деление отношений (таблиц).

Выборка (ограничение, селекция)

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

В простейшем случае условие  имеет вид , где  - один из операторов сравнения ( и т.д.), а  и  - атрибуты отношения  или скалярные значения. Такие выборки называются -выборки(тэта-выборки) или -ограничения, -селекции.

Синтаксис операции выборки:

,

или

Пример 6. Пусть дано отношение с информацией о сотрудниках:

Табельный номер Фамилия Зарплата
1 Иванов 1000
2 Петров 2000
3 Сидоров 3000

Таблица 9 Отношение A

Результат выборки  будет иметь вид:

Табельный номер Фамилия Зарплата
1 Иванов 1000
2 Петров 2000

Таблица 10 Отношение A WHERE Зарплата<3000

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

Проекция

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

Синтаксис операции проекции:

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

Пример 7. Пусть дано отношение с информацией о поставщиках, включающих наименование и месторасположение:

Номер поставщика Наименование поставщика Город поставщика
1 Иванов Уфа
2 Петров Москва
3 Сидоров Москва
4 Сидоров Челябинск

Таблица 11 Отношение A (Поставщики)

Проекция  будет иметь вид:

Город поставщика
Уфа
Москва
Челябинск

Таблица 12 Отношение A[Город поставщика]

Соединение

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

Обычно рассматривается несколько разновидностей операции соединения:

  • Общая операция соединения
  • -соединение (тэта-соединение)
  • Экви-соединение
  • Естественное соединение

Наиболее важным из этих частных случаев является операция естественного соединения. Все разновидности соединения являются частными случаями общей операции соединения.

Общая операция соединения

Определение 8. Соединением отношений  и  по условию  называется отношение

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

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

Тэта-соединение

Определение 9. Пусть отношение  содержит атрибут , отношение  содержит атрибут , а  - один из операторов сравнения ( и т.д.). Тогда -соединением отношения  по атрибуту  с отношением  по атрибуту  называют отношение

Это частный случай операции общего соединения.

Иногда, для операции -соединения применяют следующий, более короткий синтаксис:

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

Номер поставщика Наименование поставщика X

(Статус поставщика)

1 Иванов 4
2 Петров 1
3 Сидоров 2

Таблица 13 Отношение A (Поставщики)

Номер детали Наименование детали Y

(Статус детали)

1 Болт 3
2 Гайка 2
3 Винт 1

Таблица 14 Отношение B (Детали)

Ответ на вопрос какие поставщики имеют право поставлять какие детали? дает -соединение :

Номер поставщика Наименование поставщика X

(Статус поставщика)

Номер детали Наименование детали Y

(Статус детали)

1 Иванов 4 1 Болт 3
1 Иванов 4 2 Гайка 2
1 Иванов 4 3 Винт 1
2 Петров 1 3 Винт 1
3 Сидоров 2 2 Гайка 2
3 Сидоров 2 3 Винт 1

Таблица 15 Отношение Какие поставщики поставляют какие детали

Экви-соединение

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

Синтаксис экви-соединения:

Пример 9. Пусть имеются отношения ,  и , хранящие информацию о поставщиках, деталях и поставках соответственно (для удобства введем краткие наименования атрибутов):

Номер поставщика

PNUM

Наименование поставщика

PNAME

1 Иванов
2 Петров
3 Сидоров

Таблица 16 Отношение P (Поставщики)

Номер детали

DNUM

Наименование детали

DNAME

1 Болт
2 Гайка
3 Винт

Таблица 17 Отношение D (Детали)

Номер поставщика

PNUM

Номер детали

DNUM

Поставляемое количество

VOLUME

1 1 100
1 2 200
1 3 300
2 1 150
2 2 250
3 1 1000

Таблица 18 Отношение PD (Поставки)

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

Обычно, такой сложной формой записи не пользуются. Но как бы то ни было, в результате имеем отношение:

Номер поставщика

PNUM1

Наименование поставщика

PNAME

Номер поставщика

PNUM2

Номер детали

DNUM

Поставляемое количество

VOLUME

1 Иванов 1 1 100
1 Иванов 1 2 200
1 Иванов 1 3 300
2 Петров 2 1 150
2 Петров 2 2 250
3 Сидоров 3 1 1000

Таблица 19 Отношение Какие детали поставляются какими поставщиками

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

Естественное соединение

Определение 10. Пусть даны отношения  и , имеющие одинаковые атрибуты  (т.е. атрибуты с одинаковыми именами и определенные на одинаковых доменах).

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

Естественное соединение настолько важно, что для него используют специальный синтаксис:

Замечание. В синтаксисе естественного соединения не указываются, по каким атрибутам производится соединение. Естественное соединение производится по всем одинаковым атрибутам.

Замечание. Естественное соединение эквивалентно следующей последовательности реляционных операций:

  1. Переименовать одинаковые атрибуты в отношениях
  2. Выполнить декартово произведение отношений
  3. Выполнить выборку по совпадающим значениям атрибутов, имевших одинаковые имена
  4. Выполнить проекцию, удалив повторяющиеся атрибуты
  5. Переименовать атрибуты, вернув им первоначальные имена

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


Друзья! Приглашаем вас к обсуждению. Если у вас есть своё мнение, напишите нам в комментарии.

Поделиться

Дисциплины