Введение в стандарты языка баз данных SQL



         

Транзакции, подключения к базе данных, сессии - часть 3


  • изменения данных или схем произведены явно самой транзакцией;
  • при повторном чтении процедуре передаются другие значения параметров;
  • используются изменяемые во времени переменные, такие как CURRENT_DATEandCURRENT_USER.
  • SQL-подключение - это ассоциация между SQL-клиентом и SQL-сервером. Подключение устанавливается и именуется с помощью оператора CONNECT, в котором сервер идентифицируется именем. В реализации определяется, каким образом используется имя сервера, чтобы установить его местоположение и коммуникационный протокол, требуемый для доступа к серверу и создания SQL-сессий.

    SQL-соединение активно, если какой-либо оператор SQL, инициировавший или востребоваший SQL-транзакцию, был выполнен на соответствующем сервере в течение текущей транзакции. Соединение может быть текущим или потенциальным. Если соединение, установленное самым последним по времени выполнения явным или неявным оператором CONNECT (или SETCONNECTION), не разорвано, то это соединение является текущим; в противном случае оно не текущее. Существующее соединение, не являющееся текущим, называется потенциальным.

    Реализация может обнаружить потерю текущего соединения при выполнении любого оператора SQL. Когда это происходит, генерируется исключительное условие, смысл которого состоит в том, что результаты действий, выполненных сервером в связи с этим оператором, неизвестны SQL-агенту.

    Аналогично, реализация может обнаружить потерю текущего соединения при выполнении оператора COMMIT. Исключительное условие, возбуждаемое в этом случае, обозначает, что реализация не может узнать, была ли соответствующая транзакция успешно зафиксирована, откачена или продолжает быть активной.

    Пользователь может инициировать установление соединения между SQL-клиентом, связанным с SQL-агентом, и конкретным SQL-сервером путем выполнения оператора CONNECT. Иначе установление соединения между клиентом и сервером инициируется, когда вызывается процедура и отсутствует текущее соединение. Возможно определяемое в реализации соединение по умолчанию с некоторым выделенным SQL-сервером.

    SQL-соединение уничтожается либо при выполнении оператора DISCONNECT, либо после последнего вызова процедуры в последнем активном модуле, либо после последнего выполнения прямого вызова оператора SQL. Механизм и правила, по которым среда SQL определяет, что вызов процедуры или прямой вызов оператора SQL являются последними, определяются в реализации.

    Реализация должна поддерживать по крайней мере одно SQL-соединение и может требовать, чтобы SQL-сервер идентифицировался во время связывания, выбираемое реализацией. Если реализация допускает наличие более чем одного соединения, то SQL-агент может соединяться с более чем одним SQL-сервером и выбирать SQL-сервер путем выполнения оператора SETCONNECTION.

    SQL-сессия накрывает выполнение последовательности операторов SQL, вызываемых одним пользователем через единственного SQL-агента или с помощью механизма прямого вызова. Сессия ассоциируется с соединением. SQL-сессия, ассоциированная с соединением по умолчанию, называется сессией по умолчанию. Сессия может быть текущей или потенциальной. Текущая сессия - это сессия, ассоциированная с текущим соединением (соответствующим образом определяется потенциальная сессия).

    SQL-сессии соответствует модуль сессии, который отличается от любого другого модуля, одновременно существующего в среде SQL. Модуль сессии содержит глобальные подготовленные операторы SQL, относящиеся к этой сессии.




    Содержание  Назад  Вперед