ACID beskermet jo databank's gegevens
It ACID-model fan database-ûntwerp is ien fan 'e âldste en wichtichste begripen fan database teory. It stjoert fjouwer doelen dy't elke databankbehearsysteem besykje te striden om te realisearjen: atomiteit, konsistinsje, isolaasje en duorsumens. In relaasje databank dy't gjin ien fan dizze fjirde doelen foldocht, kin net betrouber wêze. In databank dy't dizze eigenskippen hat, wurdt beskôge as ACID-konform.
ACID definiearre
Lit in momint nimme om elk fan dizze eigenskippen yn detail te ûndersykje:
- Atomiciteit stelt dat databankmodifikaasjes in "all of nothing" regel folgje. Elke transaksje wurdt sein dat 'atoom' wêze. As in part fan 'e transaksje falt, falt de folsleine transaksje. It is kritysk dat it database managementsysteem de atoomyske natuer fan transaksjes behâlde sil fan alle DBMS, bestjoeringssysteem of hardware mislearre.
- Konsistinsje stelt dat allinich jildige gegevens skreaun wurde nei de database. As der fan in reden dan in transaksje útfierd wurdt dy't it konsistysjebestimmingsregels ferslacht, wurdt de folsleine transaksje werombrocht, en de databank wurdt wersteld yn in steat dy't oerienkomt mei dizze regels. Oan 'e oare kant, as in transaksje mei súkses útfiert, nimt de databank fan ien steat dy't oerienkomt mei de regels nei in oare steat dy't ek konsistint mei de regels.
- Isolaasje fereasket dat meardere transaksjes tagelyk gjin effekt op elkoar ynfiere. Bygelyks as Joe in transaksje tsjin in database stipet tagelyk dat Mary in oar transaksje jout, moatte beide transaksjes op isolearre manier op 'e database wurkje. De databank moat beide komplette transaktie Joe's útfiere foardat it útfieren fan Mary's, of oarsom. Dêrtroch foarkomt Jo de transaksje fan it lêzen fan tydlike gegevens dy't makke wurde as in side-effekt fan in part fan 'e transaksje fan Mary dy't net úteinlik ynsette foar de database. Taljochting: it isolearjen fan eigendom jout net foar hokker transaksje earst útfiere sil - allinich dat transaksjes net inoar hâlde
- Hervorming soarget derfoar dat alle transaksjes dy't ynsetten foar de databank, net ferlern gean. Duorsumens is garandearre troch it brûken fan databank-reservaten en transaksjegroepen dy't de restauraasje fan bewenne transaksjes makliker meitsje fan alle lettere software of hardware mislearingen.
Hoe ACID wurket yn praktyk
Databankadministrators brûke ferskate strategyen om ACID út te fieren.
Ien brûkte om de atomiteit en duorsumens te wiskjen is it skriuwen fan logboeken (WAL) wêryn't alle transaksjes detailynformaasje earst skreaun wurde yn in loch dat beide redo-en-ûnthâlde ynwurkje. Dat soarget derfoar dat de databank kin, it log en ferwiist har ynhâld nei de steat fan de databank.
In oare metoade dy't brûkt wurdt om adressen fan atomiteit en duorsumens te meitsjen is skaad-paging wêryn in skaad-side is makke as data geane wizige wurde. De fernijings fan 'e query wurde skreaun nei' e skaadblêd lykas de echte gegevens yn 'e database. De databank sels is allinich wizige as de bewurking foltôge is.
In oare strategy wurdt de twa-faze commit- protocol neamd, benammen nuttich yn fergelike database-systeem. Dit protokol skiedt in fersyk om de gegevens te feroarjen yn twa fazen: in commit-request phase and a commit phase. Yn 'e fersyk faze binne alle DBMS's yn in netwurk dat beynfloede binne troch de transaksje, moatte befestigje dat se it krigen hawwe en hawwe de kapasiteiten om de transaksje út te fieren. Ien befestiging wurdt ûntfongen fan alle relevante DBMS's, de konklúzjefaze rint yn wêryn de gegevens eins feroare wurde.