
- •Первая нормальная форма.
- •Основной пример. Отношение (Сотрудники-Отделы-Проекты)
- •Функциональные зависимости отношений.
- •Вторая нормальная форма.
- •Анализ декомпозированных отношений
- •Третья нормальная форма.
- •Алгоритм приведения к 3нф.
- •Сравнение нормализованной и ненормализованной модели.
- •Корректность процедуры нормализации - декомпозиция без потерь.
- •Теорема Хеза.
- •Четвертая нормальная форма.
- •Многозначные зависимости.
- •Теорема Фейджина.
- •Пятая нормальная форма.
- •Зависимости соединения.
- •Приведение от 3нф к 5нф.
- •Информационная система. Состав и свойства.
- •Функциональные части ис. Обеспечивающие части ис.
- •Средства структурного анализа и их взаимоотношения.
- •Диаграммы потоков данных.
- •Основные компоненты диаграммы потоков данных.
- •Контекстная диаграмма dfd и детализация процессов.
- •Процесс построения модели dfd
- •Триггеры и ограничения. События, условия и действия.
- •Объявление и открытие курсора.
- •Оператор fetch.
- •Предметная область и ее модель.
- •Физическое проектирование бд.
- •Процедурные и декларативные языки манипулирования данными.
- •Потребительские свойства ис.
- •Характерные особенности современных крупных проектов ис.
- •Частные принципы создания ис.
- •Организационно-технологические принципы создания ис.
- •Аспекты описания ис.
- •Стадии проектирования ис.
- •Предпроектная стадия проектирования ис.
- •Этап проектирования ис.
- •Этап внедрения ис.
- •Анализ информационных потребностей ис.
- •Жизненный цикл программного обеспечения ис.
- •Модели жизненного цикла по ис.
- •Каскадная модель жизненного цикла по ис.
- •Спиральная модель жизненного цикла по ис.
- •Итерационная модель жизненного цикла по ис.
- •Этап определения стратегии.
- •Принципы структурного анализа.
- •Словарь данных dfd.
- •Спецификации управления.Диаграммы переходов состояний (std).
- •Из каких объектов состоит std.
- •Основные понятия er-диаграмм: сущности, экземпляры, атрибуты, связи.
- •Типы и модальности связей.
- •Более сложные элементы er-модели.
- •Подтипы и супертипы.
- •Получение реляционной схемы из er-диаграммы.
- •Пример разработки простой er-модели.
- •Проектирование баз данных.
- •Концептуальное и логическое проектирование бд.
- •Денормализация для оптимизации
- •Физическое проектирование бд. Типы данных.
- •Физическое проектирование бд. Индексы, кластеры.
- •Физическое проектирование бд. Временные данные.
- •Физическое проектирование бд. Хранение объектов данных.
- •Оптимизация запросов, основные понятия.
- •Синтаксическая оптимизация
- •Оптимизация, основанная на правилах
- •Оптимизация, основанная на вычислении стоимости
- •Последовательность шагов оптимизации запросов
- •Физические операции манипулирования данными.
- •Анализ запросов с целью повышения скорости их выполнения
- •Использование базовых переменных, понятие курсора
- •Базовая переменная sqlstate.
- •Операции встроенного sql, не использующие курсоров.
- •Операции, использующие курсоры.
- •Операторы позиционного удаления и модификации данных.
- •1.Оператор позиционного удаления
- •2.Оператор позиционной модификации
- •Понятие, назначение и структура хранимых процедур.
- •Использование хранимых процедур.
- •Операторы окончания транзакции.
- •Встроенный sql в vba.
- •Уровни моделирования выделяемые при разработке базы данных.
- •Принципы проектирование реляционных баз данных
- •Критерии оценки качества логической модели данных. Адекватность базы данных предметной области
- •Назначение нормализации отношений.
- •Приведение к 5нф.
- •Этапы разработки проекта: стратегия и анализ.
- •Этапы проектирования.Стратегия.
- •Этап анализа.
- •Основные методологии структурного анализа.
- •Сильные и слабые сущности.
- •Некоторые принципы проверки качества и полноты информационной модели.
- •Методология idef1х.
- •Идентифицирующие и неидентифицирующие связи.
- •Мощность связи.
Оптимизация запросов, основные понятия.
Компонента SQL СУБД, которая определяет, как осуществлять навигацию по физическим структурам данных для доступа к требуемым данным, называется оптимизатором запросов (query optimizer).
Навигационная логика (вариант алгоритма) для доступа к требуемым данным называется путем или методом доступа (access path).
Последовательность выполняемых оптимизатором действий, которые обеспечивают выбранные пути доступа, называется планом выполнения (execution plan).
Процесс, используемый оптимизатором запросов для определения пути доступа, называется оптимизацией запросов (query optimization).
Во время процесса оптимизации запросов определяются пути доступа для всех типов команд SQL DML. Однако команда SQL SELECT представляет наибольшую сложность в решении задачи выбора пути доступа. Поэтому этот процесс обычно называют оптимизацией запроса, а не оптимизацией путей доступа к данным.
Следует отметить, что термин оптимизация запросов является не совсем точным в том смысле, что нет гарантии, что в процессе оптимизации запроса будет действительно получен оптимальный путь доступа.
Оптимизация запросов может быть определена как сумма всех технических приемов, которые применяются для повышения эффективности обработки запросов.
Синтаксическая оптимизация
Первый успех в оптимизации запросов состоял в нахождении способа переформулирования запроса таким образом, чтобы новое представление запроса обеспечивало тот же результат, но было более эффективно для обработки СУБД
SELECT VENDOR_CODE, PRODUCT_СОDЕ, РRОDUСТ_DESC FRОМ VENDOR, РRОDUСТ
WHERE VENDOR. VENDOR _СОDЕ = РRОDUСТ. VENDOR _СООЕ АND VENDOR. VENDOR _СОDЕ = "100";
Наиболее очевидный путь обработки этого запроса состоит в следующем:
Формируем декартово произведение таблиц PRODUCT и VENDOR.
Ограничиваемся в результирующей таблице строками, которые удовлетворяют условию поиска в предложении WHERE .
Выполняем проекцию результирующей таблицы на список колонок, указанный в предложении SELECT.
Оценим стоимость процесса обработки этого запроса в терминах операций ввода/вывода. Пусть для определенности таблица VENDOR содержит 50 строк, а таблица PRODUCT — 1000 строк. Тогда формирование декартова произведения потребует 50050 операций чтения и операций записи (в результирующую таблицу). Для ограничения результирующей таблицы потребуется более 50000 операций чтения и, если 20 строк удовлетворяют условиям поиска, то 20 операций записи. Выполнения операции проекции вызовет еще 20 операций чтения и 20 операций записи. Таким образом, обработка этого запроса обойдется системе в 100090 операций чтения и записи. Основная идея синтаксической оптимизации лежит в использовании эквивалентных алгебраических преобразований. SQL является алгебраическим языком манипулирования множествами (представленными таблицами). Каждый оператор SELECT эквивалентен некоторой формуле этого языка. Существует набор алгебраических правил для тождественных преобразований формул над множествами. Для данного примера запроса можно использовать следующую эквивалентность:(А JOIN В) WHERE restriction оn А<=>(А WHERE restriction оn А) JOIN В.
Это означает, что ограничение по условию поиска может быть выполнено как можно раньше для того, чтобы ограничить число строк, которые могут быть обработаны позже. Применяя это правило к запросу, приведенному выше, получаем следующий процесс обработки запроса:
Ограничение по условию поиска во второй таблице (VENDOR _СОDЕ ="100") приведет к 1000 операций чтения и 20 операциям записи.Выполнение соединения полученной на 1-м шаге результирующей таблицы с таблицей VENDOR потребует 20 операций чтения результирующей таблицы, 100 операций чтения из таблицы VENDOR и 20 операций записи в новую результирующую таблицу.
Обработка запроса в этом случае потребует 1120 операций чтения и 40 операций записи для получения того же самого результата, что и в первом случае. Преобразование, описанное в данном примере, называется синтаксической оптимизацией (syntax optimization).