Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных / Лекции по УД.doc
Скачиваний:
95
Добавлен:
26.04.2015
Размер:
766.46 Кб
Скачать

10.3. Вложенные запросы

Внутри оператора SELECT может осуществляться ещё (не один) запрос:

Пусть требуется узнать поставщиков помидоров, являющихся поставляемым продуктом с каким-то номером. Для этого можно дать запрос:

SELECT Название, Статус

FROM Поставщики

WHERE ПС IN

( SELECT ПС

FROM Поставки

WHERE ПР IN

( SELECT ПР

FROM Продукты

WHERE Продукт = 'Помидоры' ));

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

Тот же результат можно получить с помощью соединения:

SELECT Название, Статус

FROM Поставщики, Поставки, Продукты

WHERE Поставщики.ПС = Поставки.ПС

AND Поставки.ПР = Продукты.ПР

AND Продукт = 'Помидоры';

Однако при выполнении этого компактного запроса система должна одновременно обрабатывать данные из трёхтаблиц, тогда как в предыдущем примере эти таблицы обрабатываются поочередно. Естественно, что для их реализации требуются различные ресурсы памяти и времени, однако этого практически невозможно ощутить при работе с ограниченным объемом данных.

Лекция 11. Модель бинарных ассоциаций.

    1. Отношение ассоциации.

    2. Бинарная ассоциация.

    3. Исключающая ассоциация.

11.1. Отношение ассоциации

Ассоциация(association) - семантическое отношение между двумя и более классами, которое специфицирует характер связи между соответствующими экземплярами этих классов.

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

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

11.2. Бинарная ассоциация

Наиболее простой случай данного отношения - бинарная ассоциация(binary association), которая служит для представления произвольного отношения между двумя классами. Она связывает в точности два различных класса и может быть ненаправленным (симметричным) или направленным отношением. Частный случай бинарнойассоциации-рефлексивная ассоциация, которая связывает класс с самим собой. Существует 2 типа бинарных ассоциаций:

- Ненаправленная бинарная ассоциация

- Направленная бинарная ассоциация

11.2.1. Ненаправленная бинарная ассоциация

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

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

Рис.11.1.  Графическое изображение ненаправленной бинарной ассоциации между классами.