- •1. Модели данных.
- •2.Реляционная модель. 3.Отношения: определение, свойства, ключ.
- •Реляционные ключи. Начало{
- •4. Реляционные ключи (дополнительно можно взять из вопроса 2).
- •5. Реляционные языки.
- •6. Реляционная алгебра. (Унарные операции).
- •7. Реляционная алгебра. ( Бинарные операции).
- •8. Реляционное исчисление доменов.
- •9. Реляционное исчисление кортежей.
- •10. Языки баз данных.
- •11. Концепция er-модели.
- •12. Основные положения проектирования схем реляционных баз данных.
- •13. Избыточность данных и аномалии обновления.
- •14. Функциональные зависимости и нормализация отношений.
- •14. Функциональные зависимости и нормализация отношений.
- •15. Ограничения целостности и пять основных типов подобных ограничений.
- •16. Типы стратегий, которые могут применяться для обработки попыток удаления строки родительского отношения, на которую имеются ссылки в дочернем отношении.
- •17. Третья нормальная форма и нормальная форма Бойса-Кодда.
- •17. Третья нормальная форма и нормальная форма Бойса-Кодда.
- •18. Обзор процесса нормализации.
- •19. Основные этапы проектирования баз данных.
- •20. Смысл понятия "представление пользователя" и основные источники информации для него.
- •21. Методология концептуального проектирования.
- •22. Методология логического проектирования. 23. Основные задачи логического этапа проектирования базы данных.
- •24. Проверка логической модели с помощью правил нормализации и в отношении транзакций пользователей.
- •25. Определение требований поддержки целостности данных.
- •26. Общий обзор методологии физического проектирования реляционных баз данных.
- •27. Основные этапы обработки запросов.
- •28. Эксплуатация баз данных.
- •29. Администрирование баз данных.
- •30. Защита информации в базах данных.
27. Основные этапы обработки запросов.
SQL – в последних операциях, реализуются операции реляционной алгебры. Результат трансформации одного и того же запроса на SQL может иметь несколько эквивалентов на языке низкого уровня.
Цель – выбор такого варианта представления запроса, для обработки которой потребуется минимум системных ресурсов. Общее время выполнения запроса состоит из суммы времени выполнения отдельных операций. Здесь возникает проблема, связанная с большим числом отношений.
Основные методы оптимизации основываются на статических показателях накапливаемых для БД (кардинальность отношений, степень отношений, наличие индексов, их число, размер блоков и др.)
При выполнения оптимизации запросов следует раньше всего выбирать унарные операции (проекция, выборка), которые сокращают число картежей, которые затем будет участвовать в бинарных операциях.
Общая схема оптимизации запроса можно представить следующим образом.
Динамическая оптимизация выполнения при каждом вызове запроса статически предусматривает однократное выполнение.
Рассмотрим основные этапы выполнения запроса
Этап декомпозиции.
Назначение: преобразование запроса на языки высокого уровня в выражение реляционной алгебры с последней проверкой его синтаксической и семантической корректности. Т.е. на этом этапе выполняется анализ, нормализация, семантический анализ, упрощение и реструктуризация запроса.
Анализ - проведение лексического и синтаксического анализа. Уточняется присутствуют ли все определения для указанных в запросе отношений и атрибутов.
Дерево запроса называется дерево реляционной алгебры.
Стадия нормализации выполняется с целью упрощения манипулирования данными. Здесь предикаты образуются в одну из 2-ух стандартных форм.
Конъюнктивная. Это последовательность конъюнкции, связанных между собой операциями конъюнкции AND (). Каждая конъюнкция может содержать один или более терма, соединенных операторами дизъюнкции OR (). Например, (position = ‘инспектор’ salary Ю 200000) s.sno=b.bno
Дизъюнкция. Это последовательность соединений, связанных между собой операциями дизъюнкции. Каждая дизъюнкция может содержать один или 2 терма, соединенных операторами конъюнкции. Пример, (position = ‘Менеджер’ bno = BS) (salary > 200000 bno=33).
Выборка, которая строиться на основе дизъюнктивных операторов будет содержать объединения тех картежей, которые удовлетворяют любым из входящих конъюнкций.
Семантический анализ проверяется нормализованные запросы, которые сформулированы не корректно, либо содержат противоречивые требования. Хапрос считается не корректным, если его выполнение не может привести к формированию набора результирующих данных. Например, условие:
Position = ‘ Инспектор’ Position = ‘Менеджер’
Упрощение. Цель: выявление избыточной информации исключающая общие подвыражения и преобразования запроса в семантическую форму. Здесь рассматриваются вопросы существующих ограничений доступа, применяется во внимание требования поддержки целостности данных. И если пользователь не имеет необходимых прав доступа, то выполнение запроса отменяется.
Процедура упрощения использует правила эквивалентности реляционной алгебры.
Р р = р Р false=false P (-p)=false P true =p P p=p P (-p)=true P false =p P true=true
Реструктуризация запроса запрос преобразуется в такую форму, которая позволяет обеспечить наиболее эффективное его выполение.