- •Федеральное агентство связи
- •Государственное образовательное учреждение высшего
- •Профессионального образования
- •«Поволжская государственная академия телекоммуникаций и информатики»
- •Разработка и эксплуатация удаленных баз данных
- •Конспект лекций
- •Введение
- •Раздел 1. Теория проектирования удаленных баз данных архитектуры удаленных бд Структурная схема терминов
- •Архитектуры бд
- •Локальная
- •Архитектура "файл-сервер"
- •Архитектура удаленных бд ("клиент-сервер")
- •Достоинства и недостатки различных архитектур приложений бд
- •Основные технологии доступа к данным Технология com (component object model)
- •Создание распределенных приложений на базе dCom
- •Технология corba (общая архитектура брокеров объектных запросов)
- •Технология midas
- •Доступ к данным по технологии ado
- •Технология com (component object model)
- •Составные части технологии com
- •Создание распределенных приложений на базе dCom
- •Технология midas
- •Доступ к данным по технологии ado
- •Введение в работу с удаленными бд
- •Организация сеанса связи с удаленной бд
- •Сервер interbase
- •Физическая организация базы данных формата InterBase
- •Типы данных в таблицах InterBase Типы столбцов таблиц формата InterBase
- •Организация сеанса связи с удаленной бд
- •Физическая организация удаленной бд
- •Создание и модификация таблиц Операции с таблицами
- •Операции с индексами
- •Графическое проектирование структуры бд Просмотры View
- •Создание бд
- •Создание и использование доменов
- •Компоненты доступа к данным. Запросы на выборку данных
- •Компоненты для доступа к данным и их отображения
- •Формирование запросов на выборку данных
- •Запросы на изменение данных Структурная схема терминов
- •Работа с записями
- •Методика изменения данных при помощи компонент
- •Использование хранимых процедур
- •Понятие и назначение хранимых процедур
- •Язык хранимых процедур
- •Использование триггеров и генераторов
- •Понятие триггера
- •Команды создания, изменения и удаления триггера
- •Генераторы - назначение, создание, установка начального значения
- •Функции, определяемые пользователем – назначение, создание, применение, порядок работы с ними
- •Сортировка, поиск и фильтрация в бд и выборках
- •Сортировка
- •Фильтрация записей
- •Организация данных в бд InterBase
- •Поиск в наборах данных
- •Манипулирование данными в выборках
- •Управление транзакциями и кэширование памяти
- •Механизм транзакций
- •Механизм кэшированных изменений
- •Перехват исключительных ситуаций и обработка ошибок
- •Понятие исключительных ситуаций
- •Обработка исключений
- •Формирование и вывод отчетов
- •Назначение и виды отчетов
- •Компоненты для формирования отчетов
- •Особенности проектирования клиентской части приложения в различных технологиях доступа
- •Особенности проектирования клиентской части приложения в различных технологиях доступа
- •Установка привилегий доступа к данным
- •Понятие привилегии, привилегии по умолчанию
- •Состав параметров при установлении привилегий
- •Назначение привилегий пользователю и группам пользователей
- •Отмена привилегий
- •Копирование, перенос и восстановление данных Создание резервной копии и восстановление бд
- •Восстановление транзакций
- •Регистрация новых пользователей
- •Копирование клиентской части приложения бд Структурная схема терминов
- •Утилита Install Shield
- •Определение файлов, объектов и элементов среды
- •Задание диалога при разархивировании
- •Создание прообраза копии диска
- •Создание копии на дискетах
Использование триггеров и генераторов
Структурная схема терминов
Понятие триггера
Триггер представляет собой процедуру, которая находится на сервере БД и вызывается автоматически при модификации записей БД, т.е. при изменении столбцов или при их удалении и добавлении. В отличие от хранимых процедур, триггеры нельзя вызывать из приложения-клиента, а также передавать им параметры и получать от них результаты.
Триггер, по сути, похож на обработчики событий BeforeEdit, AfterEdit, BeforeInsert, AfterInsert, BeforeDelete и AfterDelete, связанные с модификацией таблиц. Триггер может вызываться при редактировании, добавлении или удалении записей до и (или) после этих событий.
Изменения, внесенные триггером в отмененные транзакции, также отменяются.
Триггеры обычно используются для программной реализации так называемых бизнес-правил. С их помощью удобно реализовывать ограничения на значения столбцов, ограничения ссылочной целостности, а также выполнять накапливание статистики работы с БД, резервное копирование и т.п.
Устанавливаемые триггером бизнес-правила не должны противоречить аналогичным правилам, заданным для БД на физическом уровне.
Команды создания, изменения и удаления триггера
Создание и изменение триггера
Создание триггера выполняется оператором следующего формата:
CREATE TRIGGER <Имя триггера> FOR <Имя таблицы>
[ACTIVE | INACTIVE]
{BEFORE | AFTER}
{UPDATE | INSERT | DELETE}
[POSITION <число>]
AS <Тело триггера>
Описатель |
Назначение |
ACTIVE |
Триггер активен сразу после его создания |
INACTIVE |
Триггер неактивен сразу после его создания |
BEFORE |
Триггер выполняется до наступления события |
AFTER |
Триггер выполняется после наступления события |
UPDATE | INSERT | DELETE |
Определяют событие, для которого вызывается триггер |
Для одного события можно создать несколько триггеров. Порядок их вызова задается числом, указанным в операнде POSITION. Триггеры выполняются в порядке возрастания этих чисел.
Изменение триггера
ALTER TRIGGER <Имя триггера> For <Имя таблицы>
[ACTIVE | INACTIVE]
{BEFORE | AFTER}
{UPDATE | INSERT | DELETE}
[POSITION <число>]
AS <Тело триггера>
В целом, формат оператора такой же, как и при создании триггера. После выполнения оператора старое описание заменяется на новое.
Удаление триггера
Производится оператором:
DROP TRIGGER <имя триггера>
Программирование триггера аналогично программированию хранимой процедуры. Для доступа к значениям столбца используются конструкции формата:
OLD.<Имя столбца>
NEW.<Имя столбца>
Генераторы - назначение, создание, установка начального значения
Создание генератора
Генераторы в InterBase используются совместно с триггерами для обеспечения уникальности значений ключевых столбцов. Генератор возвращает уникальное целочисленное значение.
Создается генератор с помощью языка SQL-сервера:
CREATE GENERATOR <Имя генератора>;
Начальное значение задается командой:
SET GENERATOR <Имя генератора> TO <Начальное значение>
Пример
/* Создание таблицы */
CREATE TABLE Store
(S_Code INTEGER NOT NULL,
...
PRIMARY KEY(S_Code));
/* Создание генератора */
CREATE GENERATOR GenStore;
SET GENERATOR GenStore TO 1;
/* Создание триггера */
CREATE TRIGGER CodeStore FOR Store
ACTIVE
BEFORE INSERT
AS
BEGIN
NEW.S_Code = GEN_ID(GenStore,1);
END