
- •Первая нормальная форма.
- •Основной пример. Отношение (Сотрудники-Отделы-Проекты)
- •Функциональные зависимости отношений.
- •Вторая нормальная форма.
- •Анализ декомпозированных отношений
- •Третья нормальная форма.
- •Алгоритм приведения к 3нф.
- •Сравнение нормализованной и ненормализованной модели.
- •Корректность процедуры нормализации - декомпозиция без потерь.
- •Теорема Хеза.
- •Четвертая нормальная форма.
- •Многозначные зависимости.
- •Теорема Фейджина.
- •Пятая нормальная форма.
- •Зависимости соединения.
- •Приведение от 3нф к 5нф.
- •Информационная система. Состав и свойства.
- •Функциональные части ис. Обеспечивающие части ис.
- •Средства структурного анализа и их взаимоотношения.
- •Диаграммы потоков данных.
- •Основные компоненты диаграммы потоков данных.
- •Контекстная диаграмма dfd и детализация процессов.
- •Процесс построения модели dfd
- •Триггеры и ограничения. События, условия и действия.
- •Объявление и открытие курсора.
- •Оператор fetch.
- •Предметная область и ее модель.
- •Физическое проектирование бд.
- •Процедурные и декларативные языки манипулирования данными.
- •Потребительские свойства ис.
- •Характерные особенности современных крупных проектов ис.
- •Частные принципы создания ис.
- •Организационно-технологические принципы создания ис.
- •Аспекты описания ис.
- •Стадии проектирования ис.
- •Предпроектная стадия проектирования ис.
- •Этап проектирования ис.
- •Этап внедрения ис.
- •Анализ информационных потребностей ис.
- •Жизненный цикл программного обеспечения ис.
- •Модели жизненного цикла по ис.
- •Каскадная модель жизненного цикла по ис.
- •Спиральная модель жизненного цикла по ис.
- •Итерационная модель жизненного цикла по ис.
- •Этап определения стратегии.
- •Принципы структурного анализа.
- •Словарь данных dfd.
- •Спецификации управления.Диаграммы переходов состояний (std).
- •Из каких объектов состоит std.
- •Основные понятия er-диаграмм: сущности, экземпляры, атрибуты, связи.
- •Типы и модальности связей.
- •Более сложные элементы er-модели.
- •Подтипы и супертипы.
- •Получение реляционной схемы из er-диаграммы.
- •Пример разработки простой er-модели.
- •Проектирование баз данных.
- •Концептуальное и логическое проектирование бд.
- •Денормализация для оптимизации
- •Физическое проектирование бд. Типы данных.
- •Физическое проектирование бд. Индексы, кластеры.
- •Физическое проектирование бд. Временные данные.
- •Физическое проектирование бд. Хранение объектов данных.
- •Оптимизация запросов, основные понятия.
- •Синтаксическая оптимизация
- •Оптимизация, основанная на правилах
- •Оптимизация, основанная на вычислении стоимости
- •Последовательность шагов оптимизации запросов
- •Физические операции манипулирования данными.
- •Анализ запросов с целью повышения скорости их выполнения
- •Использование базовых переменных, понятие курсора
- •Базовая переменная sqlstate.
- •Операции встроенного sql, не использующие курсоров.
- •Операции, использующие курсоры.
- •Операторы позиционного удаления и модификации данных.
- •1.Оператор позиционного удаления
- •2.Оператор позиционной модификации
- •Понятие, назначение и структура хранимых процедур.
- •Использование хранимых процедур.
- •Операторы окончания транзакции.
- •Встроенный sql в vba.
- •Уровни моделирования выделяемые при разработке базы данных.
- •Принципы проектирование реляционных баз данных
- •Критерии оценки качества логической модели данных. Адекватность базы данных предметной области
- •Назначение нормализации отношений.
- •Приведение к 5нф.
- •Этапы разработки проекта: стратегия и анализ.
- •Этапы проектирования.Стратегия.
- •Этап анализа.
- •Основные методологии структурного анализа.
- •Сильные и слабые сущности.
- •Некоторые принципы проверки качества и полноты информационной модели.
- •Методология idef1х.
- •Идентифицирующие и неидентифицирующие связи.
- •Мощность связи.
Триггеры и ограничения. События, условия и действия.
Триггеры, иногда называемые правилами типа событие-условие-действие (правилами ЕСА), отличаются от рассмотренных ранее ограничений ограничений удовлетворяли стандарту SQL/92 в трех аспектах:
Триггеры применяются только при наступлении конкретных событий, определенных программистом БД, обычно при вставке, удалении или изменении отдельного отношения. Во многих системах SQL таким событием считается также конец транзакции.
Вместо немедленного предотвращения вызвавшего его события триггер проверяет заданное условие. Если оно не выполняется, в ответ на событие не выполняется никаких действий, связанных с триггером.
Если условие триггера выполняется, связанное с ним действие выполняется системой. Это действие состоит либо в предотвращении события, либо в отмене его результата (например, в удалении вставленного кортежа). Фактически таким действием может быть любая последовательность операций БД, возможно даже операций, никак не связанных с событием, вызвавшим срабатывание триггера.
Триггеры SQL3 предоставляют пользователю ряд различных опций, касающихся события, условия и действия.
Действие можно выполнять до события, после или вместо события, вызвавшего срабатывание триггера.
Действие может относиться как к старым, так и к новым значениям кортежей, которые были введены, удалены или изменены событием, вызвавшим срабатывание триггера.
События обновления могут определять отдельный столбец или множество столбцов.
Условие можно задать в пункте WHEN, и действие выполняется, если только при наступлении события, вызвавшего срабатывание триггера, срабатывает правило и выполняется данное условие.
Программист может установить режим выполнения действия: (а) один раз для каждого изменяемого кортежа; (в) один раз для всех кортежей, изменяемых операцией на БД.
Объявление и открытие курсора.
Курсор – это объект, используемый в приложениях для размещения результатов запроса и иногда для изменения данных в таблицах, на которые ссылается запрос
Оператор определения курсора имеет вид
DECLARE имя курсора [INSENSITIVE] [SCROLL] CURSOR
FOR {SELECT оператор
[предложение для обновления]}
| {подготовленный оператор}
предложение для обновления::=
FOR {READ ONLY | UPDATE [OF имя столбца.,..]}
Курсоры могут быть двух типов – «обновляемые» и «только для чтения». «Обновляемый курсор можно преобразовать в курсов типа «только для чтения» с помощью предложения для обновления, но не наоборот. Предложение для обновления может относиться к отдельным столбцам. В качестве предложения для обновления можно использовать только FOR UPDATE, если курсор обновляемый в принципе. Для того, чтобы быть обновляемым в принципе, курсор должен удовлетворять следующим условиям:
Нельзя объявлять курсор как INSESITIVE, SCROLL или с предложением ORDER BY.
Курсор должен базироваться на одной и только одной простой таблице. Другими словами нельзя использовать соединения таблиц.
Курсор должен содержать один и только один запрос, т.е. недопустимы предложения UNION, EXCEPT или INTERSECT.
Если простая основная таблица курсора является представлением, то это представление должно быть обновляемым.
Предложение SELECT, определяющее содержимое курсора, должно иметь ссылки только на столбцы, а не на полученные каким-либо способом значения или функции агрегирования. Ни на один столбец нельзя делать более одной ссылки.
Запрос не должен содержать предложения GROUP BY или HAVING.
Запрос не должен содержать предложения DISTINCT.
Чтобы подготовить курсор для дальнейшего использования, предварительно определенный с помощью оператора DECLARE CURSOR, используется оператор OPEN:
OPEN имя курсора [USING источник значений];
Источник значений::=
Список параметров
| {SQL DESCRIPTOR имя дескриптора}
При выполнении этого оператора все параметры и переменные заполняются их текущими значениями. Запрос, определяющий курсор, выполняется, и данные извлекаются. Эти данные теперь готовы для построчной обработки, осуществляемой оператором FETCH. Предложение USING используется только в динамическом SQL.
Оператор CLOSE имя курсора закрывает открытый в данный момент курсор.