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

Согласованность

SQL Server обеспечивает также согласованность транзакций. Согласованность означает, что после окончания транзакции все данные остаются в согласованном состоянии (сохраняется целостность данных) – будь то успешно или неуспешно завершённая транзакция. Перед началом любой транзакции база данных должна быть в согласованном состоянии, а это означает поддержку целостности данных и правильность внутренних структур, таких как индексы B-деревьев и двунаправленные списки. После выполнения транзакции база данных тоже должна быть в согласованном состоянии – в новом состоянии для успешной транзакции или в том же состоянии, что и перед началом транзакции в случае неуспешного завершения.

Согласованность также является свойством в управлении транзакциями, которое поддерживается в SQL Server. Если данные являются согласованными, а в транзакциях поддерживается логическая согласованность и целостность данных, то SQL Server обеспечит согласованность данных после любой транзакции. Используя репликацию данных в распределённой среде, можно задавать различные уровни согласованности от конечной сходимости транзакций, т.е. скрытой согласованности, до непосредственной согласованности транзакций. Уровень согласованности будет зависеть от типа используемой репликации.

Изолированность

Изолированность означает, что каждая транзакция действует так же, как если бы она была единственной в системе; иными словами, модификации, выполняемые в одной транзакции, изолируются от модификаций, выполняемых в другой параллельно выполняемой транзакции. Тем самым на любую транзакцию не влияет никакое значение, изменяемое другой транзакцией, пока это изменение не будет зафиксировано. В случае неуспешной транзакции её модификации не будут оказывать влияния, поскольку будет выполнен откат (отмена) соответствующих изменений. SQL Server позволяет задавать уровень изолированности для транзакций. Характер изолируемости транзакций зависит от указанного уровня изолированности.

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

  • Read uncommitted (Чтение незафиксированных данных) – самый низкий уровень изолированности, на этом уровне транзакции изолированы только в такой степени, чтобы нельзя было читать физически поврежденные данные;

  • Read committed (Чтение фиксированных данных) – принятый по умолчанию уровень для SQL Server; на этом уровне разрешается чтение только фиксированных данных;

  • Repeatable read (Повторяемость чтения) – уровень, при котором чтение одной и той же строки или строк в транзакции даёт одинаковый результат – ока транзакция не завершена, никакие другие транзакции не могут модифицировать эти данные;

  • Serializable (Упорядочиваемость) – самый высокий уровень изолированности; транзакции полностью изолируются друг от друга; на этом уровне результаты параллельного выполнения транзакций для базы данных совпадают с последовательным выполнением тех же транзакций по очереди в каком-либо порядке.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]