- •Реляционная модель данных. Общая характеристика. Целостность реляционных данных.
- •Технологии проектирования реляционных бд. Этапы разработки базы данных. Критерии оценки качества логической модели данных.
- •Проектирование реляционных баз данных на основе принципов нормализации. Понятие метода нормализации отношений. Декомпозиция без потерь и функциональные зависимости. 1-я форма.
- •Минимальные функциональные зависимости и вторая нормальная форма.
- •Нетранзитивные функциональные зависимости и третья нормальная форма.
- •Перекрывающиеся возможные ключи и нормальная форма Бойса-Кодда.
- •Проектирование реляционных баз данных с использованием семантических моделей. Семантическая модель Entity-Relationship. Основные понятия er-модели. Уникальные идентификаторы типов сущности.
- •Нормальные формы er-диаграмм.
- •Получение реляционной схемы из er-диаграммы. Базовые приемы. Представление в реляционной схеме супертипов и подтипов сущности. Представление в реляционной схеме взаимно исключающих связей.
- •Методология idef1x.
- •Основные понятия диаграмм классов uml. Получение схемы рбд из диаграммы классов uml.
- •15.Case-системы проектирования информационных систем. Назначение и разновидности case-систем.
- •16.Классификация архитектур построения приложений баз данных.
- •17.Базовая архитектура сервера баз данных.
- •18.Технология хранилищ данных. Концепция хранилищ данных. Отличия хранилищ данных от систем oltp.
- •Отличия хранилищ данных от систем oltp
- •19.Системы оперативной аналитическая обработка (olap). Связь olap и хд. Структура информационно-аналитической системы и место olap в ней.
- •Связь olap и хд
- •Структура информационно-аналитической системы и место olap в ней
- •Логическая многомерная модель
- •Архитектуры olap
- •О преимуществах и недостатках различных архитектур Реляционное хранилище
- •24.Основы sql. Формат оператора select. Использование предложения where для задания условия отбора и внутреннего соединения таблиц.
- •25.Основы sql. Формат оператора select. Использование псевдонимов таблиц. Определение сортировки. Устранение повторяющихся значений. Расчет значений вычисляемых столбцов.
- •26.Основы sql. Формат оператора select. Агрегатные функции. Группировка записей. Наложение ограничений на группировку записей.
- •27.Основы sql. Формат оператора select. Вложение подзапросов.
- •28.Основы sql. Формат оператора select. Внешние соединения
- •29.Основы sql. Формат оператора select. Объединение запросов – union. Использование is null. Использование операции сцепления строк.
- •30.Основы sql. Формат оператора insert. Явное указание списка значений. Формирование значений при помощи оператора select.
- •1.1.2.1.Явное указание списка значений
- •1.1.2.2.Формирование значений при помощи оператора select
- •31. Основы sql. Формат операторов update и delete.
- •1.1.4.Оператор delete Формат оператора удаления записей
- •32. Основы sql. Работа с просмотрами (view).
- •1.1.5.Работа с просмотрами (view) Понятие просмотра как виртуальной таблицы
- •1.1.5.1.Способы формирования просмотра
- •1.1.5.2.Обновляемые и не обновляемые просмотры
- •1.1.5.3.Дополнительные параметры просмотра
- •Основы sql. Понятие хранимой процедуры. Алгоритмический язык хранимых процедур. Создание хп.
- •Основы sql. Понятие хранимой процедуры. Алгоритмический язык хранимых процедур. Создание хп, параметры и переменные в хп.
- •1.1.6.Создание хранимой процедуры Хранимая процедура создается оператором:
- •1.1.7.Алгоритмический язык хранимых процедур Формат объявления локальных переменных:
- •Операторные скобки :Используются для указания границ составного оператора begin ... End ;
- •Основы sql. Понятие хранимой процедуры. Алгоритмический язык хранимых процедур. Формат оператора select в хп.
- •Оператор for select … do
- •1.1.8.Изменение хп
- •36. Основы sql. Понятие хранимой процедуры. Алгоритмический язык хранимых процедур. Операторы if, while, exit, suspend. Оператор вызова хп.
- •Оператор execute procedure Оператор вызова другой хранимой процедуры:
- •37. Понятие и особенности триггера. Использование триггеров для реализации каскадных воздействий.
- •1.1.9.Создание триггеров
- •38. Понятие и особенности триггера. Использование триггеров для реализации бизнес-правил.Использование генераторов.
- •1.1.10.Изменение существующего триггера:
- •39. Основы sql. Понятие транзакции. Уровни изоляции транзакций.
- •1.2.1.Уровни изоляции транзакций
- •40. Физическое проектировании бд. Способы повышения производительности работы с бд. Определение структуры индексов. Денормализация. Оптимизация запросов.
- •1.3.1.Денормализация для оптимизации
- •Целесообразность создания индексов. Их необходимо создавать в случае, когда по столбцу или группе столбцов:
- •Уменьшение общего количества индексов.
- •41. Реализация доступа к базам данных на примере Borland Delphi. Понятие набора данных. Механизмы доступа.
- •Компоненты для доступа к данным, реализующие:
- •Визуальные компоненты, реализующие интерфейс пользователя;
- •42. Реализация доступа к базам данных на примере Borland Delphi. Применение многозвенных архитектур.
1.1.9.Создание триггеров
CREATE TRIGGER ИмяТриггера FOR ИмяТаблицы
[ ACTIVE | INACTIVE ] указывает, активен триггер или нет
{ BEFORE | AFTER } до (BEFORE) или после (AFTER) запоминания изменений в БД
{ DELETE | INSERT | UPDATE } указывает операцию над таблицей БД, при выполнении которой срабатывает
[ POSITION номер ] каким по счету будет выполняться триггер
AS [<объявление локальных переменных>]
BEGIN <оператор> END
Для определения тела триггера используется процедурный язык, рассмотренный для хранимых процедур. В него добавляется возможность доступа к старому и новому значениям столбцов изменяемой записи OLD и NEW.
Значение OLD.имя_столбца позволяет обратиться к состоянию столбца, имевшему место до внесения возможных изменений, а значение NEW.имя_столбца – к состоянию столбца, имевшему место после внесения возможных изменений.
Удаление триггера: DROP TRIGGER ИмяТриггера
Обеспечение каскадных воздействий с помощью триггеров. Если между двумя или более таблицами БД установлены отношения ссылочной целостности («один ко многим», «один к одному»), при изменении столбца связи в родительской таблице должно быть изменено значение столбца связи у записей соответствующих дочерних таблиц. Такое воздействие носит название каскадного обновления. Триггер, реализующий каскадное обновление в дочерней таблице, будет в числе прочих содержать оператор:
IF (OLD.ПолеСвязиРодителя <> NEW. ПолеСвязиРодителя) THEN UPDATE Дочерняя.Таблица
SET ПолеСвязиДочернейТаблицы = NEW.ПолесвязиРодителя
WHERE ПолеСвязиДочернейТаблицы = OLD.ПолеСвязиРодителя ;
Если в родительской таблице удалена запись, должны быть удалены все связанные с ней записи в дочерней таблице. Такое воздействие на дочернюю таблицу носит название каскадного удаления.
Триггер, реализующий каскадное удаление в дочерней таблицы, будет содержать оператор:
DELETE FROM ДочерняяТаблица
WHERE ПолеСвязиДочернейТаблицы = ПолеСвязиРодителя ;
38. Понятие и особенности триггера. Использование триггеров для реализации бизнес-правил.Использование генераторов.
1.1.10.Изменение существующего триггера:
ALTER TRIGGER ИмяТриггера FOR ИмяТаблицы
[ ACTIVE | INACTIVE ]
{ BEFORE | AFTER }
{ DELETE | INSERT | UPDATE }
[ POSITION номер ]
AS <тело триггера>
1.1.11.Использование триггеров для реализации бизнес-правил. В частности, это может быть установка с помощью генераторов уникальных значений индексных полей, накапливание статистики в других таблицах и многое другое.
Пример. Реализуем простейшее правило формирования уникального значения столбца. Пусть столбец N_RASH в таблице RASHOD должен содержать уникальное значение.
CREATE GENERATO RASHOD_N_RASH
SET GENERATOR RASHOD_N_RASH TO 20 ;
При добавлении новой записи будем присваивать столбцу N_RASH уникальное значение:
CREATE TRIGGER BI_RASHOD_GEN FOR RASHOD
ACTIVE
BEFORE INSERT
BEGIN
NEW.N_RASH = GEN_ID(RASHOD_N_RASH,1);
END
1.2.Использование генераторов. Генератор – хранимый на сервере БД механизм, возвращающий уникальные значения никогда не совпадающие со значениями, выданными тем же самым генератором в прошлом. Используется для установки уникальных значений столбцов.
Для создания генератора используется оператор: CREATE GENERATOR ИмяГенератора ;
Установка стартового значения генератора: SET GENERATOR ИмяГенератора TO СтартовоеЗначение;
Обращение к генератору (получение уникального значения): GEN_ID( ИмяГенератора , Шаг )