- •Первая нормальная форма.
- •Основной пример. Отношение (Сотрудники-Отделы-Проекты)
- •Функциональные зависимости отношений.
- •Вторая нормальная форма.
- •Анализ декомпозированных отношений
- •Третья нормальная форма.
- •Алгоритм приведения к 3нф.
- •Сравнение нормализованной и ненормализованной модели.
- •Корректность процедуры нормализации - декомпозиция без потерь.
- •Теорема Хеза.
- •Четвертая нормальная форма.
- •Многозначные зависимости.
- •Теорема Фейджина.
- •Пятая нормальная форма.
- •Зависимости соединения.
- •Приведение от 3нф к 5нф.
- •Информационная система. Состав и свойства.
- •Функциональные части ис. Обеспечивающие части ис.
- •Средства структурного анализа и их взаимоотношения.
- •Диаграммы потоков данных.
- •Основные компоненты диаграммы потоков данных.
- •Контекстная диаграмма dfd и детализация процессов.
- •Процесс построения модели dfd
- •Триггеры и ограничения. События, условия и действия.
- •Объявление и открытие курсора.
- •Оператор fetch.
- •Предметная область и ее модель.
- •Физическое проектирование бд.
- •Процедурные и декларативные языки манипулирования данными.
- •Потребительские свойства ис.
- •Характерные особенности современных крупных проектов ис.
- •Частные принципы создания ис.
- •Организационно-технологические принципы создания ис.
- •Аспекты описания ис.
- •Стадии проектирования ис.
- •Предпроектная стадия проектирования ис.
- •Этап проектирования ис.
- •Этап внедрения ис.
- •Анализ информационных потребностей ис.
- •Жизненный цикл программного обеспечения ис.
- •Модели жизненного цикла по ис.
- •Каскадная модель жизненного цикла по ис.
- •Спиральная модель жизненного цикла по ис.
- •Итерационная модель жизненного цикла по ис.
- •Этап определения стратегии.
- •Принципы структурного анализа.
- •Словарь данных dfd.
- •Спецификации управления.Диаграммы переходов состояний (std).
- •Из каких объектов состоит std.
- •Основные понятия er-диаграмм: сущности, экземпляры, атрибуты, связи.
- •Типы и модальности связей.
- •Более сложные элементы er-модели.
- •Подтипы и супертипы.
- •Получение реляционной схемы из er-диаграммы.
- •Пример разработки простой er-модели.
- •Проектирование баз данных.
- •Концептуальное и логическое проектирование бд.
- •Денормализация для оптимизации
- •Физическое проектирование бд. Типы данных.
- •Физическое проектирование бд. Индексы, кластеры.
- •Физическое проектирование бд. Временные данные.
- •Физическое проектирование бд. Хранение объектов данных.
- •Оптимизация запросов, основные понятия.
- •Синтаксическая оптимизация
- •Оптимизация, основанная на правилах
- •Оптимизация, основанная на вычислении стоимости
- •Последовательность шагов оптимизации запросов
- •Физические операции манипулирования данными.
- •Анализ запросов с целью повышения скорости их выполнения
- •Использование базовых переменных, понятие курсора
- •Базовая переменная sqlstate.
- •Операции встроенного sql, не использующие курсоров.
- •Операции, использующие курсоры.
- •Операторы позиционного удаления и модификации данных.
- •1.Оператор позиционного удаления
- •2.Оператор позиционной модификации
- •Понятие, назначение и структура хранимых процедур.
- •Использование хранимых процедур.
- •Операторы окончания транзакции.
- •Встроенный sql в vba.
- •Уровни моделирования выделяемые при разработке базы данных.
- •Принципы проектирование реляционных баз данных
- •Критерии оценки качества логической модели данных. Адекватность базы данных предметной области
- •Назначение нормализации отношений.
- •Приведение к 5нф.
- •Этапы разработки проекта: стратегия и анализ.
- •Этапы проектирования.Стратегия.
- •Этап анализа.
- •Основные методологии структурного анализа.
- •Сильные и слабые сущности.
- •Некоторые принципы проверки качества и полноты информационной модели.
- •Методология idef1х.
- •Идентифицирующие и неидентифицирующие связи.
- •Мощность связи.
Физические операции манипулирования данными.
Сортировка и агрегация
Операции доступа к диску
Сканирование таблицы (Table scan).
Сканирование нижнего уровня индекса (Index leaf scan).
Сканирование индекса (Matching index scan).
Хэширование (Hash acces).
Операции соединения Другие физические встроенные операции(выборка и проекция )
При выполнении плана запроса, SQL сервер использует физические операции (physical operation). Эти операции отличаются от логических операций, таких как утверждения SQL, определяющих реляционные операции, которые следует выполнить. Для каждой возможной логической операции существует по крайней мере одна и, возможно, много физических операций, которые позволяют СУБД выполнять операцию эффективным способом.
Каждая физическая операция имеет один или два входа, в зависимости от природы операции. Также она имеет одну таблицу на выходе (которая, конечно, может содержать одну единственную строку или вовсе не содержать строк). Эта выходная таблица может быть результирующим множеством, которое представляет окончательный вывод для запроса, или может быть промежуточной таблицей, которая будет использована как вход для некоторой операции согласно плану запроса.
Фактор селективности
Фактор селективности является статистическим показателем, который вычисляется оптимизатором для предикатов, используемых реляционной операцией выборки. В дополнение, фактор селективности используется оптимизатором для определения того, является ли путь доступа через индекс более эффективным, чем сканирование таблицы. Следовательно, фактор селективности вычисляется только для тех предикатов, которые содержат индексируемые атрибуты.
Фактор селективности оценивает число строк, которые возвращаются при применении предикатов выборки на таблицу известного размера. Это является важным моментом, когда оптимизатор оценивает использование индекса при построении плана выполнения. Индекс будет более эффективным, чем сканирование таблицы, только если высота индекса, умноженная на фактор селективности, умноженные на число строк в таблице, будет меньше, чем число физических страниц базы данных, занятых таблицей.
Численно фактор селективности представляет вероятность, которая изменяется от 0 до 1. Умножение числа строк в таблице на фактор селективности для связанного с ним предиката будет давать ожидаемое число строк для операции выборки, при предположении, что значения колонок таблицы равномерно распределены по строкам.
Анализ запросов с целью повышения скорости их выполнения
общую процедуру настройки команды SELECT,результат выполнения которой не удовлетворяет требованиям производительности.
Шаг 1. Обновить статистику. До того как добавить индексы, необходимо убедиться, что статистика базы данных в системном каталоге является корректной.
Шаг 2. Упростить команду SELECT. Перед добавлением индексов или переписыванием плана выполнения следует попытаться упростить запрос.
Для того чтобы упростить SELECT, необходимо:
исключить ненужные предикаты и предложения;
расставить скобки в арифметических и логических выражениях;
преобразовать связанные переменные в константы
Шаг 3. Пересмотреть план запроса. Выполните запрос так, чтобы посмотреть его план. Вы должны хорошо понимать план запроса, чтобы использовать его. Несколько элементов этого плана требуют особого внимания.
Преобразование подзапроса в соединение.
Когда будут создаваться временные таблицы.
Шаг 4. Локализовать узкие места. Запрос, который выполняется медленно, может содержать много предложений и предикатов. Если это так, нужно определить, какие предложения или предикаты приводят к плохой производительности. Если удалить одно или два предложения или предиката, производительность выполнения запроса возрастает значительно.
Шаг 5. Создать индексы для одной колонки для критических параметров. Если завершены шаги 1-4 и запрос еще не удовлетворяет требованиям производительности, можно попытаться создать индексы специально для этого запроса, чтобы увеличить его производительность.
Шаг 6. Создать индексы для нескольких колонок.- Процедура идентификации колонок для создания составных индексов состоит в следующем;
Создать составной индекс. Если производительность не увеличилась, создайте другой индекс и повторите процесс.
Несколько колонок в предложении GROUP BY.
Несколько колонок в предложении ORDER BY.
Колонки соединения плюс низкая стоимость ограничений.
Колонки соединения плюс все ограничения.
Шаг 7. Удалить все индексы, которые не используются в плане запроса. Как уже указывалось выше, индексы замедляют выполнение команд DML, а их сопровождение требует времени и увеличивает стоимость обработки. Следовательно, вам следует проследить использование всех созданных индексов и удалить те, которые не используются запросом.
