![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Информация о поставщиках, деталях и поставках содержится в трех отношения.
Отношение Поставщики (P) содержит номер поставщика, его имя, город и статус
P (P#, PNAME, CITY, STATUS)
Отношение Детали (D) содержит информацию о коде детали, наименовании, весе, цвете и месте хранения.
D (D#, DNAME, WEIGHT, COLOR, CITY)
Отношение Поставка (PD) содержит сведения о номере поставщика, коде детали и количестве.
PD (P#, D#, QTY)
Необходимо получить имена поставщиков, которые не поставляют деталь с кодом D2.
Рассмотрим пошаговое решение этого запроса:
1. Найдем коды поставщиков детали с кодом D2. Для этого из отношения PD выберем кортежи, в которых код детали равен D2. Получим отношение R1 с той же самой структурой, что и исходное отношение PD:
R1:=
Возьмем проекцию отношения R1 по атрибуту P#. Получим отношение R2 с одним атрибутом:
R2:= [P#](R1).
2.Найдем поставщиков, не выпускающих детали с кодом D2. Для этого возьмем проекцию отношения P по атрибуту P#. Получим отношение R3 с одним атрибутом:
R3:= [P#](P).
Разность отношений R3 и R2 даст номера тех поставщиков, которые не поставляют деталь с кодом D2.
R4:= R3 - R2
3. Операция естественного соединения отношений R4 и P по атрибуту P# позволяет сформировать отношение R5 с такой же структурой, что и отношение P, но кортежи этого отношения будут содержать информацию лишь о тех поставщиках, которые не поставляют деталь D2:
R5:=
Выполним проекцию отношения R5 по атрибуту PNAME. Получим искомое отношение, содержащее имена поставщиков:
R6:= [PNAME](R5).
Выразим данный запрос в виде одной формулы.
Дата публикования: 2015-09-17; Прочитано: 325 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!