- •Содержание
- •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. Закон деления
8.7.5. Группирование и агрегирование
Предположим, что необходимо оценить размер отношения, возвращаемого при вычислении оператора группирования (grouping) γL(R). Если статистическая характеристика вида V(R, (g1, g2,…, gk)), где gi, i = 1,2,..., k, — группирующие атрибуты из списка L, доступна, в качестве оценки следует использовать именно это значение. Однако в реальной ситуации уповать на такую возможность довольно трудно, поэтому необходимо изыскивать альтернативный способ прогнозирования. Количество кортежей в γL(R)совпадает с числом групп k. В одном "крайнем" случае итоговое отношение способно содержать единственную группу, а в другом — по группе на каждый кортеж R. Как и в случае с оператором удаления кортежей-дубликатов S, в качестве верхней границы количества групп правомочно использовать произведение значений V(R,gi), отвечающих группирующим атрибутам из списка L, а искомую оценку вычислять как минимум из T(R) /2 и произведения всех V(R, gi).
8.8. Свод формул для сравнительного расчета количества записей результата выполнения операций реляционной алгебры
1.Выборка.
,
где
, (1)
N-количество отношений в конъюнкции.
Для
A=a. ki=V(r, A) ,
A > a, ki=3,
A=B, ki = max(V(r,A), V(r,B)),
A ≠ a, ki = V(r,A) / (V(r,A)+1),
A ≠ B, ki = max(V(r, A),V(r,B)) / (V(r,A)+1),
,
,
.
kj считается по формуле (1).
2. Проекция.
T(πx(r))=T(r).
3. Объединение.
.
4. Пересечение.
.
5. Разность.
.
6. Декартово произведение.
.
7. Естественное соединение.
,
где N – количество одноименных атрибутов в естественном соединении,
l – одноименные атрибуты.
8. Тетта-соединение.
,
N – количество отношений в формуле D,
ki берется из формулы (1).
9. Удаление дубликатов.
,
где К – количество атрибутов в r.
10. Агрегирование по атрибутам из списка L.
,
где L – список индексов атрибутов, по которым осуществляется группировка.
11.
,
S(A) – отношение из одного атрибута А.
8.9. Тождественные преобразования для операций реляционной алгебры
1) .
При сравнении двух запросов количество записей в результирующем исходном отношении не учитывается. Результатом является сумма промежуточных отношений.
Рис. 8.5 – Дерево запроса
T(g1)+T(g2)>0.
2) .
Рис. 8.6 – Дерево запроса
3) .
Рис. 8.7 – Дерево запроса
Рис. 8.8 – Дерево запроса
T(g1)=T(r s)=max(T(r), T(s))+ min(T(r),T(s))=T(r)+ T(s) или T(r)+T(s),
,
,
а) T(r)+ T(s)> .
б) .
4) .
Рис. 8.9 – Дерево запроса
Рис. 8.10 – Дерево запроса
T(g1)=T(r s)= min(T(r),T(s))= T(r) или T(s).
.
5) .
6) .
7) .
8) .
8.10. Алгебраические законы и планы запросов
Обсуждаемые ниже правила преобразования применяются в процессе выполнения стадии перезаписи запроса, результатом которой является логический план запроса. Затем оптимизатор запросов, принимая серию решений, касающихся особенностей реализации операторов, превращает логический план запроса в физический план. Альтернативный, хотя и менее употребительный на практике, подход состоит в том, что на стадии перезаписи запроса генерируется сразу несколько примерно равнозначных по качеству логических планов, последние преобразуются в физические планы и только затем из ряда физических планов выбирается один наилучший.