Декартовы Произведения

  • Декартово произведение формируется когда:

    • Условие соединения опускается

    • Условие соединения недопустимо

    • Все строки в первой таблице соединяются со всеми строками во второй таблице

Чтобы избежать Декартова произведения, всегда включайте допустимое условие соединения в предложении WHERE.

Когда условие соединения недопустимо или вообще пропущено, результатом является Декартово произведение, в котором на экран выводятся все комбинации строк. Другими словами все строки в первой таблице соединяются со всеми строками во второй таблице.

Декартово произведение обычно генерирует большое количество строк и результат редко бывает полезен.

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

Однако, Декартовы произведения полезны для некоторых тестов, когда Вы должны сгенерировать большое количество строк, чтобы смоделировать подходящий объем данных.

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

Декартово произведение генерируется, когда условие соединения пропускается.

Декартовы Произведения

Пример на рисунке выводит на экран фамилию сотрудника и имя отдела из таблиц EMPLOYEES и DEPARTMENTS, соответственно. Поскольку никакое условие соединения не было определено, все строки (20 строк) из таблицы EMPLOYEES соединяются со всеми строками (8 строк) в таблице DEPARTMENTS, таким образом генерируя 160 строк в выводе.

    SELECT last_name, department_name dept_name
FROM employees, departments;

Далее: Структуры Сервера базы данных Oracle

Смотрите также
Комментарии
Написать

(обязательно)

(обязательно)

Это не спам (обязательно)