ACID inalinda Data ya Database yako
Mfano wa ACID wa kubuni wa database ni mojawapo ya dhana ya zamani na muhimu zaidi ya nadharia ya databana. Inaweka malengo manne ambayo kila mfumo wa usimamizi wa database lazima ujitahidi kufikia: atomicity, thabiti, kutengwa na kudumu. Mbegu ya kihusiano ambayo haiwezi kufikia malengo hayo yote hayawezi kuonekana kuwa ya kuaminika. Duka ambalo lina sifa hizi huchukuliwa kuwa inavyotakiwa na ACID.
ACID imeelezea
Hebu tufanye muda kuchunguza kila moja ya sifa hizi kwa undani:
- Atomicity inasema kuwa marekebisho ya database lazima ifuate "utawala wote au wowote". Kila shughuli inajulikana kuwa "atomiki." Ikiwa sehemu moja ya manunuzi inashindwa, shughuli zote hazifanikiwa. Ni muhimu kwamba mfumo wa usimamizi wa database unastahili atomic asili ya shughuli licha ya DBMS yoyote, mfumo wa uendeshaji au kushindwa vifaa.
- Ushirikiano unasema kuwa data tu halali itaandikwa kwenye databana. Ikiwa, kwa sababu fulani, shughuli zinafanyika ambazo zinakiuka sheria za uwiano wa database, shughuli zote zitafufuliwa, na darasani itarejeshwa kwa hali inayoendana na sheria hizo. Kwa upande mwingine, ikiwa manunuzi yanatekeleza kwa ufanisi, itachukua database kutoka kwa hali moja ambayo inafanana na sheria kwa nchi nyingine ambayo pia inaendana na sheria.
- Kutengwa kunahitaji kwamba shughuli nyingi zinazotokea kwa wakati mmoja haziathiri utekelezaji wa kila mmoja. Kwa mfano, kama Joe anashughulikia shughuli dhidi ya database wakati huo huo kwamba Mary hutoa shughuli tofauti, shughuli zote mbili zinapaswa kufanya kazi kwenye darasani kwa njia pekee. Database lazima ama kufanya shughuli zote za Joe kabla ya kutekeleza Mary, au kinyume chake. Hii inazuia shughuli za Joe kutoka kusoma data kati inayozalishwa kama athari ya upande wa sehemu ya shughuli za Mary ambazo hatimaye zitajitolea kwenye databana. Kumbuka kuwa mali ya kujitenga haifai kuhakikisha kwamba shughuli za kwanza zitafanya nini - tu shughuli hizo hazitaingiliana
- Kuwezesha kuhakikisha kwamba shughuli yoyote iliyowekwa kwenye database haiwezi kupotea. Kuwezesha ni kuhakikisha kupitia matumizi ya safu za kumbukumbu na kumbukumbu za manunuzi zinazowezesha kurejeshwa kwa shughuli za kujitegemea licha ya kushindwa kwa programu yoyote au kushindwa kwa vifaa.
Jinsi ACID Inavyotumia katika Mazoezi
Watawala wa data hutumia mikakati kadhaa kutekeleza ACID.
Moja kutumika kutekeleza atomicity na kudumu ni kuandika-mbele kuingia (WAL) ambayo maelezo yoyote ya shughuli ni kwanza imeandikwa kwa logi ambayo ni pamoja na redo na kufuta habari.Hii inahakikisha kuwa, kutokana na kushindwa database ya aina yoyote, database unaweza kuangalia logi na kulinganisha yaliyomo yake kwenye hali ya databana.
Njia nyingine inayotumiwa kushughulikia atomicity na kudumu ni kivuli-paging ambapo ukurasa wa kivuli unapoundwa wakati data itafanywa. Sasisho la swala limeandikwa kwenye ukurasa wa kivuli badala ya data halisi katika database. Database yenyewe imebadilika tu wakati hariri imekamilika.
Mkakati mwingine huitwa ishara ya awamu mbili , hasa muhimu katika mifumo ya database iliyosambazwa. Protokoto hii hutenganisha ombi la kurekebisha data katika awamu mbili: awamu ya ombi la kufanya na awamu ya kufanya. Katika awamu ya ombi, DBMS zote kwenye mtandao unaoathirika na manunuzi lazima zihakikishe kuwa zimepokea na kuwa na uwezo wa kufanya shughuli. Mara uthibitisho lipokelewa kutoka kwa DBMS zote husika, awamu ya kujifanya imekamilisha ambapo data imebadilishwa.