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