Видалення кортежів-дублікатів

Мова SQL. Операції над відношеннями

У SQL відношення розглядаються не як множини, а як мультімножини, тому будь-який кортеж може бути включений у відношення кілька разів. Наприклад, однакові кортежі можуть утворитись у результаті проекції, коли залишається частина атрибутів.

Якщо дублювання кортежів треба уникнути, після слова SELECT вказується службове слово DISTINCT. Ця операція відповідає оператору реляційної алгебри.

Приклад 5.12. Повернімося до прикладу 5.10 і знову розглянемо, з якими продюсерами співпрацював актор ‘Harrison Ford’. Без підзапитів ця задача вирішується немовби простіше:

Рис.5.20. Запит без підзапитів для рішення задачі прикладу 5.10.

Для видалення кортежів-дублікатів перший рядок має бути таким:

SELECT DISTINCT name

Операція видалення дублювань досить дорого коштує, оскільки відношення підлягає попередньому сортуванню для визначення, чи треба видаляти кортеж. Зазвичай сортування відношення відбувається у багато разів довше, ніж виконання запиту без сортування. В той же час рішення задачі прикладу 5.2 з використанням підзапитів не призводить до дублювання.


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



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