Модель базы данных ACID

ACID защищает данные вашей базы данных

ACID-модель проектирования баз данных является одним из старейших и наиболее важных понятий теории баз данных. Он выдвигает четыре цели, к которым должна стремиться каждая система управления базами данных: атомарность, согласованность, изоляция и долговечность. Реляционная база данных, которая не соответствует ни одной из этих четырех целей, не может считаться надежной. База данных, которая обладает этими характеристиками, считается ACID-совместимой.

КИСЛОТА Определена

Давайте на минутку рассмотрим каждую из этих характеристик в деталях:

  • Атомность утверждает, что изменения базы данных должны следовать правилу «все или ничего». Каждая транзакция называется «атомарной». Если происходит сбой одной части транзакции, происходит сбой всей транзакции. Очень важно, чтобы система управления базами данных поддерживала атомарную природу транзакций, несмотря на любые ошибки СУБД, операционной системы или оборудования.
  • Согласованность гласит, что в базу данных будут записываться только действительные данные. Если по какой-либо причине выполняется транзакция, которая нарушает правила согласованности базы данных, вся транзакция будет откатываться, и база данных будет восстановлена ​​в состояние, соответствующее этим правилам. С другой стороны, если транзакция успешно выполняется, она переводит базу данных из одного состояния, которое соответствует правилам, в другое состояние, которое также соответствует правилам.
  • Изоляция требует, чтобы несколько транзакций, происходящих одновременно, не влияли на выполнение друг друга. Например, если Джо выполняет транзакцию для базы данных в то же время, когда Мэри выполняет другую транзакцию, обе транзакции должны работать с базой данных изолированно. База данных должна либо выполнить всю транзакцию Джо перед выполнением Мэри, либо наоборот. Это препятствует тому, чтобы транзакция Джо считывала промежуточные данные, полученные как побочный эффект части транзакции Мэри, которая в конечном итоге не будет передана в базу данных. Обратите внимание, что свойство изоляции не гарантирует, какая транзакция будет выполняться первой – просто транзакции не будут мешать друг другу
  • Долговечность гарантирует, что любая транзакция в базе данных не будет потеряна. Долговечность обеспечивается за счет использования резервных копий базы данных и журналов транзакций, которые облегчают восстановление зафиксированных транзакций, несмотря на любые последующие сбои программного или аппаратного обеспечения.

Как ACID работает на практике

Администраторы базы данных используют несколько стратегий для обеспечения ACID.

Одним из способов обеспечения атомарности и долговечности является запись в журнал с опережением записи (WAL), в которой любая информация о транзакции сначала записывается в журнал, который включает в себя как информацию о восстановлении, так и отмене. Это гарантирует, что при любом сбое базы данных база данных может проверить журнал и сравнить его содержимое с состоянием базы данных.

Другой метод, используемый для определения атомарности и долговечности, – это shadow-paging, , в котором теневая страница создается при изменении данных. Обновления запроса записываются на теневую страницу, а не на реальные данные в базе данных. Сама база данных изменяется только после завершения редактирования.

Другая стратегия называется протоколом двухфазной фиксации , особенно полезна в системах распределенных баз данных. Этот протокол разделяет запрос на изменение данных на две фазы: фаза фиксации запроса и фаза фиксации. На этапе запроса все СУБД в сети, затронутые транзакцией, должны подтвердить, что они ее получили, и имеют возможность выполнить транзакцию. Как только подтверждение получено от всех соответствующих СУБД, завершается фаза фиксации, на которой данные фактически изменяются.

Оцените статью
Solutics.ru
Добавить комментарий