ACID и транзакции базы данных?



какова связь между ACID и транзакцией базы данных?



дает ли ACID транзакцию базы данных или это одно и то же?



может кто-нибудь просветить эту тему.

877   9  

9 ответов:

кислоты - это набор свойств, которые вы хотите применить при изменении базы данных.

  • атомарность
  • последовательность
  • изоляции
  • долговечность

транзакция-это набор связанных изменений, который используется для достижения некоторых свойств кислоты. Транзакции-это инструменты для достижения свойств кислоты.

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

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

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

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

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

СУБД - это (если она хороша) особый вид механизма обработки транзакций, который предоставляет, как правило, в очень большой степени, но не совсем полностью, эти свойства.

но существуют и другие движки, которые также могут предоставлять эти свойства. Тип программного обеспечения, который раньше назывался "мониторы TP", является примером (в настоящее время эквивалентом в основном являются веб-серверы).

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

  • атомарность: печатается весь документ или вообще ничего
  • согласованность: в конце транзакции подача бумаги расположена в верхней части страницы
  • изоляция: никакие два документа не перепутаются во время печати
  • долговечность: принтер может гарантия, что это не была "печать" с пустыми картриджами.

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

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

атомарность: либо зафиксировать все, либо ничего.

согласованность: сделайте согласованную запись с точки зрения проверки всех правил и ограничений транзакции.

изоляция: убедитесь, что две транзакции не знают друг о друге.

долговечность: совершенные данные хранятся навсегда. ссылка взята из этой статьи:

Я немного изменил пример принтера, чтобы сделать его более объяснимым

1 документ, который содержал 2 страницы, был отправлен на принтер

сделки - документ отправлен на принтер

  • атомарность - принтер печатает 2 страницы документа или нет
  • последовательность - принтер печатает половину страницы и страницы застревает. Принтер перезагружается и печатает 2 страницы будет все содержимое
  • изоляции - в то время как было слишком много отпечатков в процессе - принтер печатает правильное содержание документа
  • долговечность - пока печатающ, была сила вырезать - принтер снова печатает документы без ошибок

надеюсь, что это поможет кому-то получить представление о концепции кислоты

цитата Википедия:

ACID (атомарность, согласованность, изоляция, долговечность) - это набор свойств, которые гарантируют надежную обработку транзакций базы данных.

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

[серый] ввел свойства ACD для транзакции в 1981 году. В 1983 году [Haerder] добавил свойство изоляции. На мой взгляд, свойства ACD будут иметь более полезный набор свойств для обсуждения. Одна интерпретация атомарности (что транзакция должна быть атомарной, как видно из любого клиента в любое время) фактически подразумевает свойство изоляции. Свойство "изоляция" полезно, когда транзакция не изолированный; когда свойство изоляции расслаблено. В ANSI SQL говорит: Если уровень изоляции слабее, то сериализуемый. Но когда уровень изоляции сериализуем, свойство изоляции на самом деле не представляет интереса.

Я написал больше об этом в блоге: "кислота не имеет смысла".

http://blog.franslundberg.com/2013/12/acid-does-not-make-sense.html

[Серый] Концепция Сделки, Джим Грей, 1981. http://research.microsoft.com/en-us/um/people/gray/papers/theTransactionConcept.pdf

[Haerder] принципы транзакционно-ориентированного восстановления баз данных, Haerder and Reuter, 1983. http://www.stanford.edu/class/cs340v/papers/recovery.pdf

какова связь между ACID и транзакцией базы данных?

в реляционной базе данных каждая инструкция SQL должна выполняться в области транзакции.

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

неявная транзакция начинается до выполнения инструкции и заканчивается (фиксация или откат) после оператор выполняется. В режиме неявных транзакций широко известен как автофиксации.

Как поясняется в в этой статье, транзакция-это набор операций чтения/записи, которые выполняются успешно только в том случае, если все содержащиеся операции выполняются успешно.

Atomicity

по сути транзакция характеризуется четырьмя свойствами (обычно называют Кислота):

  • атомарность
  • последовательность
  • изоляции
  • долговечность

дает ли ACID транзакцию базы данных или это одно и то же?

для системы реляционных баз данных это верно, поскольку стандарт SQL указывает, что транзакция должна предоставлять гарантии ACID:

атомарность

атомарность принимает отдельные операции и превращает их в блок работы "Все или ничего", успешный тогда и только тогда, когда все содержащиеся операции успешны.

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

последовательность

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

изоляции

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

долговечность

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

enter image description here

для получения более подробной информации о долговечности и журналов, проверить этот статья.

свойства ACID транзакций В контексте обработки транзакций аббревиатура ACID относится к четырем ключевым свойствам транзакции: атомарность, согласованность, изоляция и долговечность.

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

транзакция может быть определена как набор задач, которые рассматриваются как минимальная единица обработки. Каждая минимальная единица обработки не может быть разделен.

все транзакции должны содержать четыре свойства, которые обычно известны как свойства кислоты. то есть кислоты-это группа свойств любой сделки.

  • атомарность :
  • последовательность
  • изоляции
  • долговечность

Comments

    Ничего не найдено.