Cтраница 4
Какие транзакции необходимо реализовать для каждой области деятельности организации. [46]
Если транзакция находится в состоянии committed, то вызывается исключение tran - - saction already committed. Операция изменяет состояние транзакции - с active на aborted. Если транзакция уже была прервана, то операция - - эквивалентна пустой операции. [47]
Если транзакции А и В выполняют изменения одних и тех же данных в БД, то при их параллельном выполнении может быть нарушена целостность данных в базе. В этом случае СУБД должна реализовать специальный режим выполнения параллельных вычислений. Например, транзакция В не может обратиться к данным, пока с ними не закончится работа в транзакции А. [48]
Если транзакция выполняет несколько изменений в БД, связанных между собой ограничениями целостности, то ограничения целостности можно проверять только после выполнения транзакции. Такие ограничения называют отложенными. [49]
Каждая транзакция, обрабатываемая системой, находится под наблюдением какого-либо ТМ. [50]
Каждая транзакция считывает некоторое множество данных и изменяет некоторое множество данных. Та часть базы данных, которая считывается данной транзакцией, называется множеством чтения этой транзакции, а та часть базы данных, которая изменяется данной транзакцией, называется множеством записывания этой транзакции. Две транзакции называются конфликтующими, если множество чтения или множество записи одной транзакции пересекается с множеством записи другой. В системах, которые используют методы блокирования, транзакции перед выполнением блокируют свои множества записи и чтения, поэтому в этих системах конфликтующие транзакции никогда не выполняются одновременно. Однако не всегда одновременное выполнение конфликтующих транзакций приводит к расписанию, не являющемуся П - расписанием. Можно было бы получить определенные выгоды, если бы можно было определять, когда для выполнения конфликтующих транзакций требуется синхронизация, а когда нет. Применение метода анализа графов конфликтов позволяет осуществить эти действия, но такой анализ требует слишком много времени и не может применяться во время выполнения транзакций. Поэтому выбран другой способ применения этого метода. [51]
Для транзакции, не зафиксированной к моменту отказа системы, должны быть аннулированы все изменения, которые она сделала в базе данных. [52]
Впоследствии транзакция может заблокировать узел только тогда, когда она осуществляет блокировку для большинства его предков. [53]
Когда транзакция удерживает слишком много страничных блокировок, SQL-сервер принимает решение блокировать целую таблицу. Это называется повышением блокировки; данная тема рассмотрена более подробно в разделе, посвященном конфигурации блокировок. [54]