ACID ги заштитува податоците од вашата база на податоци
ACID модел на дизајн на бази на податоци е еден од најстарите и најважните концепти на теоријата на бази на податоци. Таа поставува четири цели кои секој систем за управување со бази на податоци мора да се стреми да постигне: атомска, конзистентност, изолација и издржливост. Релациона база на податоци која не успеа да ги исполни ниту една од овие четири цели не може да се смета за сигурна. Базата на податоци што ги поседува овие карактеристики се смета за компатибилна со ACID.
Дефиниран ACID
Да земеме еден момент за детално да ги испитаме овие карактеристики:
- Атомството вели дека модификациите на базата на податоци мора да го следат правилото "сите или ништо". Се вели дека секоја трансакција е "атомска". Ако еден дел од трансакцијата не успее, целата трансакција не успее. Од клучно значење е системот за управување со бази на податоци да ја одржува атомската природа на трансакциите и покрај било кој DBMS, оперативен систем или хардверски грешки.
- Конзистентност наведува дека само валидни податоци ќе бидат запишани во базата на податоци. Ако поради некоја причина се изврши трансакција која ги прекршува правилата за конзистентност на базата на податоци, целата трансакција ќе се врати назад, а базата на податоци ќе биде вратена во држава во согласност со тие правила. Од друга страна, ако трансакцијата успешно се изврши, таа ќе ја преземе базата на податоци од една држава која е во согласност со правилата на друга држава која исто така е во согласност со правилата.
- Изолацијата бара повеќекратни трансакции кои се случуваат во исто време да не влијаат на извршувањето на другиот. На пример, ако Џо издаде трансакција против базата на податоци во исто време кога Марија издава друга трансакција, двете трансакции треба да работат на базата на податоци на изолиран начин. Базата на податоци треба да ја изврши целата трансакција на Џо пред да ја изврши Марија, или обратно. Ова ја спречува трансакцијата на Џо да ги чита промените податоци произведени како несакан ефект на дел од трансакцијата на Марија која на крајот нема да биде посветена на базата на податоци. Имајте на ум дека имотот за изолација не гарантира која трансакција ќе се изврши прво - само дека трансакциите нема да се мешаат едни со други
- Трајност гарантира дека секоја трансакција посветена на базата на податоци нема да биде изгубена. Одржливоста е обезбедена преку употреба на бекап на база на податоци и дневници на трансакции кои го олеснуваат враќањето на извршените трансакции и покрај било какви последователни неуспеси во софтверот или хардверот.
Како работи киселина во практика
Администраторите на бази на податоци користат неколку стратегии за спроведување на ACID.
Едниот што се користи за да се спроведе атомска и издржливост е запишувањето пред запишување (WAL) во кое секој детал за трансакција првпат е напишан во дневник кој ги вклучува и повторите и вратите информации. Ова осигурува дека, со оглед на неуспех на базата на податоци од било кој вид, базата на податоци може да провери најавите и споредба на неговата содржина со состојбата на базата на податоци.
Друг метод кој се користи за решавање на атомската и издржливоста е сенка-страничење во која се создава страница со сенки кога податоците се менуваат. Ажурирањата на барањето се запишани на страната на сенката, наместо на вистинските податоци во базата на податоци. Самата база е модифицирана само кога уредувањето е завршено.
Друга стратегија се нарекува двофазен протокол за извршување , особено корисен во системите со дистрибуирани бази на податоци. Овој протокол го одделува барањето за модифицирање на податоците во две фази: фаза на барање за извршување и фаза на извршување. Во фазата на барање, сите DBMS-ови на мрежа што се засегнати од трансакцијата мора да потврдат дека го примиле и да имаат капацитет да ја извршат трансакцијата. Откако ќе се добие потврда од сите релевантни DBMS, завршува фазата на извршување во која податоците се всушност модифицирани.