Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мокшин_2.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
70.57 Кб
Скачать

  1. Транзакция, это - ?

Транзакцией называется последовательность операций, произведённых над БД и переводящих БД из одного непротиворечивого (согласованного) состояния в другое непротиворечивое (согласованное) состояние.

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

  1. Какие действия совершает транзакция по отношению к бд?

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

        Из этого следует, что не допустимо, чтобы одно из обновлений было выполнено, а другое нет, так как БД останется в несогласованном состоянии. В идеальном случае должны быть выполнены оба обновления. В плохом случае, система между двумя обновлениями может быть разрушена.

        Но система, обеспечивающая процесс транзакции гарантирует, что если во время выполнения неких обновлений произошла ошибка, то все эти обновления будут аннулированы. Таким образом, транзакция или выполняется полностью, или полностью отменяется.

  1. Что происходит с системой в случае аварийного завершения транзакции?

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

  1. Какие операторы сигнализируют об успешном и неудачном завершении транзакции?-

Оператор COMMIT TRANSACTION сигнализирует об успешном окончании транзакции. Оператор ROLLBACK TRANSACTION сигнализирует о неудачном окончании транзакции. Все обновления должны быть аннулированы.

Для этого используется файл регистрации (журнал), где записываются детали всех операций обновления. Оператор COMMIT и ROLLBACK завершают транзакцию, а не программу. Программа может выполнять несколько транзакций. Сама программа завершается оператором RETURN.

   В стандарте ANSI/ISO SQL определена модель транзакций. Стандарт определяет, что транзакция начинается с первого SQL-оператора. Все последующие SQL-операторы составляют тело транзакции. Транзакция завершается оператором COMMIT (успешное завершение) или ROLLBACK (прерывает транзакцию) (рис.3.1).

a) b)

Рис.3.1. Выполнение транзакций

а) успешное выполнение, в)аварийное завершение

     

 В некоторых СУБД (например SYBASE) транзакции начинаются явно оператором BEGIN TRANSACTION.