![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Какие поставщики и по какому тарифу поставляют изделие И2?
Известное данное (номер изделия П2) находится в таблице ПОСТАВКИ, а искомые данные (имя поставщика и тариф) - в таблицах ПОСТАВЩИК и ДОСТАВКА. Поэтому для выработки ответа на запрос необходимо связать данные из трех таблиц.
Из отношения ПОСТАВКИ с помощью операции сцепления отношения с одноэлементным множеством { И2 } выделим кортежи, содержащие номера поставщиков, поставляющих изделие И2. Затем выполним сцепление полученного отношения с отношением ПОСТАВЩИК по атрибуту П#. Получим отношение, содержащее атрибут с названиями городов, из которых доставляются изделия И2. Операция сцепления полученного отношения с отношением ДОСТАВКА по атрибуту Город сформирует отношение, содержащее атрибуты с искомыми данными. Наконец, выполнив проекцию этого отношения на атрибуты Имя поставщика и Тариф, выделим искомые данные.
Запишем формулу запроса.
1 2 3 4
ПОСТАВКИ * {И2} * ПОСТАВЩИК * ДОСТАВКА [Имя поставщика, Тариф]
Определим результаты выполнения каждой операции (все операции в формуле и получаемые результаты пронумерованы).
1. 2.
П1 | И2 | П1 | И2 | Восход | Тула | |||
П2 | И2 | П2 | И2 | Заря | Самара |
3. 4.
П1 | И2 | Восход | Тула | Восход | ||||
П2 | И2 | Заря | Самара | Заря |
Можно заметить, что в результате последовательного выполнения нескольких операций сцепления арность отношений растет, т.е. в таблицах увеличивается количество столбцов. Рост объемов промежуточных результатов при выполнении такого запроса на ЭВМ может привести к увеличению времени выполнения каждой следующей операции, и общее время выполнения запроса может оказаться недопустимо большим.
Рассмотрим другой вариант формулы запроса. Для уменьшения объемов промежуточных таблиц используем дополнительные операции проекции. Это позволит на каждом этапе отсекать ненужные столбцы и оставлять лишь те столбцы, которые необходимы для выполнения последующей операции сцепления или для вывода искомых данных.
1 2 3 4 5
ПОСТАВКИ * { И2 } [ П#] * ПОСТАВЩИК [ Имя поставщика, Город ] *
5 6
*ДОСТАВКА [ Имя поставщика, Тариф ]
Результаты выполнения операций:
1. 2. 3. 4.
П1 | И2 | П1 | П1 | Восход | Тула | Восход | Тула | ||||
П2 | И2 | П2 | П2 | Заря | Самара | Заря | Самара |
5. 6.
Восход | Тула | Восход | |||
Заря | Самара | Заря |
Используя булевы операторы, можно строить формулы для более сложных запросов. С помощью теоретико-множественных операций объединения и вычитания множеств, можно записывать формулы для запросов на добавление и удаление кортежей отношений.
Дата публикования: 2014-11-18; Прочитано: 343 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!