Декартово произведение

Это операция, при выполнении которой каждая строка одной таблицы соединяется (склеивается) с каждой строкой другой таблицы. Декартово произведение таблиц выполняется в том случае, если во фразе FROM присутствует список из нескольких таблиц, но не задается ни операция соединения JOIN, ни условие для соединения таблиц во фразе WHERE. Обычно таблицы, которые соединяются посредством декартова произведения, не имеют общих столбцов.

Так, запрос вида:

select … from таблица1, таблица2

возвратит количество строк, равное произведению количества строк первой таблицы на количество строк второй таблицы, поскольку склеит каждую строку таблицы1 с каждой строкой таблицы2. Если не выполнять операцию отбора столбцов, в результат войдут все столбцы таблицы1 и таблицы2, т.е. количество столбцов равно сумме количеств столбцов таблицы1 и таблицы2. В общем, размеры таблицы-результата оказываются весьма внушительными.

На практике декартово произведение таблиц используется крайне редко. Например, для нашей демонстрационной базы данных выполнять соединение всех студентов со всеми предметами (т.е. выполнять декартово произведение таблиц students и subjects) разумно только в том случае, если все учатся по единому плану и сдают экзамены по всем предметам, занесенным в таблицу subjects. Соединять всех студентов или все предметы со всеми оценками – вообще полная бессмыслица.

Иногда в базе данных встречаются таблицы, которые содержат всего одну строку для хранения каких-либо констант (название вуза, минимальный размер оплаты труда и т.д.). Такие таблицы можно подключать к любому запросу, используя операцию декартова произведения.

На практике декартовы произведения иногда возникают из-за ошибки в записи текста запроса. Основным способом соединения таблиц является операция внутреннего или естественного соединения.








Дата добавления: 2015-08-26; просмотров: 1153;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.