
- •Транзакция, это - ?
- •Какие действия совершает транзакция по отношению к бд?
- •Что происходит с системой в случае аварийного завершения транзакции?
- •Какие операторы сигнализируют об успешном и неудачном завершении транзакции?-
- •Назовите основные свойства транзакции.
- •Что означает термин параллелизм в среде субд?
- •Какие существуют проблемы параллельных процессов?
- •Причина потери результатов обновления элементов бд?
- •Какие конфликты возникают при параллельной работе транзакций?
- •Назовите графики запуска транзакций.
- •Какой график транзакций называется сериализуемым?
- •Назовите способы разрешения конкуренций между транзакциями.
- •Проблемы блокировок транзакций?
- •Назовите способы предотвращения «тупиков».
- •Какова формальная модель транзакций?
- •Как осуществляется проверка сериализуемости транзакций?
- •Протокол, гарантирующий сериализуемость?
- •Представьте матрицу совместимости транзакций при использовании блокировок для чтения и записи.
Транзакция, это - ?
Транзакцией называется последовательность операций, произведённых над БД и переводящих БД из одного непротиворечивого (согласованного) состояния в другое непротиворечивое (согласованное) состояние.
Транзакция – это логическая единица работы. Транзакция – это разовый прогон программы. Транзакция - это единица взаимодействия с базой данных. Логическая единица работы - не просто одиночная операция системы, а скорее согласование нескольких таких операций (например, добавление + изменение какого-либо кортежа). В общем, это преобразование одного согласованного состояния базы данных в другое, причём в промежуточных точках база данных находится в несогласованном состоянии.
Какие действия совершает транзакция по отношению к бд?
Транзакция - это единица взаимодействия с базой данных. Логическая единица работы - не просто одиночная операция системы, а скорее согласование нескольких таких операций (например, добавление + изменение какого-либо кортежа). В общем, это преобразование одного согласованного состояния базы данных в другое, причём в промежуточных точках база данных находится в несогласованном состоянии.
Из этого следует, что не допустимо, чтобы одно из обновлений было выполнено, а другое нет, так как БД останется в несогласованном состоянии. В идеальном случае должны быть выполнены оба обновления. В плохом случае, система между двумя обновлениями может быть разрушена.
Но система, обеспечивающая процесс транзакции гарантирует, что если во время выполнения неких обновлений произошла ошибка, то все эти обновления будут аннулированы. Таким образом, транзакция или выполняется полностью, или полностью отменяется.
Что происходит с системой в случае аварийного завершения транзакции?
Система, обеспечивающая процесс транзакции гарантирует, что если во время выполнения неких обновлений произошла ошибка, то все эти обновления будут аннулированы. Таким образом, транзакция или выполняется полностью, или полностью отменяется.
Какие операторы сигнализируют об успешном и неудачном завершении транзакции?-
Оператор COMMIT TRANSACTION сигнализирует об успешном окончании транзакции. Оператор ROLLBACK TRANSACTION сигнализирует о неудачном окончании транзакции. Все обновления должны быть аннулированы.
Для этого используется файл регистрации (журнал), где записываются детали всех операций обновления. Оператор COMMIT и ROLLBACK завершают транзакцию, а не программу. Программа может выполнять несколько транзакций. Сама программа завершается оператором RETURN.
В стандарте ANSI/ISO SQL определена модель транзакций. Стандарт определяет, что транзакция начинается с первого SQL-оператора. Все последующие SQL-операторы составляют тело транзакции. Транзакция завершается оператором COMMIT (успешное завершение) или ROLLBACK (прерывает транзакцию) (рис.3.1).
a) b)
Рис.3.1. Выполнение транзакций
а) успешное выполнение, в)аварийное завершение
В некоторых СУБД (например SYBASE) транзакции начинаются явно оператором BEGIN TRANSACTION.