ACID
1️⃣ Как кратко ответить
ACID — это набор свойств, обеспечивающих надежность транзакций в системах управления базами данных. Он включает атомарность, согласованность, изолированность и долговечность. Атомарность гарантирует, что транзакция либо полностью выполнится, либо не выполнится вовсе. Согласованность обеспечивает переход базы данных из одного корректного состояния в другое. Изолированность предотвращает влияние параллельных транзакций друг на друга. Долговечность гарантирует сохранение результатов транзакции даже в случае сбоя системы.
2️⃣ Подробное объяснение темы
ACID — это акроним, описывающий четыре ключевых свойства, которые должны быть обеспечены в транзакциях баз данных для гарантии их надежности и корректности. Эти свойства важны для обеспечения целостности данных и предотвращения ошибок в многопользовательских системах.
Атомарность (Atomicity)
Атомарность означает, что транзакция рассматривается как единое целое. Она либо полностью выполняется, либо не выполняется вовсе. Если в процессе выполнения транзакции происходит ошибка, все изменения, сделанные в рамках этой транзакции, должны быть отменены. Это похоже на банковский перевод: если деньги списаны с одного счета, они должны быть зачислены на другой. Если что-то пошло не так, операция должна быть отменена.
Пример:
BEGIN TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;
UPDATE accounts SET balance = balance + 100 WHERE account_id = 2;
COMMIT;
BEGIN TRANSACTION;— начало транзакции.UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;— списание средств с одного счета.UPDATE accounts SET balance = balance + 100 WHERE account_id = 2;— зачисление средств на другой счет.COMMIT;— фиксация изменений. Если что-то пойдет не так до этой точки, изменения будут отменены.
Согласованность (Consistency)
Согласованность гарантирует, что транзакция переводит базу данных из одного корректного состояния в другое. Это означает, что все правила и ограничения базы данных соблюдаются до и после выполнения транзакции. Например, если в базе данных есть ограничение на уникальность, оно должно соблюдаться всегда.
Изолированность (Isolation)
Изолированность обеспечивает независимость выполнения транзакций. Это свойство предотвращает влияние параллельных транзакций друг на друга. Уровень изолированности может варьироваться, от полного отсутствия изолированности до полной изолированности, что может влиять на производительность.
Пример:
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;— установка уровня изолированности, при котором транзакции выполняются последовательно, как если бы они были выполнены одна за другой.
Долговечность (Durability)
Долговечность гарантирует, что результаты завершенной транзакции сохраняются даже в случае сбоя системы. Это достигается за счет записи изменений на постоянное хранилище, такое как жесткий диск или SSD.
🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!
Подписаться