Ответы на вопросы по Базам (1084490), страница 6
Текст из файла (страница 6)
Проекция будет иметь вид:
Город поставщика |
Уфа |
Москва |
Челябинск |
Таблица 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. Пусть даны отношения и
, имеющие одинаковые атрибуты
(т.е. атрибуты с одинаковыми именами и определенные на одинаковых доменах).
Тогда естественным соединением отношений и
называется отношение с заголовком
и телом, содержащим множество кортежей
, таких, что
и
.
Естественное соединение настолько важно, что для него используют специальный синтаксис:
Замечание. В синтаксисе естественного соединения не указываются, по каким атрибутам производится соединение. Естественное соединение производится по всем одинаковым атрибутам.