Отказ от ACID в пользу BASE в области разработки баз данных

Реляционные базы данных спроектированы с учетом надежности и согласованности. Разработчики, которые разработали их, сосредоточились на транзакционной модели, которая гарантирует, что четыре принципа модели ACID всегда будут сохранены. Однако появление новой неструктурированной модели базы данных ставит ACID с ног на голову. Модель базы данных NoSQL избегает высокоструктурированной реляционной модели в пользу гибкого подхода ключ/хранилище значений. Этот неструктурированный подход к данным требует альтернативы модели ACID: модель BASE.

Основные принципы модели ACID

Существует четыре основных принципа модели ACID:

  • атомарность транзакций гарантирует, что каждая транзакция базы данных является единым блоком, который использует подход «все или ничего» к выполнению. Если какой-либо оператор в транзакции терпит неудачу, вся транзакция откатывается.
  • Реляционные базы данных также обеспечивают согласованность каждой транзакции с бизнес-правилами базы данных. Если какой-либо элемент атомарной транзакции нарушит целостность базы данных, вся транзакция завершится неудачно.
  • Механизм базы данных обеспечивает изоляцию между несколькими транзакциями, происходящими в одно и то же время. Каждая транзакция происходит до или после каждой другой транзакции, и представление базы данных, которое транзакция видит в своем начале, изменяется только самой транзакцией до ее завершения. Ни одна транзакция не должна видеть промежуточный продукт другой транзакции.
  • Окончательный принцип ACID, долговечность , гарантирует, что после фиксации транзакции в базе данных она постоянно сохраняется с помощью резервных копий и журналов транзакций. В случае сбоя эти механизмы могут использоваться для восстановления зафиксированных транзакций.

Основные принципы BASE

С другой стороны, базы данных NoSQL охватывают ситуации, когда модель ACID является избыточной или фактически препятствует работе базы данных. Вместо этого NoSQL полагается на более мягкую модель, известную, соответственно, как модель BASE. Эта модель учитывает гибкость, предлагаемую NoSQL, и аналогичные подходы к управлению и хранению неструктурированных данных. BASE состоит из трех принципов:

  • Базовая доступность . Подход к базе данных NoSQL фокусируется на доступности данных даже при наличии множества сбоев. Это достигается путем использования распределенного подхода к управлению базами данных. Вместо того чтобы поддерживать одно большое хранилище данных и сосредоточиться на отказоустойчивости этого хранилища, базы данных NoSQL распределяют данные по многим системам хранения с высокой степенью репликации. В маловероятном случае, если сбой нарушает доступ к сегменту данных, это не обязательно приводит к полному отключению базы данных.
  • Мягкое состояние . Базы данных BASE почти полностью отказываются от требований согласованности модели ACID. Одна из основных концепций, лежащих в основе BASE, заключается в том, что согласованность данных является проблемой разработчика и не должна обрабатываться базой данных.
  • Возможная последовательность . Единственное требование, которое базы данных NoSQL имеют в отношении согласованности, – это требование, чтобы в какой-то момент в будущем данные конвергировались в согласованное состояние. Однако никаких гарантий относительно того, когда это произойдет, не дается. Это полное отклонение от требования немедленной согласованности ACID, которое запрещает выполнение транзакции до тех пор, пока предыдущая транзакция не будет завершена и база данных не приблизится к согласованному состоянию.

Модель BASE не подходит для каждой ситуации, но она, безусловно, является гибкой альтернативой модели ACID для баз данных, которые не требуют строгого соблюдения реляционной модели.

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