Общая операция соединения
Соединение
Проекция
Проекцией отношения A по атрибутам X, Y,…Z, где каждый из атрибутов принадлежит отношению A, называется отношение с заголовком (X, Y,…Z) и телом, содержащим множество кортежей вида (x, y,…z), таких, для которых в отношении A найдутся кортежи со значением атрибута X равным x, значением атрибута Y равным y, …, значением атрибута Z равным z. Синтаксис операции проекции: A[X, Y,…, Z]. Операция проекции дает "вертикальный срез" отношения, в котором удалены все возникшие при таком срезе дубликаты кортежей.
Пример. Пусть дано отношение с информацией о поставщиках, включающих наименование и месторасположение:
Номер поставщика | Наименование поставщика | Город поставщика |
Иванов | Уфа | |
Петров | Москва | |
Сидоров | Москва | |
Сидоров | Челябинск |
Таблица 11 Отношение A (Поставщики)
Проекция будет иметь вид:
Город поставщика |
Уфа |
Москва |
Челябинск |
Таблица 12 Отношение A[Город поставщика]
Соединением отношений A и B по условию называется отношение (A TIMES B) WYERE c. c представляет собой логическое выражение, в которое могут входить атрибуты отношений A и B и (или) скалярные выражения. Таким образом, операция соединения есть результат последовательного применения операций декартового произведения и выборки. Если в отношениях A и B имеются атрибуты с одинаковыми наименованиями, то перед выполнением соединения такие атрибуты необходимо переименовать.
|
|
Пусть отношение A содержит атрибут X, отношение B содержит атрибут Y, а θ - один из операторов сравнения (<, >, >=, <= и т.д.). Тогда θ-соединением отношения A по атрибуту X с отношением B по атрибуту Y называют отношение (A TIMES B) WHERE XθY или A[XθY]B. Это частный случай операции общего соединения.
Пример. Рассмотрим некоторую компанию, в которой хранятся данные о поставщиках и поставляемых деталях. Пусть поставщикам и деталям присвоен некий статус. Пусть бизнес компании организован таким образом, что поставщики имеют право поставлять только те детали, статус которых не выше статуса поставщика (смысл этого может быть в том, что хороший поставщик с высоким статусом может поставлять больше разновидностей деталей, а плохой поставщик с низким статусом может поставлять только ограниченный список деталей, важность которых (статус детали) не очень высока).
Номер поставщика | Наименование поставщика | X (Статус поставщика) |
Иванов | ||
Петров | ||
Сидоров |
Таблица 13 Отношение A (Поставщики)
Номер детали | Наименование детали | Y(Статус детали) |
Болт | ||
Гайка | ||
Винт |
Таблица 14 Отношение B (Детали)
|
|
Ответ на вопрос "какие поставщики имеют право поставлять какие детали?" дает -соединение:
Номер поставщика | Наименованиепоставщика | X (Статус поставщика) | Номер детали | Наименование детали | Y (Статус детали) |
Иванов | Болт | ||||
Иванов | Гайка | ||||
Иванов | Винт | ||||
Петров | Винт | ||||
Сидоров | Гайка | ||||
Сидоров | Винт |
Таблица 15 Отношение "Какие поставщики поставляют какие детали"