Многотабличные запросы на выборку данных

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

±Например, при объединении двух нормализованных связанных одно-много- значными отношениями таблиц, для которых обеспечивается связная целостность, результирующая запись образуется на основе записи подчиненной таблицы, в которую добавляются поля из связанной записи главной таблицы. Подобное объединение формирует ненормализованную таблицу, в которой число записей равно числу записей в подчиненной таблице. При этом данные главной таблицы дублируются в различных записях результирующей таблицы.

При конструировании многотабличного запроса важнейшим условием является правильное представление о том, как идет объединение записей таблиц при формировании результата.

В Access имеется возможность задать способ объединения записей двух связанных таблиц как при создании общей схемы базы данных, так и в схеме данных запроса. Для любой пары связанных таблиц может быть выбран один из трех способов объединения записей:

±способ 1 — объединение только тех записей, в которых связанные поля обеих таблиц совпадают (выбирается по умолчанию);

Запросы 171

±способ 2 — объединение тех записей, в которых связанные поля обеих таблиц совпадают, а также объединение всех записей из первой таблицы, для которых нет связанных во второй, с пустой записью второй таблицы;

±способ 3 — объединение тех записей, в которых связанные поля обеих таблиц совпадают, а также объединение всех записей из второй таблицы, для которых нет связанных в первой, с пустой записью первой таблицы.

При установлении в схеме данных базы связи между таблицами по умолчанию выбран первый способ объединения. При обработке таблиц используется этот способ объединения, если он специально не переопределен.

ЗАМЕЧАНИЕ

Если между таблицами в запросе не установлена связь, то для Access остается неизвестным, какие записи связаны с какими, и в запросе формируются все комбинации записей таблиц, т. е. объединяются все со всеми. Например, если одна таблица содер-

жит 10 записей, а другая 4, то в таблице запроса будет 40 записей (10 4). Такое объединение называется "полное объединение", или "декартово произведение".


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: