Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Новое на сайте
Топовые новости
Новое

Количество объединений

Количество объединенийГлавное помнить, что в запросе к N таблицам должно присутствовать как минимум (N-1) объединений. Так, в запросе к 3-м таблицам должно быть 2 объединения, в запросе к 4-м таблицам — 3 и т. д. Фраза “как минимум” упомянута не случайно: в запросах на основе отношений неравенства или задействующих композитные первичные и внешние ключи их может быть и меньше, чем (N-1). Однако всегда следует учитывать, что если в многотабличном запросе присутствует менее (N-1) объединения, его результатом станет декартово произведение множеств. Наиболее часто перекрестные объединения встречаются в запросах ко множеству Назаметку таблиц, и в этом кроется самая большая опасность. В данной ситуации даже не обязательно использовать предложение where — главное не устанавливать между

Двумя таблицами более десятка отношений. Также не забывайте, что чем больше таблиц объединяется в запросе, тем большим будет результирующий программный код. К примеру, декартово произведение пяти таблиц, в каждой из которых содержится по 100 строк, приведет к результирующему набору данных, содержащих 10 млрд строк.

Как уже отмечалось, запрос, содержащий объединения таблиц, может быть достаточно сложным. Для получения результирующего набора данных таблицы могут объединяться с другими таблицами, представлениями и прочими объектами СУБД, из которых возможно извлечение строк. Еще один тип объектов, который может участвовать в объединениях, — это Внедренные представления (вложенные запросы, содержащиеся в предложении FROM).

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

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

Следующий запрос возвращает телефонные номера торговых представителей, которые имеют ассоциированных с ними клиентов, выполнивших не менее пяти заказов. В его стандартном объединении используются результаты внедренного представления, подсчитывающего количество заказов, размещенных клиентами, и ограничивающего список идентификаторами только тех клиентов, число заказов которых превышает пять. Эти результаты затем объединяются с таблицей SALESMAN для извлечения имен соответствующих торговых представителей. Полученные результаты, в свою очередь, объединяются с таблицей PHONE для извлечения номеров телефонов отобранных торговых представителей.