ACID- ն պաշտպանում է ձեր տվյալների շտեմարանի տվյալները
Տվյալների բազայի դիզայնի ACID մոդելը տվյալների բազայի տեսության ամենահին եւ կարեւորագույն հասկացություններից է: Այն առաջ է քաշում չորս նպատակ, որ յուրաքանչյուր տվյալների բազայի կառավարման համակարգը պետք է ձգտի հասնել ատոմիություն, հետեւողականություն, մեկուսացում եւ ամրություն: Տվյալ չորս նպատակներից որեւէ մեկին չհամապատասխանող տվյալների բազա չի կարող հավաստի լինել: Տվյալ հատկանիշները պարունակող տվյալների բազա համարվում է ACID- համապատասխան:
ACID սահմանված
Եկեք մի պահ վերցնենք այս հատկանիշներից յուրաքանչյուրին մանրամասնորեն ուսումնասիրելու համար.
- Atomicity- ը նշում է, որ տվյալների բազայի փոփոխությունները պետք է հետեւեն «բոլորին կամ ոչինչին» կանոնին: Յուրաքանչյուր գործարքը համարվում է «ատոմային»: Եթե գործարքի մի մասը ձախողվի, ամբողջ գործարքը ձախողվում է: Շատ կարեւոր է, որ տվյալների բազայի կառավարման համակարգը պահպանում է գործարքների ատոմային բնույթը, չնայած ցանկացած DBMS, օպերացիոն համակարգ կամ սարքավորումային ձախողում:
- Համապատասխանությունը նշում է, որ տվյալների բազայում գրվում են միայն վավեր տվյալներ: Եթե ինչ - ինչ պատճառներով գործարքը կատարվում է, որը խախտում է տվյալների շտեմարանի կանոնադրությունը, ամբողջ գործարքը կվերադարձվի, իսկ տվյալների բազան կվերականգնվի այնպիսի պետության, որը համապատասխանում է այդ կանոններին: Մյուս կողմից, եթե գործարքը հաջողությամբ կատարվի, այն կվերցնի տվյալների բազան մեկ պետությունից, որը համապատասխանում է այլ պետությանը կանոններին, որոնք նույնպես համապատասխանում են կանոններին:
- Մեկուսացումը պահանջում է, որ միաժամանակ տեղի ունեցող բազմակի գործարքները չեն ազդում միմյանց կատարման վրա: Օրինակ, եթե Ջոը տվյալների բազայի դեմ գործարք է կնքում, միեւնույն ժամանակ, Մարիամը այլ գործարքի է տրամադրում, այնպես էլ գործարքները պետք է գործեն տվյալների բազայում `մեկուսացված ձեւով: Տվյալների բազան պետք է կատարի Ջո-ի ամբողջ գործարքը, նախքան Մարիամի կամ հակառակը: Սա կանխում է Ջո-ի գործարքը կարդալու միջանկյալ տվյալները, որոնք արտադրվում են որպես Մարիամի գործարքի մի կողմի ազդեցություն, որը, ի վերջո, չի կատարվի տվյալների շտեմարան: Նշենք, որ մեկուսացման գույքը չի ապահովում, թե որն է գործարքը կատարելու առաջինը, պարզապես այդ գործարքները չեն խանգարի միմյանց
- Durability- ը վստահեցնում է, որ տվյալների բազայում կատարված ցանկացած գործարք չի կորցնի: Երկարակեցությունը ապահովված է տվյալների բազայի կրկնօրինակների եւ գործարքային տեղեկագրերի օգտագործմամբ, որոնք հեշտացնում են կատարված գործարքների վերականգնումը `չնայած ցանկացած հաջորդական ծրագրային կամ ապարատային ձախողումների:
Ինչպես է ACID աշխատում պրակտիկայում
Տվյալների շտեմարանի ադմինիստրատորները օգտագործում են մի քանի ռազմավարություն `կիրառելու ACID- ը:
Ատոմիությունը եւ կայունությունը կիրառելու համար օգտագործվում է գրավոր առաջխաղացում (WAL), որտեղ ցանկացած գործարքի մանրամասը առաջին անգամ գրված է մի մուտքագրման մեջ, որը ներառում է, այնպես էլ վերագործարկել եւ վերացնել տեղեկությունները: Այսպիսով, ապահովում է, որ տվյալների բազան ցանկացած տեսակի ձախողում է, մուտքագրեք եւ համեմատեք բովանդակությունը տվյալների բազայի վիճակը:
Ատոմիությունը եւ դիմացկունությունը լուծելու համար օգտագործվող մեկ այլ եղանակ է ստվերը , որտեղ ստվերային էջ է ստեղծվում, երբ տվյալները փոփոխվում են: Հարցման թարմացումները գրվում են ստվերային էջում, այլ ոչ թե տվյալների բազայում իրական տվյալների: Տվյալների բազան ինքնին փոփոխվում է միայն այն ժամանակ, երբ խմբագրումն ավարտված է:
Մեկ այլ ռազմավարություն կոչվում է երկու փուլային գործարքի արձանագրություն, հատկապես օգտակար է բաշխված տվյալների բազայի համակարգերում: Այս արձանագրությունն առանձնացնում է տվյալների փոփոխությունը երկու փուլով `խնդրանքի պահանջի փուլ եւ կատարման փուլ: Հարցման փուլում, գործարքի արդյունքում տառապող ցանցի բոլոր DBMS- ները պետք է հաստատեն, որ ստացել են այն եւ հնարավորություն ունեն կատարելու գործարքը: Հաստատումը ստանալուց հետո բոլոր համապատասխան DBMS- ներից ստացվում է կատարման փուլը, որի ընթացքում տվյալները ճշգրտվում են: