Принципы ACID
(продолжение предыдущего поста)
ACID — это набор свойств, обеспечивающих надёжность и целостность данных при обработке транзакций в системах управления базами данных (СУБД). Аббревиатура включает четыре ключевых принципа: Atomicity (атомарность), Consistency (согласованность), Isolation (изолированность) и Durability (долговечность).
Соблюдение принципов ACID гарантирует надёжность, целостность и доступность данных в СУБД, что критически важно для финансовых, медицинских и других транзакционных систем.
1. Atomicity (Атомарность)
- Суть: каждая транзакция — единый неделимый блок операций, который либо выполняется полностью, либо не выполняется вовсе.
- Пример: при переводе денег с одного счёта на другой все шаги (проверка баланса, списание средств, зачисление) либо завершаются, либо отменяются, если что-то пошло не так.
- Механизм: СУБД использует логирование и откат транзакций для поддержания атомарности.
2. Consistency (Согласованность)
- Суть: каждая транзакция должна соблюдать правила и ограничения базы данных, поддерживая её целостность. Благодаря чему обеспечивается корректное состояние данных после транзакции.
- Пример: если в базе данных есть связь «клиент — заказ», транзакция не сможет создать заказ для несуществующего клиента.
- Механизм: ограничения целостности (уникальность, ссылочная целостность) гарантируют согласованность.
3. Isolation (Изолированность)
- Суть: параллельные транзакции выполняются независимо друг от друга, их промежуточные результаты невидимы до завершения.
- Пример: если два пользователя одновременно обновляют одну запись, изменения одного не повлияют на другого до фиксации транзакции.
- Механизм: СУБД использует блокировки и уровни изоляции (например, Serializable) для предотвращения конфликтов.
4. Durability (Долговечность)
- Суть: результаты завершённых транзакций сохраняются в энергонезависимой памяти и не теряются даже при сбоях системы. Данные остаются сохранёнными, несмотря на возможные ошибки.
- Пример: после подтверждения покупки в интернет-магазине данные о заказе останутся в базе, даже если произойдёт сбой сервера.
- Механизм: записи транзакций фиксируются в журнале (log) и переносятся в постоянное хранилище.
Post #3069
1.98K
- 👍 8
- 🔥 5
- ❤ 1
- 🥰 1
- 🗿 1