ВВЕДЕНИЕ СООТВЕТСТВИЯ

  • При управлении параллелизмом многие транзакции, выполняемые одновременно или за один раз, следуют за чтением или записью транзакций.
  • Но конфликты или ошибки возникают из-за системы с несколькими пользователями. Чтобы избежать этого конфликта, используется управление параллелизмом. Это помогает убедиться, что база данных выполняется одновременно, без нарушения данных.

ПРОТОКОЛЫ КОНТРОЛЯ СООТВЕТСТВИЯ

1. Протокол на основе блокировки

2. Протокол двухфазной блокировки.

1. Протокол на основе блокировки: -

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

Здесь есть два типа блокировки: -

1. Общая блокировка: -

  • Он также известен как блокировка только для чтения. Он позволяет пользователю только читать элемент данных, но не обновлять его.
  • Эта блокировка используется двумя транзакциями.
  • Представлен S-образным замком.

2. Эксклюзивная блокировка: -

  • Он также известен как блокировка чтения или записи. Это позволяет пользователю как читать, так и записывать элемент данных.
  • Он представлен замком - x.

2. Протокол двухфазной блокировки: -

  • Двухфазная синхронизация также известна как 2PL или P2L.
  • В этом типе протокола блокировки транзакция должна получить блокировку после того, как она освободит одну из своих блокировок.
  • Этот протокол делит этап выполнения транзакции на три части.
  1. Первый этап: - Когда транзакция начинает выполняться, требуется разрешение на блокировку.
  2. Второй этап: - На этом этапе транзакция получает все необходимые блокировки. Когда транзакция освобождает свою первую блокировку, начинается третья фаза.
  3. Третий этап: - На этом этапе транзакция освобождает свои блокировки и не может получить какую-либо блокировку.

Есть два 2PL: -

1. Фаза роста: -

В этом случае для элемента данных может быть получена новая блокировка, но не снимается никакая блокировка.

2. Фаза усадки: -

В этой транзакции можно снять существующую блокировку, но нельзя получить новую блокировку.

Спасибо