Firebird. Руководство разработчика баз данных | страница 8
По причине использования многоверсионной архитектуры (называемой также MGA - Multi-generational architecture) для Firebird нет необходимости в двухфазной блокировке, используемой другими СУБД для управления многопользовательской работой.
Транзакции
Все задачи пользователей в Firebird помещаются внутрь транзакций. Задача начинается с оператора START TRANSACTION и завершается, когда выполненная работа подтверждается (commit) или отменяется (rollback). Задача пользователя может выполнять множество запросов к операциям в одной транзакции, включая операции с более чем одной базой данных.
Работа сохраняется в базе данных в два этапа. На первом этапе изменения сохраняются на диске без изменения состояния базы данных. На втором этапе изменения подтверждаются или отменяются клиентским процессом. В версии 1.5 и выше клиенты могут отменить часть работы, маркируя этапы с помощью точек сохранения (savepoints) и отменяя изменения до точки сохранения без отмены всей транзакции.
Транзакции в Firebird являются атомарными в том смысле, что вся работа в рамках транзакции будет сохранена или вся отменена.
Транзакции можно конфигурировать с использованием трех уровней изоляции и множества стратегий тонкой настройки параллельности выполнения и условий чтения/записи.
Хранимые процедуры и триггеры
Firebird имеет богатый язык процедурных расширений, PSQL, для написания хранимых процедур и триггеров. Это структурированный язык с поддержкой циклов FOR для множеств, условными переходами, обработкой ошибок и пересылкой событий. После создания код PSQL компилируется и сохраняется в двоичном виде.
Триггеры имеют сильную поддержку с фазами До (Before) и После (After) каждого события манипулирования данными. Для каждой фазы/события может существовать множество триггеров, они могут содержать номера, задающие последовательность выполнения. Firebird 1.5 и выше поддерживает триггеры Before и After, которые обрабатывают все три события манипулирования данными с условными переходами для каждого события.
Ссылочная целостность
Firebird имеет полную поддержку формальной, основанной на стандартах SQL, ссылочной целостности - иногда называемой декларативной ссылочной целостностью - включая необязательные каскадные изменения и удаления.
Оперативное копирование базы данных
Серверы Firebird могут при необходимости поддерживать создание оперативных копий базы данных. Оперативная копия (shadow) является копией базы данных реального времени с некоторыми дополнительными атрибутами, которые делают ее недоступной для чтения, пока она не будет сделана доступной сервером в качестве базы данных. Оперативные копии могут переключаться либо вручную, либо автоматически. Назначение оперативного копирования - сделать базу данных доступной в кратчайший срок при поломках диска.