Управление транзакциями
Транзакция – это последовательность операций над БД, рассматриваемых СУБД как единое целое. Либо транзакция успешно выполняется, и СУБД фиксирует изменения БД, произведенные этой транзакцией, во внешней памяти, либо ни одно из этих изменений никак не отражается на состоянии БД. Понятие транзакции необходимо для поддержания логической целостности БД. Поддержание механизма транзакций есть обязательное условие даже в однопользовательской СУБД. Но понятие транзакции гораздо существеннее для многопользовательских СУБД. При соответствующем управлении каждой СУБД, каждый пользователь может ощущать себя единственным. Существует 2 типа систем обработки транзакциями: OLTP, OLAP - Система OLTP (On-Line Transaction Process – оперативная обработка транзакций) – Обработка транзакций используется в режиме реального времени и рассчитана на быстрое обслуживание большого числа пользователей, так же для защиты от несанкционированного доступа, нарушении целостности, сбоев. Применяются в банковских, биржевых системах и т.д. - Система OLAP (On-Line Analysis Process – оперативная аналитическая обработка) – рассчитаны на выполнение более сложных запросов требующих статистической обработки данных, накопленных за определенный промежуток времени, моделирование процессов предметной области, прогнозирование явлений. Эти аналитические системы часто включают средства обработки информации на основе искусственного интеллекта, используя при этом большой объем исторических данных. Транзакция в OLTP системах должна обладать 4-мя свойствами: АСИД 1. А томарность – транзакция выполняется как единая операция доступа к БД (принцип «все или ничего»). 2. С огласованность –обеспечивается ограничениями на данные, после окончания транзакции БД должна оставаться целостной. 3. И золированность – транзакции выполняются отдельно друг от друга. 4. Д олговечность – значит, если транзакция выполнена успешно, то изменения не будут потеряны ни при каких обстоятельствах. Это и есть АСИД-транзакции. 4.Журнализация. Это надежность СУБД в хранении данных, т.е. способность восстанавливать последнее согласованное состояние БД после любого программного или аппаратного сбоя. Для этого ведется журнал (особая часть БД, в которую поступают данные об изменениях в основной части БД). Иногда поддерживаются 2 копии журнала и хранятся на разных винчестерах.Изменения в журнале производятся, до изменения в БД (WAL-протокол). После сбоя используется журнал и архивная копия БД (полная копия БД к началу заполнения БД). По журналу производятся все транзакции до момента сбоя. 5.Поддержка языков БД. Таким языком является непроцедурный язык SQL.
|