Получить имена поставщиков, поставляющих все
Пример 14
. Получить имена поставщиков, поставляющих все детали.Решение:
Пример 14
. Естественное соединение таблиц (способ 2 - ключевые слова JOIN… USING…):
SELECT
P.PNUM,
P.PNAME,
PD.DNUM,
PD.VOLUME
FROM P JOIN PD USING PNUM;
Замечание. Ключевое слово USING позволяет явно указать, по каким из общих колонок таблиц будет производиться соединение.
Пример 14
. Ограничение на таблицы DEPART и PERSON из примера 1 является отношением базы данных, т.к. оно связывает данные, размещенные в различных таблицах.
Проверка ограничения. К моменту проверки ограничения базы данных должны быть проверены ограничения целостности отношений.
Ограничение базы данных может быть как немедленно проверяемым ограничением, так и ограничением с отложенной проверкой.
Ограничение отношения, являющееся ограничением внешнего ключа может быть как немедленно проверяемым ограничением, так и отложенным ограничением. Действительно, в простейшем случае, если кортеж
должен ссылаться на кортеж
, то проверку ограничения ссылочной целостности можно производить сразу после любой из операций вставки, обновления или удаления в любом из отношений
. В более сложном случае, предположим, что кортеж
должен ссылаться на кортеж
, а кортеж
должен в свою очередь ссылаться на кортеж
(циклическая ссылка). Очевидно, что сразу после вставки кортежа
ссылочная целостность обязательно нарушена, т.к. кортежа
. Проверку ссылочной целостности можно провести только посл
завершения транзакции, состоящей из последовательности операций:
- вставки кортежа с нулевой ссылкой на отношение
- вставки кортежа со ссылкой на кортеж ,
- исправления ссылки в кортеже .
Ограничение, приведенное в примере 1, может быть только ограничением с отложенной проверкой.