
- •Транзакция, это - ?
- •Какие действия совершает транзакция по отношению к бд?
- •Что происходит с системой в случае аварийного завершения транзакции?
- •Какие операторы сигнализируют об успешном и неудачном завершении транзакции?-
- •Назовите основные свойства транзакции.
- •Что означает термин параллелизм в среде субд?
- •Какие существуют проблемы параллельных процессов?
- •Причина потери результатов обновления элементов бд?
- •Какие конфликты возникают при параллельной работе транзакций?
- •Назовите графики запуска транзакций.
- •Какой график транзакций называется сериализуемым?
- •Назовите способы разрешения конкуренций между транзакциями.
- •Проблемы блокировок транзакций?
- •Назовите способы предотвращения «тупиков».
- •Какова формальная модель транзакций?
- •Как осуществляется проверка сериализуемости транзакций?
- •Протокол, гарантирующий сериализуемость?
- •Представьте матрицу совместимости транзакций при использовании блокировок для чтения и записи.
Назовите основные свойства транзакции.
Транзакция обладает 4 свойствами: атомарность, согласованность, изоляция и долговечность (АСИД)
Атомарность означает, что выполняется всё или ничего.
Согласованность. Транзакция защищают БД согласованно, т.е. переводят одно согласованное состояние в другое без обязательной поддержки согласованности во всех промежуточных точках.
Изоляция. Транзакции отделены одна от другой. Т.е. любое обновление одной транзакции будет скрыто от остальных до тех пор, пока эта транзакция выполняется. Пусть имеем Т1 и Т2. Тогда справедливо утверждение: Т1 сможет увидеть обновление Т2 только после выполнения Т2, а Т2 сможет увидеть обновление Т1 только после выполнения Т1.
Долговечность. Когда транзакция выполняется, её обновления сохраняются, даже если в следующий момент происходит сбой системы.
Что означает термин параллелизм в среде субд?
Термин параллелизм означает возможность одновременной обработки в СУБД многих транзакций с доступом к одним и тем же данным, причём в одно и то же время. В такой системе для корректной обработки параллельных транзакций без возникновения конфликтных ситуаций необходимо использовать некоторый метод управления параллелизмом. В системе продажи авиабилетов, например, продавать билеты и изменять, списки пассажиров и число свободных мест могут одновременно несколько агентов. Главная проблема состоит в том, что если не позаботиться о правилах, регулирующих доступ к базе данных двух или более программ, то не исключается возможность продажи билетов на одно и то же место двум пассажирам. Интуиция подсказывает нам, что не следует допускать параллельное исполнение двух процессов, которые читают и изменяют значение одного и того же объекта.
Другим примером может служить статистическая база данных переписи населения. К такой базе данных одновременно может обращаться много пользователей. Поскольку здесь никто не изменяет данные, нет нужды беспокоиться о том, в каком порядке их читают процессы. Здесь можно позволить одновременное чтение данных по запросам. В данном случае, когда осуществляется лишь чтение, для экономии времени желательно в максимальной степени использовать параллелизм операций.
В системе же продажи билетов, где выполняется как чтение, так и запись, необходимо наложить некоторые ограничения, если допускается одновременное использование двух программ.
Существуют различные модели параллельных процессов применительно к операциям над базой данных. Эти модели различаются, в основном, степенью подробности описания доступа к её элементам. Как правило, чем в большей степени детализировать модель, тем большей параллелизм можно надёжно обеспечить.
Какие существуют проблемы параллельных процессов?
При обработке правильно составленных транзакций возникают ситуации, которые могут привести к получению неправильного результата из-за взаимных помех среди некоторых транзакций. Это следующие проблемы:
1 – проблема потери результатов обновления, 2 – проблема незафиксированной зависимости,
3 - чтение «грязных» данных, 4 – проблема несовместимого анализа.