Материал: Л-6 - Сеансы, транзакции и блокировки

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Сеансы, транзакции и блокировки

Сеансы и параметры сеансов Транзакции. Сериализация транзакций Блокировки

Особенности реальной работы СУБД

БД наполняются многими пользователями из множества источников (в т. ч. непроверенных) разных форматов, часто в непредсказуемое время. Вопросы:

Какие данные должны быть видимы пользователям?

Какой из модификаций при сохранении данных отдать предпочтение?

Как гарантировать сохранность данных в ходе выполнения длительной процедуры?

Ответы на эти и множество других вопросов даются в терминах сеансов, транзакций и блокировок.

Сеансы

Взаимодействие между сервером БД и пользователем происходит в контексте сеанса подключения.

Когда клиентское приложение подключается к серверу БД, говорят, что открывается сеанс (сессия). Сеанс – частный канал взаимодействия приложения с СУБД.

Детали реализации сессий в разных СУБД различаются, но базовые принципы одни и те же.

На сервере можно запустить множество экземпляров утилит доступа к СУБД, при этом каждый экземпляр создаст свой сеанс, изолированный от других сессий.

Параметры сеанса

Когда установлен сеанс подключения к СУБД, режим его работы определяют специальные параметры.

Пользователь может изменить некоторые параметры сеанса (например, язык или формат даты), но изменения будут действительны только до завершения сеанса.

Администратор БД может сделать эти изменения

постоянными.

Одни параметры можно изменить с помощью инструкций SQL, другие зависят от клиентского приложения и должны устанавливаться в его среде.

Примеры установки параметров сеанса

Инструкции управления сеансами в стандарте SQL:

CONNECT TO – установка сеанса SQL;

DISCONNECT – завершение сеанса SQL.

Установка параметров сеанса в утилите SQL*Plus:

SET AUTOCOMMIT {ON | OFF | IMMEDIATE}

установка режима внесения изменений в БД.

SET ECHO {ON | OFF} – включение/выключение вывода на экран команд, содержащихся в запущенном сценарии.