Transakcie sú základné operácie, ktoré nám umožňujú upravovať a získavať údaje. Na zabezpečenie integrity databázy je však dôležité, aby sa tieto transakcie vykonávali spôsobom, ktorý zachováva konzistentnosť správnosti a spoľahlivosti aj v prípade zlyhania/chyby. Tu vstupujú do hry vlastnosti ACID.
ACID znamená Atomicity Consistency Isolation and Durability.
Vlastnosti kyseliny:
KYSELINA má štyri vlastnosti
1. Atomicita
Atomicita znamená, že transakcia je všetko alebo nič, buď všetky jej operácie uspejú, alebo sa nepoužije žiadna. Ak ktorákoľvek časť zlyhá, celá transakcia sa vráti späť, aby bola databáza konzistentná.
- Zaviazať sa : Ak je transakcia úspešná, zmeny sa aplikujú natrvalo.
- Prerušiť/Vrátiť späť : Ak transakcia zlyhá, všetky zmeny vykonané počas transakcie sa zahodia.
Príklad : Zvážte nasledujúcu transakciu T pozostávajúce z T1 a T2 : Prevod 0 z účtu X účtovať A .
AtomicitaAk transakcia zlyhá po dokončení T1, ale pred dokončením T2, databáza zostane v nekonzistentnom stave. S Atomicity, ak niektorá časť transakcie zlyhá, celý proces sa vráti späť do pôvodného stavu a nevykonajú sa žiadne čiastočné zmeny.
Konzistentnosť v transakciách znamená, že databáza musí zostať v platnom stave pred a po transakcii.
java catch skúste
- Platný stav sa riadi všetkými definovanými pravidlami, obmedzeniami a vzťahmi (ako sú cudzie kľúče primárneho kľúča atď.).
- Ak transakcia poruší niektoré z týchto pravidiel, bude vrátená späť, aby sa predišlo poškodeným alebo neplatným údajom.
- Ak transakcia strháva peniaze z jedného účtu, ale nepridáva ich na iný (pri prevode), porušuje to konzistentnosť.
Príklad : Predpokladajme, že súčet všetkých zostatkov v bankovom systéme by mal byť vždy konštantný. Pred prevodom je celkový zostatok 0. Po transakcii by mal celkový zostatok zostať 0. Ak transakcia zlyhá uprostred (napríklad aktualizácia jedného účtu, ale nie druhého), systém by si mal zachovať konzistenciu vrátením transakcie späť.
Celkom pred výskytom T = 500 + 200 = 700 .
Celkom po výskyte T = 400 + 300 = 700.
Dôslednosť3. Izolácia
Izolácia zabezpečuje, že transakcie prebiehajú nezávisle bez toho, aby sa navzájom ovplyvňovali. Zmeny vykonané jednou transakciou nie sú viditeľné pre ostatných, kým nie sú potvrdené.
Zabezpečuje, že výsledok súbežných transakcií je rovnaký, ako keby boli spustené jedna po druhej, čím sa zabráni problémom, ako sú:
- Špinavý číta: čítanie nepotvrdených údajov
- Neopakovateľné znie: zmeny údajov medzi dvoma čítaniami
- Phantom číta: počas transakcie sa objavia nové riadky
Príklad : Zvážte dve transakcie T a T''.
- X = 500 Y = 500
IzoláciaVysvetlenie:
1. Transakcia T:
- T chce prejsť z X do Y.
- T číta A (hodnota: 500) odpočíta od X (nové X = 450) a pripočíta k Y (nové Y = 550).
2. Transakcia T'':
- T' ' začína a číta X (500) a Y (500).
- Vypočíta súčet: 500 + 500 = 1000.
- Medzitým sa hodnoty X a Y zmenia na 450 a 550.
- Takže správny súčet by mal byť 450 + 550 = 1000.
- Izolácia zaisťuje, že T'' nečíta zastarané hodnoty, kým iná transakcia (T) stále prebieha.
- Transakcie by mali byť nezávislé a T'' by mal mať prístup ku konečným hodnotám až potom, čo sa T zaviaže.
- Tým sa zabráni nekonzistentným výsledkom, ako je nesprávny súčet vypočítaný pomocou T''.
4. Trvanlivosť:
Trvanlivosť zaisťuje, že po potvrdení transakcie sa jej zmeny natrvalo uložia, aj keď systém zlyhá. Údaje sú uložené v energeticky nezávislej pamäti, takže databáza sa môže obnoviť do posledného potvrdeného stavu bez straty údajov.
string.format java
Príklad : Po úspešnom prevode peňazí z účtu A na účet B sa zmeny uložia na disk. Aj keď dôjde k zlyhaniu ihneď po potvrdení, údaje o prenose zostanú nedotknuté, keď sa systém obnoví, čím sa zabezpečí trvanlivosť.
Ako vlastnosti ACID ovplyvňujú návrh a prevádzku DBMS
The Vlastnosti ACID ako celok poskytujú mechanizmus na zabezpečenie správnosti a konzistencie databázy takým spôsobom, že každá transakcia je skupinou operácií, ktorá funguje ako jedna jednotka, vytvára konzistentné výsledky, koná izolovane od ostatných operácií a aktualizácie, ktoré robí, sú trvalo uložené.
Vlastnosti ACID zaisťujú integritu údajov DBMS tým, že zaisťujú, že transakcie sa buď úspešne dokončia, alebo nezanechajú žiadne stopy, ak sa prerušia. Zabraňujú čiastočným aktualizáciám poškodzovať údaje a zabezpečujú, že databáza prechádza len medzi platnými stavmi.
2. Kontrola súbežnosti
Vlastnosti ACID poskytujú solídny rámec pre riadenie súbežných transakcií. Izolácia zaisťuje, že transakcie sa navzájom nerušia, čím sa predchádza anomáliám údajov, ako sú napríklad stratené aktualizácie, dočasná nekonzistentnosť a nepotvrdené údaje.
3. Obnova a odolnosť voči poruchám
Trvanlivosť zaisťuje, že aj keď systém zlyhá, databáza sa môže obnoviť do konzistentného stavu. Vďaka vlastnostiam Atomicita a Durability, ak transakcia zlyhá uprostred, databáza zostáva v konzistentnom stave.
| Nehnuteľnosť | Zodpovednosť za udržiavanie majetku |
|---|---|
| Atomicita | Manažér transakcií |
| Dôslednosť | Aplikačný programátor |
| Izolácia | Manažér kontroly súbežnosti |
| Trvanlivosť | zotavenie |
Kritické prípady použitia ACID v databázach
V moderných aplikáciách je rozhodujúce zabezpečenie spoľahlivosti a konzistencie údajov. Vlastnosti ACID sú zásadné v sektoroch ako:
- bankovníctvo : Transakcie zahŕňajúce peňažné prevody, vklady alebo výbery musia zachovávať prísnu konzistentnosť a trvácnosť, aby sa predišlo chybám a podvodom.
- Elektronický obchod : Zabezpečenie, že objednávky počítajú zásoby a údaje o zákazníkoch sa spracúvajú správne a konzistentne aj počas vysokej návštevnosti si vyžaduje súlad s ACID.
- Zdravotníctvo : Výsledky testov a recepty pacientov zaznamenávajú do záznamov, ktoré musia spĺňať prísne štandardy integrity a bezpečnosti.