Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Транзакция — это один из механизмов, реализованных в SQL

Транзакция — это один из механизмов, реализованных в SQL

Транзакция — это один из механизмов, реализованных в SQL с целью поддержания целостности и согласованности данных. Детали этого механизма варьируются в конкретных реализациях СУБД, хотя основные концепции стандарта SQL, как правило, сохраняются. Транзакции дополняют концепцию сеансов дополнительным уровнем гранулярности. Они разбивают операции, выполняемые в сессии, на логические единицы. Это позволяет выполнять операции поэтапно и подтверждать их при успешном завершении или откатывать в противном случае. Основная идея, заложенная в транзакциях, гарантирует выполнение последовательности инструкций как единого целого. Если какое-либо действие в составе транзакции завершается неудачей, откатывается вся транзакция. Если же все инструкции, входящие в транзакцию, завершаются успешно, транзакция может быть либо подтверждена, либо возвращена в исходное состояние (при этом все изменения аннулируются). Концепция транзакции была изначально заложена в стандарте SQL и постепенно развивалась в его новых версиях. Согласно стандарту, транзакция инициируется СУБД и продолжается до тех пор, пока не встретится инструкция COMMIT (подтверждение) или ROLLBACK (откат). Детали этого механизма отличаются в отдельных реализациях. Инструкции управления транзакциями, определенные в стандарте SQL:2003, перечислены в табл. 7.5. Транзакции должны удовлетворять условиям ACID. Атомарность. Либо выполняются все изменения, либо не выполняется ни одного. Целостность. На момент начала и завершения транзакции все данные должны находиться в целостном состоянии, независимо от того, чем она завершилась, подтверждением или откатом. Целостность базы данных не должна быть нарушена. Изоляция. Одна транзакция не должна знать об изменениях, выполняемых другой транзакцией, до своего подтверждения. В базе данных нужно установить разные уровни изоляции транзакции. Живучесть. Результаты подтвержденной транзакции должны сохраниться в базе данных в полном объеме.