Skip to main content

Моделът ACID за системи за управление на бази данни

Транзакции в базите данни (Юни 2026)

Транзакции в базите данни (Юни 2026)
Anonim

Моделът ACID на дизайна на бази данни е една от най-старите и най-важните концепции на теорията на базите данни. Тя поставя четири цели, които всяка система за управление на бази данни трябва да се стреми да постигне: атомност, последователност, изолация и трайност. Релационна база данни, която не отговаря на тези четири цели, не може да се счита за надеждна. Базата данни, която притежава тези характеристики, се счита за съвместима с ACID.

Определен с ACID

Нека да отделим малко време, за да разгледаме подробно всяка една от тези характеристики:

  • атомност заявява, че модификациите на базата данни трябва да следват правилото "всичко или нищо". Всяка транзакция се казва "атомна". Ако една част от транзакцията се провали, цялата транзакция се провали. От съществено значение е системата за управление на бази данни да поддържа атомния характер на транзакциите независимо от СБДД, операционната система или хардуерната повреда.
  • съгласуваност че само валидни данни ще бъдат записани в базата данни. Ако по някаква причина се изпълни транзакция, която нарушава правилата за съответствие на базата данни, цялата транзакция ще бъде върната обратно и базата данни ще бъде възстановена в съответствие с тези правила. От друга страна, ако дадена транзакция успешно се изпълни, тя ще вземе базата данни от една държава, която е в съответствие с правилата, с друга държава, която също е в съответствие с правилата.
  • изолация изисква множество транзакции, настъпили едновременно, да не влияят взаимно върху изпълнението. Например, ако Джо издава транзакция срещу база данни в същото време, когато Мария издава различна транзакция, двете транзакции трябва да работят в базата данни по един изолиран начин. Базата данни трябва или да извърши цялата сделка на Джо преди да изпълни Mary's, или обратното. Това предотвратява транзакцията на Джо да чете междинни данни, получени като страничен ефект от част от транзакцията на Мери, която в крайна сметка няма да бъде ангажирана с базата данни. Обърнете внимание, че собствеността на изолацията не гарантира коя транзакция ще се изпълни първо - само че транзакциите няма да се намесват помежду си
  • трайност гарантира, че всяка транзакция, извършена към базата данни, няма да бъде загубена. Устойчивостта се осигурява чрез използването на резервни копия на базата данни и регистрационни файлове на транзакциите, които улесняват възстановяването на ангажираните транзакции въпреки всички последващи откази на софтуер или хардуер.

Как действа ACID в практиката

Администраторите на бази данни използват няколко стратегии за прилагане на ACID.

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

Друг метод, използван за адресиране на атомността и трайността, е сянка пейджинг, в който се създава страница на сянка, когато данните се променят. Актуализациите на заявката се записват в сянката, а не в реалните данни в базата данни. Самата база данни се променя само при завършване на редакцията.

Друга стратегия се нарича двуфазов ангажимент протокол, особено полезен в системите за разпределена база данни. Този протокол разделя заявката за промяна на данните на две фази: фаза на заявка за ангажимент и фаза на ангажиране. Във фазата на искане всички СУБД в дадена мрежа, които са засегнати от транзакцията, трябва да потвърдят, че са я получили и имат капацитета да изпълняват транзакцията. След като бъде получено потвърждение от всички съответни СУБД, завършва фазата на предаване, в която данните всъщност се променят.