Ответы на вопросы по Базам, страница 7
Описание файла
Документ из архива "Ответы на вопросы по Базам", который расположен в категории "". Всё это находится в предмете "базы данных" из 6 семестр, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "к экзамену/зачёту", в предмете "базы данных (бд)" в общих файлах.
Онлайн просмотр документа "Ответы на вопросы по Базам"
Текст 7 страницы из документа "Ответы на вопросы по Базам"
Замечание. Естественное соединение эквивалентно следующей последовательности реляционных операций:
-
Переименовать одинаковые атрибуты в отношениях
-
Выполнить декартово произведение отношений
-
Выполнить выборку по совпадающим значениям атрибутов, имевших одинаковые имена
-
Выполнить проекцию, удалив повторяющиеся атрибуты
-
Переименовать атрибуты, вернув им первоначальные имена
Замечание. Можно выполнять последовательное естественное соединение нескольких отношений. Нетрудно проверить, что естественное соединение (как, впрочем, и соединение общего вида) обладает свойством ассоциативности, т.е.
поэтому такие соединения можно записывать, опуская скобки:
Пример 10. В предыдущем примере ответ на вопрос "какие детали поставляются поставщиками", более просто записывается в виде естественного соединения трех отношений (для удобства просмотра порядок атрибутов изменен, это является допустимым по свойствам отношений):
Номер поставщика PNUM | Наименование поставщика PNAME | Номер детали DNUM | Наименование детали DNAME | Поставляемое количество VOLUME |
1 | Иванов | 1 | Болт | 100 |
1 | Иванов | 2 | Гайка | 200 |
1 | Иванов | 3 | Винт | 300 |
2 | Петров | 1 | Болт | 150 |
2 | Петров | 2 | Гайка | 250 |
3 | Сидоров | 1 | Болт | 1000 |
Таблица 20 Отношение P JOIN PD JOIN D
Деление
Определение 11. Пусть даны отношения и , причем атрибуты - общие для двух отношений. Делением отношений на называется отношение с заголовком и телом, содержащим множество кортежей , таких, что для всех кортежей в отношении найдется кортеж .
Отношение выступает в роли делимого, отношение выступает в роли делителя. Деление отношений аналогично делению чисел с остатком.
Синтаксис операции деления:
Замечание. Типичные запросы, реализуемые с помощью операции деления, обычно в своей формулировке имеют слово "все" - "какие поставщики поставляют все детали?".
Пример 11. В примере с поставщиками, деталями и поставками ответим на вопрос, "какие поставщики поставляют все детали?".
В качестве делимого возьмем проекцию , содержащую номера поставщиков и номера поставляемых ими деталей:
Номер поставщика PNUM | Номер детали DNUM |
1 | 1 |
1 | 2 |
1 | 3 |
2 | 1 |
2 | 2 |
3 | 1 |
Таблица 21 Проекция X=PD[PNUM,DNUM]
В качестве делителя возьмем проекцию , содержащую список номеров всех деталей (не обязательно поставляемых кем-либо):
Номер детали DNUM |
1 |
2 |
3 |
Таблица 22 Проекция Y=D[DNUM]
Деление дает список номеров поставщиков, поставляющих все детали:
Номер поставщика PNUM |
1 |
Таблица 23 Отношение X DEVIDEBY Y
Оказалось, что только поставщик с номером 1 поставляет все детали.