Hifadhidata ya uhusiano imeundwa kwa kutegemewa na uthabiti katika msingi wake. Wahandisi waliowaendeleza walizingatia mtindo wa shughuli ambao unahakikisha kwamba kanuni nne za mfano wa ACID zinahifadhiwa daima. Walakini, ujio wa muundo mpya wa hifadhidata ambao haujaundwa ni kugeuza ACID kichwani mwake. Muundo wa hifadhidata ya NoSQL huepuka modeli ya uhusiano iliyoundwa kwa kiwango cha juu ili kupendelea mbinu inayoweza kubadilika ya ufunguo/thamani. Mbinu hii isiyo na muundo wa data inahitaji mbadala wa muundo wa ACID: muundo wa BASE.
Mbinu za Msingi za Muundo wa ACID
Kuna kanuni nne za msingi za muundo wa ACID:
- atomicity ya miamala inahakikisha kwamba kila muamala wa hifadhidata ni kitengo kimoja kinachotumia mbinu ya "yote au hakuna" ya utekelezaji. Taarifa yoyote katika muamala ikishindikana, muamala wote utarejeshwa.
- Hifadhi hifadhidata za uhusiano pia huhakikisha uthabiti wa kila shughuli iliyo na sheria za biashara za hifadhidata. Ikiwa kipengele chochote cha muamala wa atomiki kinaweza kutatiza uthabiti wa hifadhidata, muamala wote hautafaulu.
- Mtambo wa hifadhidata hutekeleza kutengwa kati ya miamala mingi inayofanyika kwa wakati mmoja au karibu nao. Kila muamala hutokea kabla au baada ya kila muamala mwingine, na mtazamo wa hifadhidata ambayo muamala huona mwanzoni hubadilishwa tu na shughuli yenyewe kabla ya kuhitimishwa. Hakuna muamala unaopaswa kuona bidhaa ya kati ya muamala mwingine.
- Kanuni ya mwisho ya ACID, uthabiti, huhakikisha kwamba shughuli ikishawekwa kwenye hifadhidata, inahifadhiwa kabisa kupitia matumizi ya hifadhi rudufu na kumbukumbu za miamala. Ikitokea kushindwa, mbinu hizi zinaweza kutumika kurejesha miamala iliyofanywa.
Kanuni Muhimu za BASE
Hifadhidata ya NoSQL, kwa upande mwingine, inakumbatia hali ambapo muundo wa ACID ni mwingi au unaweza, kwa kweli, kuzuia utendakazi wa hifadhidata. Badala yake, NoSQL inategemea mtindo laini unaojulikana, ipasavyo, kama mfano wa BASE. Mtindo huu unakubali unyumbufu unaotolewa na NoSQL na mbinu sawa za usimamizi na urekebishaji wa data isiyo na muundo. BASE ina kanuni tatu:
- Upatikanaji Msingi Mbinu ya hifadhidata ya NoSQL inazingatia upatikanaji wa data hata kukiwa na hitilafu nyingi. Inafanikisha hili kwa kutumia mbinu iliyosambazwa sana kwa usimamizi wa hifadhidata. Badala ya kudumisha hifadhi moja kubwa ya data na kuzingatia ustahimilivu wa hitilafu wa hifadhi hiyo, hifadhidata za NoSQL hueneza data katika mifumo mingi ya hifadhi yenye kiwango cha juu cha urudufishaji. Katika tukio lisilowezekana kwamba kutofaulu kutasumbua ufikiaji wa sehemu ya data, hii haimaanishi kukatika kamili kwa hifadhidata.
- Hali Laini. Hifadhidata za BASE huachana na mahitaji ya uthabiti wa muundo wa ACID kabisa. Mojawapo ya dhana za msingi za BASE ni kwamba uwiano wa data ni tatizo la msanidi programu na haipaswi kushughulikiwa na hifadhidata.
- Eventual Consistency Sharti pekee ambalo hifadhidata za NoSQL inayo kuhusu uthabiti ni kuhitaji kwamba wakati fulani katika siku zijazo, data itaungana kwa hali thabiti. Hakuna dhamana inayofanywa, hata hivyo, kuhusu wakati hii itatokea. Huko ni kuondoka kabisa kwa hitaji la uthabiti la haraka la ACID ambalo linakataza muamala kutekelezwa hadi muamala wa awali ukamilike na hifadhidata iwe imeunganishwa kwa hali thabiti.
Katika BASE, upatikanaji msingi unaweza kumaanisha kuwa hata hudhibiti vyanzo vya data. Kwa mfano, unaweza kuunganisha kwa seti za data za umma kwa sehemu ya juhudi zako.
Kesi za Matumizi Jamaa
Muundo wa BASE haufai kwa kila hali, lakini kwa hakika ni mbadala unaonyumbulika kwa muundo wa ACID kwa hifadhidata ambao hauhitaji ufuasi mkali wa muundo wa uhusiano.
Kesi bora za utumiaji kwa hifadhidata zinazotumia ACID zinategemea data iliyopangwa kwa kiwango cha juu yenye ingizo na matokeo yanayotabirika. Kwa hivyo, hifadhidata za rasilimali watu, hifadhidata za rejareja na rekodi za matibabu za kielektroniki hunufaika kutokana na ukaguzi thabiti wa ndani ambao ACID inatoa.
Hata hivyo, suluhu za BASE ni bora kwa masomo ya kutatanisha kama vile uchanganuzi wa maoni. Kwa mfano, mradi ulio na muundo wa BASE unaweza kuchanganua mlisho wa Twitter ukitafuta maneno ambayo yanaashiria hisia kulingana na reli maalum. Mipasho ya Twitter haijaundwa vyema au kuratibiwa ndani, lakini mtiririko wa data unatoa taarifa ambayo imeratibiwa katika maswali hata kama upeo na asili ya data hiyo haijawekewa mipaka.