- •Содержание
- •1. Основные понятия баз данных
- •1.1. Проектирование баз данных
- •1.2. Индексы и ключи в базах данных
- •2. Функциональные зависимости
- •2.1. Понятие функциональной зависимости
- •2.2. Метод синтеза
- •2.3. Аксиомы вывода
- •2.4. Применение аксиом вывода
- •2.5. Замыкание множества атрибутов относительно множества функциональных зависимостей
- •2.6. Эквивалентность двух систем функциональных зависимостей
- •2.7 Метод синтеза
- •2.8. Классы эквивалентности функциональных зависимостей с эквивалентными левыми частями
- •2.9. Составные функциональные зависимости и кольцевые покрытия
- •3. Нормализация баз данных
- •3.1. Декомпозиция таблицы на две таблицы без потери информации и с потерей информации
- •4. Иерархия в базах данных
- •4.1. Использование иерархии в базах данных
- •4.2. Инклюзивная и эксклюзивная иерархии
- •5. Сортировка и поиск записей в базах данных
- •5.1.Многофазная сортировка
- •7. Оптимизация запросов
- •7.1. Основные операции реляционной алгебры и их обозначения
- •8. Статистические данные, используемые для минимизации запросов
- •8.1. Анализ стоимости операций
- •8.2. Оценка размеров промежуточных отношений
- •8.2.1. Оценка размера результата операции объединения
- •8.2.2. Оценка размера результата операции пересечения
- •8.2.3. Оценка размера результата оператора проекции
- •8.2.4. Оценка размера результата оператора выбора
- •8.3. Выборка с условием равенства двух атрибутов
- •8.4. Выборка при условии неравенства двух атрибутов
- •8.5. Естественное соединение отношений с несколькими общими атрибутами
- •8.6. Соединение нескольких отношений
- •8.7. Оценка размеров результатов выполнения других операторов
- •8.7.1. Объединение
- •8.7.2. Пересечение
- •8.7.3. Разность
- •8.7.4. Удаление кортежей-дубликатов
- •8.7.5. Группирование и агрегирование
- •8.8. Свод формул для сравнительного расчета количества записей результата выполнения операций реляционной алгебры
- •8.9. Тождественные преобразования для операций реляционной алгебры
- •8.10. Алгебраические законы и планы запросов
- •8.10.1. Коммутативный и ассоциативный законы
- •8.11. Законы для "множественных" и "мультимножественных" версий операторов
- •8.11.1. Законы выбора
- •8.11.2. Некоторые тривиальные законы
- •8.11.3. Законы проекции
- •8.11.4. Законы соединения и декартова произведения
- •8.11.5. Законы, касающиеся удаления кортежей-дубликатов
- •8.11.6. Законы группирования и агрегирования
- •8.11.7. Закон деления
7. Оптимизация запросов
Оптимизация запросов сводится к минимизации времени выполнения запросов. Минимум обращений к диску. Минимизация основана на законах эквивалентности алгебры отношений. Основой всех методов оптимизации является дерево операций.
7.1. Основные операции реляционной алгебры и их обозначения
Рис. 7.1 – Схема отношения
Объединение.
.
Рис. 7.2 - Пример операции объединения
Операции изображаются с помощью деревьев.
Терминальными листьями являются отношения, а в узлах записываются операции реляционной алгебры.
Рис. 7.3 - Схема операции объединения
Пересечение.
.
Рис. 7.4 - Пример операции пересечения
Рис. 7.5 - Схема операции пересечения
Разность.
.
Рис. 7.6 - Пример операции разности
Рис. 7.7 - Схема операции разности
Произведение.
.
Рис. 7.8 - Пример операции произведения
Рис. 7.9 - Схема операции произведения
Естественное соединение.
.
Рис. 7.10 - Пример операции естественного соединения
Рис. 7.11 - Схема операции естественного соединения
Тетта-соединение.
.
F
F – функция, по которой осуществляется соединение.
Рис. 7.12 - Схема операции тетта-соединения
Деление.
.
Рис. 7.13 - Пример операции деления
Рис. 7.14 - Схема операции деления
Селекция
Рис. 7.15 - Пример операции селекции
q=σF(r),
q=σ(r(ABCD)),
A>B AND C=D
Операция проекции
Рис. 7.16 - Пример операции проекции
q=πX(r).
схема, на которую осуществляется проекция.
Пример запроса в базе данных, реализованной на основании её схемы.
( 1) Рис. 7.17 - Схема базы данных
πAKFT(σF>T(((((r1 r2) r3) r5) r4))). (2)
AND D>C
AND B=C
Рис. 7.18 - Дерево запроса
К операциям, сокращающим число строк в таблице, относятся селекция, проекция не на ключевой атрибут и устранение строк-дубликатов.
8. Статистические данные, используемые для минимизации запросов
8.1. Анализ стоимости операций
Предположим, что запрос подвергнут синтаксическому разбору и преобразован в логический план. Далее с помощью определенных алгебраических правил план трансформирован в некий "предпочтительный" логический план. Остается превратить его в физический план. Обычно с этой целью рассматривается множество различных физических планов, проистекающих из окончательного логического плана, и вычисляется либо оценивается эффективность (или стоимость) каждого из них. По завершении подобного процесса, часто называемого подсчетом стоимости (cost-based enumeration), выбирается физический план, обладающий низшей оценкой стоимости; именно этот план передается исполняющей машине (execution engine) — компоненту процессора запросов, ответственному за практическое осуществление каждой из операций, предусмотренных выбранным физическим планом запроса. При подсчете «стоимости всех возможных физических планов, которые удается сконструировать на основе заданного логического плана, для каждого физического плана выбираются:
1) порядок следования и способ группирования одноименных ассоциативно-коммутативных операторов, таких как соединение (join), объединение (union) и пересечение (intersection);
2) алгоритм реализации каждого оператора логического плана — скажем, метод соединения посредством вложенных циклов против алгоритма соединения на основе хеширования;
3) дополнительные операторы — сканирования, сортировки и т.д., — необходимые для реализации физического плана, но отсутствующие в явном виде в логическом плане;
4) способ передачи значений аргументов от одного оператора к другому — например, посредством сохранения промежуточных результатов на диске либо с помощью итераторов, позволяющих пересылать данные по одному кортежу или одному буферу оперативной памяти в каждый момент времени.
Таким образом, прежде чем перейти к обсуждению тонкостей процесса подсчета стоимости физических планов, целесообразно остановиться на том, каким образом могут быть получены адекватные оценки стоимости планов. Подобные оценки основываются на параметрах (см. врезку "Еще раз о системе обозначений" выше), значения которых либо вычисляются точно, либо приобретаются в процессе сбора статистических характеристик (statistics gathering). Имея такие значения, мы получаем возможность говорить о размерах отношений, вовлеченных в те или иные операции, и осмысленно предсказывать стоимость полного физического плана.
Система обозначений
Соглашения для представления размеров отношений, служащих аргументами операций:
• B(R) — количество блоков, требуемых для хранения всех кортежей отношения R;
• T(R) — количество кортежей отношения R;
• V(R, a) — счетчик значений атрибута а отношения R, т.е. количество различных значений в пределах определенного столбца-атрибута а отношения R. В более общем случае, если (a1, а2,..., ап) — некоторый список атрибутов отношения R,тогда V(R, (a1, а2,..., ап)) — количество различных наборов значений атрибутов a1, а2,..., ап, или число кортежей в σ(πa1, а2,..., ап(R)).