Ver código fonte

Обновить 'Лекции/ПМ3.1/3.2.300_Экранирование/Рябошапченко.md'

u21-25ryaboshapch 8 meses atrás
pai
commit
40cbc4048c

+ 13 - 4
Лекции/ПМ3.1/3.2.300_Экранирование/Рябошапченко.md

@@ -1,8 +1,8 @@
-# Экранирование
+# Экранирование
 
 **Введение**
 
-TZI - это подход к управлению транзакциями, который позволяет нескольким транзакциям одновременно работать с данными, не блокируя доступ к ним. Это обеспечивает более высокую производительность и масштабируемость по сравнению с традиционными подходами, основанными на блокировках.
+Экранирование является важной техникой, используемой в системах транзакций без блокировок (TZI) для предотвращения или исправления конфликтов между транзакциями, которые одновременно работают с данными. В данной лекции мы рассмотрим подходы к экранированию, их преимущества и недостатки, а также примеры применения этих подходов в различных сценариях.
 
 **Проблема несовместимости**
 
@@ -22,7 +22,7 @@ TZI - это подход к управлению транзакциями, ко
 
 **Предотвращающее экранирование:** Предположим, у нас есть банковский счет, и две транзакции хотят снять с него деньги. Вместо того, чтобы позволить им одновременно снять деньги, мы можем установить правило, согласно которому только одна транзакция может снять деньги с этого счета в любой момент времени. Это предотвращает конфликты, но может привести к блокировке, если много транзакций хотят снять деньги одновременно.
 
-**Исправляющее экранирование: Предположим, у нас есть система бронирования билетов, и две транзакции хотят забронировать последний билет на один и тот же рейс. Если обе транзакции одновременно пытаются забронировать билет, одна из них может успешно забронировать билет, а другая может получить сообщение об ошибке. Затем вторая транзакция может попробовать забронировать другой билет на другой рейс.
+**Исправляющее экранирование:** Предположим, у нас есть система бронирования билетов, и две транзакции хотят забронировать последний билет на один и тот же рейс. Если обе транзакции одновременно пытаются забронировать билет, одна из них может успешно забронировать билет, а другая может получить сообщение об ошибке. Затем вторая транзакция может попробовать забронировать другой билет на другой рейс.
 
 **Изоляция и согласованность**
 
@@ -31,18 +31,27 @@ TZI - это подход к управлению транзакциями, ко
 Существует несколько уровней изоляции, определенных стандартом изоляции транзакций ANSI (ACID), которые гарантируют различную степень изоляции:
 
 Чтение зафиксированных данных (Read Uncommitted): Самый низкий уровень изоляции, который позволяет транзакциям читать незафиксированные данные других транзакций. Это может привести к неожидаемым результатам, таким как "грязное чтение".
+
 Чтение зафиксированных данных с повторяемостью чтения (Read Committed): Этот уровень изоляции гарантирует, что транзакции видят только зафиксированные данные, но может привести к повторяющемуся чтению, когда одна и та же транзакция читает одни и те же данные несколько раз и получает разные результаты.
+
 Повторяемость чтения (Repeatable Read): Этот уровень изоляции гарантирует, что транзакция всегда видит одни и те же данные при повторном чтении, но может позволить другим транзакциям вставлять новые строки, которые транзакция еще не видела.
-Сериализуемость (Serializable): Это最高级别 изоляции, который гарантирует, что все транзакции видят одни и те же данные в том же порядке, что и если бы они выполнялись одна за другой. Это обеспечивает самую высокую степень согласованности данных, но может привести к снижению производительности из-за более жестких ограничений на одновременный доступ к данным.
+
+Сериализуемость (Serializable): Это изоляции, который гарантирует, что все транзакции видят одни и те же данные в том же порядке, что и если бы они выполнялись одна за другой. Это обеспечивает самую высокую степень согласованности данных, но может привести к снижению производительности из-за более жестких ограничений на одновременный доступ к данным.
+
 Согласованность гарантирует, что транзакции видят согласованное состояние данных. Это означает, что транзакции не должны видеть недопустимых состояний данных, таких как отрицательный баланс банковского счета. Существует несколько уровней согласованности, в том числе:
 
 Согласованность по ключу (Key-Shared): Этот уровень согласованности гарантирует, что транзакции видят согласованные данные для каждого уникального ключа.
+
 Согласованность по записи (Row-Shared): Этот уровень согласованности гарантирует, что транзакции видят согласованные данные для каждой записи.
+
 Согласованность по странице (Page-Shared): Этот уровень согласованности гарантирует, что транзакции видят согласованные данные для каждой страницы.
+
 Согласованность по таблице (Table-Shared): Этот уровень согласованности гарантирует, что транзакции видят согласованные данные для всей таблицы.
+
 Изоляция и согласованность тесно связаны и вместе гарантируют, что транзакции работают независимо друг от друга и видят согласованное состояние данных. Правильный выбор уровней изоляции и согласованности зависит от конкретной ситуации и может повлиять на производительность и согласованность системы
 
 **Вывод**
+
 Экранирование является важной техникой в системах TZI, которая позволяет предотвращать или исправлять конфликты между транзакциями. Правильный выбор подхода к экранированию зависит от конкретной ситуации и может повлиять на производительность и согласованность системы.
 
 **Литература:**