- •Федеральное агентство связи
- •Государственное образовательное учреждение высшего
- •Профессионального образования
- •«Поволжская государственная академия телекоммуникаций и информатики»
- •Разработка и эксплуатация удаленных баз данных
- •Конспект лекций
- •Введение
- •Раздел 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
- •Определение файлов, объектов и элементов среды
- •Задание диалога при разархивировании
- •Создание прообраза копии диска
- •Создание копии на дискетах
Управление транзакциями и кэширование памяти
Структурная схема терминов
Механизм транзакций
Механизм транзакций используется для поддержания целостности БД. Транзакция – это набор операций с БД, который переводит БД из одного целостного состояния в другое. Чтобы транзакция была успешной, должны выполниться все операции, входящие в ее состав. В случае возникновения ошибки хотя бы одной из операций вся транзакция считается неуспешной, и результаты всех операций отменяются. Транзакция может быть явной и неявной как при работе с локальными, так и при работе с удаленными БД.
Для удаленной БД, кроме поддержания целостности данных, механизм транзакций позволяет определить порядок взаимодействия запросов. Для соперничающих запросов устанавливается режим одновременного доступа к одним и тем же данным.
Неявная транзакция запускается и завершается автоматически при модификации набора данных. Утверждается методом Post, а отменяется Cancel для локальных БД. Для удаленных БД используется PassThrough SQL-запрос, его выполнение приводит к запуску неявной транзакции. Такой SQL-запрос по модификации данных выполняется с помощью метода ExecSQL компонента Query. Способ взаимодействия с сервером на уровне такой транзакции определяет параметр SQLPASSTHRU MODE псевдонима БД или драйвера (в нашем случае InterBase).
Явной транзакцией управляет программист. Для реализации механизма явных транзакций Delphi предоставляет специальные методы компонента DataBase:
StartTransaction – метод начинает транзакцию. После него располагаются инструкции, составляющие транзакцию. При выполнении операций производится обработка возникающих исключений.
Commit – подтверждает успешную транзакцию. После него все изменения вступают в силу.
Rollback – отменяет транзакцию и действия всех операций в ее рамках. Вызывается при возникновении исключения.
Можно использовать аналогичные инструкции языка SQL-сервера:
SET TRANSACTION;
COMMIT;
ROLLBACK.
Инструкция запуска явной транзакции имеет формат:
SET TRANSACTION
[READ WRITE | READ ONLY]
[WAIT | NO WAIT]
[[ISOLATION LEVEL]
{SNAPSHOT [TABLE STABILITY] | READ COMMITED}]
[RESERVING <Список таблиц>
[FOR [{SHARED | PROTECTED}] [{READ | WRITE}]];
Все операнды этой инструкции являются необязательными и позволяют управлять режимами транзакции:
Режимы доступа к данным:
READ WRITE – разрешены чтение и модификация записей (по умолчанию);
READ ONLY – разрешено только чтение записей.
Поведение в случае конфликта транзакций при обновлении записей:
WAIT – ожидание завершения другой транзакции (по умолчанию);
NO WAIT – прекращение данной транзакции.
Уровень изоляции от других транзакций (операнд ISOLATION LEVEL):
SNAPSHOT – чтение данных в состоянии на момент начала транзакции (по умолчанию); изменения, сделанные другими транзакциями, в данной транзакции не видны;
SNAPSHOT TABLE STABILITY – предоставление транзакции исключительного доступа к таблицам; другие транзакции могут читать записи из таблиц;
READ COMMITED – чтение только подтвержденных изменений в записях; если изменения еще не подтверждены, то читается предыдущая версия записи.
Блокирование таблиц, указанных в списке RESERVING, для других транзакций:
PROTECTED READ – разрешено только чтение записей;
PROTECTED WRITE – для транзакций с уровнем изоляции SNAPSHOT или READ COMMITED разрешена модификация записей;
SHARED READ – разрешены чтение и модификация записей;
SHARED WRITE – разрешено чтение записей, а для транзакций с уровнем изоляции SNAPSHOT или READ COMMITED разрешена модификация записей.