- Алгоритм соединения (СУБД)
-
Алгоритм соединения (СУБД)
Алгоритм соединения (СУБД)
Целью алгоритма соединения является реализация в конкретной СУБД операции соединения реляционной алгебры.
Исходными данными для алгоритма являются два отношения (таблицы) и описание условия соединения. Результатом операции является отношение (таблица), получаемая как декартово произведение исходных отношений, ограниченная условием соединения.
Пример:
Имеется 2 таблицы: Служащий и Отдел. Задано условие соединения: «Служащий.[ИД отдела]=Отдел.[ИД отдела]»
таблица «Служащий» Фамилия ИД Отдела Иванов 34 Петров 36 Сидоров 34 Сергеев 34 таблица «Отдел» Название ИД Отдела Бухгалтерия 34 Маркетинг 36 Результатом операции соединения будет:
таблица «Результат соединения» Фамилия ИД Отдела Отдел ИД Отдела Иванов 34 Бухгалтерия 34 Петров 36 Маркетинг 36 Сидоров 34 Бухгалтерия 34 Сергеев 34 Бухгалтерия 34 В практических реализациях соединение обычно не выполняется как ограничение декартова произведения. Имеются более эффективные алгоритмы, гарантирующие получение такого же результата:
- Алгоритм соединения вложенными циклами.
- Алгоритм соединения хэшированием.
- Алгоритм соединения слиянием сортированных списков.
Понимание особенностей алгоритмов соединения важно при анализе и оптимизации планов выполнения запросов СУБД
Алгоритмы соединения имеют ценность не только в контексте СУБД, но и практически в любых ситуациях, когда необходимо комбинировать данные содержащиеся в нескольких коллекциях\списках.
См. также
Базы данных Концепции Модель данных • Реляционная (модель • алгебра • Нормальная форма • Ссылочная целостность • БД • СУБД) • Иерархическая (модель • БД) • Сетевая (модель • СУБД) • Объектно-ориентированная (БД • СУБД) • Распределённая СУБД • ACID
Ключи Первичный • Внешний • Суррогатный • Суперключ • Возможный
Объекты Триггер • Представление • Таблица • Курсор • Журнализация • Транзакция • Индекс • Хранимая процедура • Секционирование
SQL СУБД DB2 • Firebird • PostgreSQL • MS SQL Server • MySQL • Oracle • SQLite
Компоненты История
Wikimedia Foundation. 2010.