ACID protektas la datumojn de via datenbazo
La modelo de datumbazo de ACID estas unu el la plej malnovaj kaj plej gravaj konceptoj de datumbazo. Ĝi antaŭeniras kvar celojn, kiujn ĉiu datumbaza administra sistemo devas strebi por atingi: atomikecon, konsiston, izoladon kaj daŭrecon. Reala datumbazo, kiu malsukcesas renkonti iun el ĉi tiuj kvar goloj, ne povas esti konsiderata fidinda. Datumaro, kiu posedas ĉi tiujn karakterizaĵojn, konsideras ACID-kongrua.
ACID Difinita
Ni prenu momenton por ekzameni ĉiun el ĉi tiuj trajtoj en detalo:
- Atomaĵo indikas, ke datumbazoj modifoj devas sekvi "ĉion aŭ nenion" regulon. Ĉiu transakcio estas "atoma." Se unu parto de la transakcio malsukcesas, la tuta transakcio malsukcesas. Estas kritike, ke la datumbaza sistemo konservas la atoman naturon de transakcioj malgraŭ ajna DBMS, operaciumo aŭ aparataro-malsukceso.
- Konsekvenco deklaras, ke nur validaj datumoj estos skribitaj al la datumbazo. Se, pro iu kialo, transakcio estas ekzekutita, kiu malobservas la konsistencajn regulojn de la datumbazo, la tuta transakcio estos ruliĝita, kaj la datumbazo estos restarigita al ŝtato konforma al tiuj reguloj. Aliflanke, se transakcio sukcese ekzekutas, ĝi prenos la datumbazon de unu stato, kiu estas konsekvenca kun la reguloj al alia ŝtato, kiu ankaŭ estas konsekvenca kun la reguloj.
- Izolado postulas, ke multnombraj transakcioj okazas samtempe ne efikas la ekzekuton de la alia. Ekzemple, se Joe elsendas transakcion kontraŭ datumbazo samtempe, ke Maria elsendas malsaman transakcion, ambaŭ transakcioj devus funkcii en la datumbazo izolite. La datumbazo devus aŭ plenumi la tutan transakcion de Joe antaŭ ol ekzekuti Maria aŭ viceversa. Ĉi tio malhelpas la transakcion de Joe de legi interaj datumoj produktitaj kiel flanka efiko de parto de la transakcio de Mary kiu ne finfine estos kompromitita al la datumbazo. Notu, ke la izolado-proprieto ne certigas, kian transakcion ekzekutos unue - nur ke transakcioj ne malhelpos unu la alian
- Fortikeco certigas, ke iu transakcio farita al la datumbazo ne perdiĝos. Fortikeco estas certigita per la uzo de datumbazoj kaj transakcioj, kiuj faciligas la restarigon de komercaj transakcioj malgraŭ iu ajn posta programaro aŭ aparataro-malsukcesoj.
Kiel ACID Laboras Praktike
Administrantoj de datumbazoj uzas plurajn strategiojn por plenumi ACID.
Oni kutimis plenumi atomikecon kaj durabilecon, skribas antaŭenpuŝado (WAL), en kiu iu transakcio detaliĝas unue al registro, kiu inkluzivas kaj redo kaj malfari informojn. Ĉi tio certigas, ke datenbaze malsukceso de iu ajn speco, la datumbazo povas kontroli. la registro kaj kompari ĝiajn enhavojn al la stato de la datumbazo.
Alia metodo uzita por trakti atomikecon kaj durabilecon estas ombro-paĝado, en kiu kreas ombra paĝo kiam oni devas modifi la datumojn. La ĝisdatigoj de la konsulto estas skribitaj al la ombra paĝo anstataŭ al la realaj datumoj en la datumbazo. La datumbazo mem estas modifita nur kiam la redaktado estas kompleta.
Alia strategio nomas la du-faza protokolo, speciale utila en distribuitaj datumbazoj. Ĉi tiu protokolo disigas peton por modifi datumojn en du fazojn: fazo-peto kaj fazo. En la fazo de peto, ĉiuj DBMSs en reto, kiuj trafas la transakcion, devas konfirmi, ke ili ricevis ĝin kaj havas la kapablon plenumi la transakcion. Fojo ricevita konfirmo de ĉiuj gravaj DBMSs, la kompleta fazo kompletigas, en kiu la datumoj estas vere modifitaj.