- •Введение.
- •Информация и данные.
- •Выч. Система
- •Админ-р
- •Жизненный цикл БнД.
- •Классификация БнД.
- •Преимущества организации субд.
- •Недостатки организации бд.
- •Проектирование бд. (общий подход)
- •Независимость данных (2 уровня).
- •Концептуальное проектирование. Модели данных. Модель сущность-связь.
- •Инфологические мд.
- •Модель результ.
- •Объединение локальных моделей в глобальные.
- •Логическое проектирование.
- •Сетевая модель данных.
- •Правила построения сетевой модели.
- •Реляционная модель данных.
- •Плоский файл.
- •Хронологическая модель данных.
- •Операции над данными.
- •Операции реляционной алгебры.
- •Операторы обновления:
- •Реляционные сравнения:
- •Реляционное исчисление с переменными-кортежами.
- •Реляционное исчисление с переменными на доменах.
- •Реляционные ямд.
- •Язык запросов в sql.
- •Защита баз данных.
- •Функциональные зависимости.
- •Покрытие множества зависимостей.
- •Вычисление замыканий.
- •Декомпозиция схем отношений.
- •Нормализация отношений.
- •Алгоритм1: пополняющий декомпозицию схем отношений, которая обладает свойством соединения без потерь и приводит к отношениям находящимся в нфбк.
- •Алгоритм 2: приведения отношения к 3нф, использующей декомпозицию, сохраняющую функциональные зависимости.
- •Многозначные зависимости.
- •Правила вывода (аксиомы) для многозначных зависимостей.
- •Аксиомы, связывающие функциональные зависимости и многозначные зависимости.
- •Правила вывода:
- •Алгоритм вычисления базиса:
- •Секретность данных.
- •Физическая организация бд.
- •Методы доступа к данным.
- •Оптимизация запросов.
- •Общие стратегии оптимизации:
- •Законы оптимизации.
- •Алгоритм оптимизации выражений ра.
- •Точная оптимизация для подмножества реляционных запросов.
- •Минимизация конъюнктивных запросов.
- •Правила построения табло запросов:
- •Метод нахождения min-го запроса для простого тз.
- •Параллельные операции над бд.
- •Основные понятия.
- •Бесконечные ожидания и тупики.
- •Протоколы и расписание.
- •Простая модель транзакции.
- •Метод, позволяющий определить сериализуемость расписания.
- •Модель с блокировками для чтения и записи.
- •Параллельный доступ к иерархически структурированным элементам.
- •Алгоритм проверки сериализуемости расписания.
- •Защита от отказов.
- •Меры для восстановления бд.
- •Модификация запросов в распределенных бд.
- •Фрагменты отношений.
Оптимизация запросов.
Ответ на запрос, написанный на языке МД (SQL, QBR и т.д.), иногда требует достаточно много времени. Время исполнения запросов может быть в достаточной степени сокращено, если процессор ЯЗ перефразирует запрос перед его исполнением. Такой процесс называется оптимизацией, этот перефразированный запрос не обязательно является оптимальным из всех возможных способов его реализации.
Оптимизация запросов равносильна оптимизации выражений РА и РИ. Особенно важное значение имеет исследование выражений, которое включает соединение или декартово произведение с последующими операциями селекции и проекции.
Непосредственное выполнение операций требует достаточно много времени.
Пример: R(A B), S(C D). Выполнить
(n) (m)
операций.
– количество операций уменьшается сортировкой.
В:
С:
Декартово произведение RS R(AB) S(CD)
Надо организовать просмотр файла ФR, реализовать отношение R, и для каждой записи ZR, соответствующей кортежу t, надо просматривать весь файл ФS. При этом строится конкатенация записи ZR с каждой записью ZS.
Соединение .
Общие стратегии оптимизации:
Выполнить операции селекции по возможности раньше.
Целесообразно предварительно, перед выполнением операции соединения (или декартова произведения с последующей селекцией), сделать сортировку или индексирование файла.
Если сделать индексы по В и С, то время вычисления RS будет линейно зависимо от обоих отношений. При сортировке R по В и S по С, надо просматривать каждый файл один раз для поиска записей, удовлетворяющих условию B<C.
В: 5, 10, 15 fix B и С: 1, 3, 4, 15, 20
двигаться по С
Искать общие подвыражения в выражении. Если результат общего подвыражения представляет собой небольшие отношения, который можно прочитать из внешней памяти за значительно меньшее время, чем требуется для его вычисления, целесообразно один раз вычислить это подвыражение.
Пример:
Собирать в каскады проекции и селекции. Последовательность таких операций, каждая из которых требует только одного операнда, может выполняться одновременно, за один просмотр файла.
Комбинировать операции проекции с последующими или предшествующими двуместными операциями.
Нет необходимости устраивать просмотр файла только для исключения определенных полей.
Комбинировать некоторые селекции с предшествующим декартовым произведением, и выполнять вместо них соединение.
Рассмотренные операции оптимизации предусматривают преобразование выражений РА. В связи с этим рассмотрим ряд алгебраических законов, которые применяются к операторам РА.
Будем предполагать, что процессор ЯЗ начинает обработку с построения дерева разбора для выражения РА.
Пример:
Сам язык запросов произвольный, если запрос написан в виде выражения РИ, то он переводится в выражение РА.
Напомним, что выражения РА, операндами которых являются переменные отношения есть отображения кортежей отношения на единственное отношение, которое получается после подстановки каждого кортежа вместо отношений и вычисления выражения.
Два выражения и называются эквивалентными, что записывается , если они представляют собой одни и те же отображения.