Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

ACID(Atomicity — Атомарность,Consistency — Согласованность, Изолированность,Durability — Стойкость) - требования к транзакционной системе и BASE кратко

Лекция



Привет, Вы узнаете о том , что такое acid, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое acid, atomicity, атомарность, consistency, согласованность, изолированность, durability, стойкость, транзакционная система, base , настоятельно рекомендую прочитать все из категории Базы данных, знаний и хранилища данных. Big data, СУБД и SQL и noSQL.

В информатике акроним ACID описывает требования к транзакционной системе (например, к СУБД), обеспечивающие наиболее надежную и предсказуемую ее работу. Требования ACID были в основном сформулированы в конце 70-х годов Джимом Греем.

Транзакции появились в 70-ых годах и были представлены в качестве инструмента базы данных, позволяющего решить проблемы отказоустойчивости и доступа к данным в конкурентной среде. Затем был сформулирован ряд свойств, которыми должна обладать транзакция для того, чтобы выполнять поставленные перед ней задачи, а заглавные буквы этих свойств, поставленные в нужном порядке, составили красивую аббревиатуру ACID.

Период времени, в течении которого происходили данные события, характеризовался отсутствием высоких нагрузок, Интернета и проблем с производительностью, для решения которых можно было обойтись лишь методами вертикального масштабирования. Впоследствии, в начале 2000-ых возник тренд на NoSQL базы данных, появилась аббревиатура BASE, которая фактически противопоставлялась классическому ACID (ACID — кислота, BASE — щелочь). Сейчас возникает обратный тренд на ACID. Даже NoSQL-ая MongoDB стала поддерживать ACID.

Давайте разберемся с тем, что означает данная аббревиатура и насколько много маркетинга в ней.

ACID представляет 4 свойства:

A = atomicity ( атомарность )
C = consistency (консистентность или целостность)
I = isolation (изоляция)
D = durability (надежность)

Требования ACID

ACID(Atomicity — Атомарность,Consistency — Согласованность, Изолированность,Durability — Стойкость)  - требования к транзакционной системе и BASE

Atomicity — Атомарность

Атомарность гарантирует, что никакая транзакция не будет зафиксирована в системе частично. Будут либо выполнены все ее подоперации, либо не выполнено ни одной. Поскольку на практике невозможно одновременно и атомарно выполнить всю последовательность операций внутри транзакции, вводится понятие «отката» (rollback): если транзакцию не удается полностью завершить, результаты всех ее до сих пор произведенных действий будут отменены и система вернется во «внешне исходное» состояние — со стороны будет казаться, что транзакции и не было. (Естественно, счетчики, индексы и другие внутренние структуры могут измениться, но, если СУБД запрограммирована без ошибок, это не повлияет на внешнее ее поведение.)

Consistency — согласованность данных

Транзакция, достигающая своего нормального завершения (EOT — end of transaction, завершение транзакции) и, тем самым, фиксирующая свои результаты, сохраняет согласованность базы данных. Об этом говорит сайт https://intellect.icu . Другими словами, каждая успешная транзакция по определению фиксирует только допустимые результаты. Это условие является необходимым для поддержки четвертого свойства.

Согласованность является более широким понятием. Например, в банковской системе может существовать требование равенства суммы, списываемой с одного счета, сумме, зачисляемой на другой. Это бизнес-правило и оно не может быть гарантировано только проверками целостности, его должны соблюсти программисты при написании кода транзакций. Если какая-либо транзакция произведет списание, но не произведет зачисления, то система останется в некорректном состоянии и свойство согласованности будет нарушено.

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

Isolation — изолированность

Во время выполнения транзакции параллельные транзакции не должны оказывать влияния на ее результат. Изолированность — требование дорогое, поэтому в реальных БД существуют режимы, не полностью изолирующие транзакцию (уровни изолированности Repeatable Read и ниже).

Durability — стойкость

Независимо от проблем на нижних уровнях (к примеру, обесточивание системы или сбои в оборудовании) изменения, сделанные успешно завершенной транзакцией, должны остаться сохраненными после возвращения системы в работу. Другими словами, если пользователь получил подтверждение от системы, что транзакция выполнена, он может быть уверен, что сделанные им изменения не будут отменены из-за какого-либо сбоя.

Свойство ACID в СУБД с примером:

Ниже приведен пример свойства ACID в СУБД:

 ACID(Atomicity — Атомарность,Consistency — Согласованность, Изолированность,Durability — Стойкость)  - требования к транзакционной системе и BASE

Если обе транзакции отправляются вместе, нет гарантии, что транзакция 1 будет выполнена до транзакции 2 или наоборот. Независимо от порядка, результат должен быть таким, как если бы транзакции выполнялись последовательно одна за другой.

Основные черты NOSQL (BASE аналог ACID)

Традиционные СУБД ориентируются на требования ACID к транзакционной системе: атомарность (англ. atomicity), согласованность (англ. consistency), изолированность (англ. isolation), надежность (англ. durability), тогда как в NoSQL вместо ACID может рассматриваться набор свойств BASE :

  • базовая доступность (англ. basic availability) — каждый запрос гарантированно завершается (успешно или безуспешно).
  • гибкое состояние (англ. soft state) — состояние системы может изменяться со временем, даже без ввода новых данных, для достижения согласования данных.
  • согласованность в конечном счете (англ. eventual consistency) — данные могут быть некоторое время рассогласованы, но приходят к согласованию через некоторое время.

Термин «BASE» был предложен Эриком Брюером, автором теоремы CAP, согласно которой в распределенных вычислениях можно обеспечить только два из трех свойств: согласованность данных, доступность или устойчивость к разделению .

Разумеется, системы на основе BASE не могут использоваться в любых приложениях: для функционирования биржевых и банковских систем использование транзакций является необходимостью. В то же время, свойства ACID, какими бы желанными они ни были, практически невозможно обеспечить в системах с многомиллионной веб-аудиторией, вроде amazon.com . Таким образом, проектировщики NoSQL-систем жертвуют согласованностью данных ради достижения двух других свойств из теоремы CAP . Некоторые СУБД, например, Riak, позволяют настраивать требуемые характеристики доступности-согласованности даже для отдельных запросов путем задания количества узлов, необходимых для подтверждения успеха транзакции.

Решения NoSQL отличаются не только проектированием с учетом масштабирования. Другими характерными чертами NoSQL-решений являются :

  • Применение различных типов хранилищ .
  • Возможность разработки базы данных без задания схемы .
  • Линейная масштабируемость (добавление процессоров увеличивает производительность) .
  • Инновационность: «не только SQL» открывает много возможностей для хранения и обработки данных .

Вау!! 😲 Ты еще не читал? Это зря!

Данная статья про acid подтверждают значимость применения современных методик для изучения данных проблем. Надеюсь, что теперь ты понял что такое acid, atomicity, атомарность, consistency, согласованность, изолированность, durability, стойкость, транзакционная система, base и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Базы данных, знаний и хранилища данных. Big data, СУБД и SQL и noSQL

Из статьи мы узнали кратко, но содержательно про acid
создано: 2022-02-21
обновлено: 2024-11-13
6



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Базы данных, знаний и хранилища данных. Big data, СУБД и SQL и noSQL

Термины: Базы данных, знаний и хранилища данных. Big data, СУБД и SQL и noSQL