ACID

**ACID** (ад ) — набор патрабаванняў да транзакцый у сістэмах кіравання базамі даных, якія забяспечваюць найбольш надзейную і прадказальную яе працу — атамарнасць, узгодненасць, ізаляцыю, устойлівасць; сфармуляваны ў канцы 1970-х гадоў Джымам Грэем.

Набор патрабаванняў лічыцца фактычным стандартам для высоканадзейных сістэм, перш за ўсё, рэляцыйных СКБД, пры гэтым з сярэдзіны 2000-х гадоў для пабудовы размеркаваных СКБД дапускаецца адмова ад часткі патрабаванняў ACID (для абгрунтавання чаго выкарыстоўваюцца тэарэма CAP, тэарэма PACELC) або зніжэнне строгасці патрабаванняў (BASE).

## Атамарнасць 
Атамарнасць гарантуе, што ніякая транзакцыя не будзе зафіксавана ў сістэме часткова. Будуць альбо выкананы ўсе яе падаперацыі, альбо не выканана ніводнай. Паколькі на практыцы немагчыма адначасова і атамарна выканаць усю паслядоўнасць аперацый ўнутры транзакцыі, ўводзіцца паняцце «адкату» (rollback): калі транзакцыю не атрымліваецца цалкам завяршыць, вынікі ўсіх яе да гэтага часу зробленных дзеянняў будуць адмененыя і сістэма вернецца ва «вонкава зыходнага» стану — будзе здавацца, што транзакцыі і не было (натуральна, лічыльнікі, індэксы і іншыя ўнутраныя структуры могуць змяніцца, але, калі СКБД запраграмавана без памылак, гэта не паўплывае на знешнія яе паводзіны).

## Узгодненасць 
Транзакцыя, якая дасягае свайго нармальнага завяршэння () і тым самым фіксуе свае вынікі, захоўвае ўзгодненасць базы даных. Іншымі словамі, кожная паспяховая транзакцыя па вызначэнні фіксуе толькі дапушчальныя вынікі. Гэта ўмова з’яўляецца неабходным для падтрымкі чацвёртай уласцівасці.

Узгодненасць з’яўляецца больш шырокім паняццем. Напрыклад, у банкаўскай сістэме можа існаваць патрабаванне роўнасці сумы, якая спісваецца з аднаго рахунку, суме, якая залічваецца на іншы. Гэта — бізнес-правіла, і яно не можа быць гарантавана толькі праверкамі цэласнасці, яго павінны выканаць праграмісты пры напісанні кода транзакцый. Калі якая-небудзь транзакцыя зробіць спісанне, але не зробіць залічэння, то сістэма застанецца ў некарэктным стане і ўласцівасць ўзгодненасці будзе парушана.

Пры гэтым у ходзе выканання транзакцыі ўзгодненасці не патрабуецца: паміж залічэннем і спісаннем з прыкладу, хутчэй за ўсё, унутры транзакцыі будзе прамежкавы няўзгоднены стан сістэмы, але дзякуючы патрабаванню ізаляванасці ніякім іншым транзакцыям гэтая няўзгодненасць не будзе бачная. Атамарнасць жа гарантуе, што транзакцыя альбо будзе цалкам завершана, альбо ні адна з аперацый транзакцыі не будзе выканана. Тым самым гэтая прамежкавая няўзгодненасць з’яўляецца схаванай.

## Ізаляцыя 
Падчас выканання транзакцыі паралельныя транзакцыі не павінны аказваць уплыву на яе вынік. Ізаляванасць — патрабаванне дарагое, таму ў рэальных базах даных існуюць рэжымы, якія не цалкам ізалююць транзакцыю (ўзроўні ізаляванасці, якія дапускаюць фантомнае чытанне).

## Устойлівасць 
Незалежна ад праблем на ніжніх узроўнях (да прыкладу, абясточванне сістэмы або збоі ў абсталяванні) змены, зробленыя паспяхова завершанай транзакцыяй, павінны застацца захаванымі пасля вяртання сістэмы ў працу. Іншымі словамі, калі карыстальнік атрымаў пацверджанне ад сістэмы, што транзакцыя выканана, ён можа быць упэўнены, што зробленыя ім змены не будуць адменены з-за якога-небудзь збою.

## Крыніцы 
## Літаратура 
* 

Катэгорыя:Базы даных