ACID абараняе дадзеныя вашай базы дадзеных
Мадэль ACID праектавання базы дадзеных з'яўляецца адным з найстарэйшых і найбольш важных паняццяў тэорыі баз дадзеных. Ён устанаўлівае наперад чатыры мэты, кожная сістэма кіравання базамі дадзеных павінна імкнуцца дасягнуць: атамарнага, ўзгодненасць, ізаляцыя і даўгавечнасць. Рэляцыйная база дадзеных, якая не адпавядае ні аднаму з гэтых чатырох мэтаў, не можа лічыцца надзейным. База дадзеных, якая валодае гэтымі характарыстыкамі лічыцца ACID-сумяшчальным.
ACID Defined
Давайце хвіліну, каб даследаваць кожны з гэтых характарыстык у дэталях:
- Атамарнага сцвярджае, што змены базы дадзеных павінны прытрымлівацца «усё або нічога» правілах. Кожная аперацыя называецца «атамная». Калі адна частка ўгоды не атрымоўваецца, уся транзакцыя завяршаецца няўдачай. Вельмі важна, каб сістэма кіравання базамі дадзеных падтрымлівае атамарным характар здзелак, нягледзячы на любы СКБД, аперацыйнай сістэмы або апаратнага збою.
- Кансістэнцыя сцвярджае , што толькі сапраўдныя дадзеныя будуць запісаныя ў базу дадзеных. Калі па нейкай прычыне транзакцыя выконваецца, што парушае правілы Узгодненасць базы дадзеных, уся транзакцыя будзе адкат, і база дадзеных будзе адноўленая ў стан у адпаведнасці з гэтымі правіламі. З іншага боку, калі транзакцыя паспяхова выконваецца, яна будзе прымаць базу дадзеных з аднаго стану, якое ў адпаведнасці з правіламі іншай дзяржавы, што таксама ўзгадняецца з правіламі.
- Ізаляцыя патрабуе , каб мноства транзакцый , якія адбываюцца ў той жа час не ўплывае на выкананне адзін аднаго. Напрыклад, калі Джо выдае транзакцыю да базы дадзеных, у той жа час, што Марыя выдае іншую здзелку, абодва аперацыі павінны працаваць з базай дадзеных у ізаляванай форме. База дадзеных павінна альбо выканаць усю транзакцыю Джо перад выкананнем Мэры, ці наадварот. Гэта прадухіляе здзелку Джо ад чытання прамежкавых дадзеных, атрыманых у якасці пабочнага эфекту часткі здзелкі Марыі, якая не будзе ў канчатковым выніку будзе фіксавацца ў базе дадзеных. Звярніце ўвагу, што ўласцівасць ізаляцыі не гарантуе, якой транзакцыя будзе выканана першая - толькі тое, што транзакцыі не будуць перашкаджаць адзін аднаму
- Даўгавечнасць гарантуе , што любая транзакцыя фіксавацца ў базе дадзеных не будуць страчаныя. Трываласць забяспечваецца за кошт выкарыстання рэзервовых копій баз дадзеных і часопісаў транзакцый, якія палягчаюць аднаўленне дасканалых здзелак, нягледзячы на любыя наступныя праграмных або апаратных збояў.
Як ACID працуе на практыцы
Адміністратары баз дадзеных выкарыстаюць некалькі стратэгій для забеспячэння ACID.
Адзін выкарыстоўваецца для забеспячэння атамарнага і даўгавечнасць запісу наперад ўваходу (WAL) , у якім любая дэталь транзакцыі спачатку запісваюцца ў часопіс , які ўключае ў сябе як паўтор і адмена інфармацыі па тэме гарантуе , што, улічваючы адмову базы дадзеных любога роду, база дадзеных можа праверыць часопіс і параўнаць яго змесціва ў стане базы дадзеных.
Іншы спосабам , які выкарыстоўваецца для вырашэння атамарнага і даўгавечнасці з'яўляецца ценявы падпампоўкай , у якім ценявыя старонкі ствараюцца , калі дадзеныя павінны быць зменены. Абнаўлення ў запыце запісваюцца ў ценявы старонкі, а не на рэальных дадзеных у базе дадзеных. Сама база дадзеных змяняюцца толькі тады, калі рэдагаванне завершана.
Іншая стратэгія называецца двухфазны пратакол фіксацыі, асабліва карысныя ў размеркаваных сістэмах баз дадзеных. Гэты пратакол аддзяляе запыт на змяненне дадзеных на дзве фазы: фазу фіксацыі-запыту і фіксацыі фазы. У фазе запыту, усе СКБД ў сетцы, якія пацярпелі ад здзелкі павінны пацвердзіць, што яны атрымалі гэта і ёсць патэнцыял для выканання аперацыі. Пасля атрымання пацверджання ад ўсіх адпаведных СКБД, фіксацыі фазы завяршаецца, у якім дадзеныя фактычна змяняецца.