ACID beskerm u databasis se data
Die ACID-model van databasisontwerp is een van die oudste en belangrikste begrippe databasisteorie. Dit stel vier doelwitte voor wat elke databasisbestuurstelsel moet streef om te bereik: atomisme, konsekwentheid, isolasie en duursaamheid. 'N Relasionele databasis wat nie aan enige van hierdie vier doelwitte voldoen nie, kan nie as betroubaar beskou word nie. 'N Databasis wat oor hierdie eienskappe beskik, word as suur-voldoen beskou.
Sure gedefinieer
Kom ons neem 'n oomblik om elkeen van hierdie eienskappe in detail te ondersoek:
- Atomicity bepaal dat databasis veranderinge moet volg 'n "alles of niks" reël. Elke transaksie word as 'atoom' beskou. As een deel van die transaksie misluk, misluk die hele transaksie. Dit is van kritieke belang dat die databasisbestuurstelsel die atoom aard van transaksies behou ten spyte van enige DBMS, bedryfstelsel of hardewareversaking.
- Konsekwentheid bepaal dat slegs geldige data na die databasis geskryf sal word. As daar vir een of ander rede 'n transaksie uitgevoer word wat die databasis se konsekwentiteitsreëls oortree, sal die hele transaksie teruggerol word, en die databasis sal herstel word na 'n staat wat ooreenstem met die reëls. Aan die ander kant, as 'n transaksie suksesvol uitgevoer word, sal dit die databasis van een staat wat ooreenstem met die reëls na 'n ander staat wat ook met die reëls ooreenstem.
- Isolasie vereis dat meervoudige transaksies wat op dieselfde tyd plaasvind, nie mekaar se uitwerking beïnvloed nie. Byvoorbeeld, as Joe 'n transaksie uitreik teen 'n databasis terselfdertyd dat Mary 'n ander transaksie uitreik, moet beide transaksies op 'n geïsoleerde wyse op die databasis funksioneer. Die databasis moet Joe se hele transaksie uitvoer voordat u Mary's uitvoer, of andersom. Dit verhoed dat Joe se transaksie van intermediêre data wat as 'n newe-effek van deel van Mary se transaksie geproduseer word, gelees word wat uiteindelik nie aan die databasis verbind sal word nie. Let daarop dat die isolasie-eiendom nie verseker watter transaksie eerste sal uitvoer nie - bloot dat transaksies nie met mekaar inmeng nie
- Duurzaamheid verseker dat enige transaksie wat aan die databasis verbind is, nie verlore gaan nie. Duurzaamheid word verseker deur die gebruik van databasis backups en transaksie logs wat die herstel van toegewyde transaksies fasiliteer ten spyte van enige daaropvolgende sagteware of hardeware mislukkings.
Hoe suur in die praktyk werk
Databasis administrateurs gebruik verskeie strategieë om suur af te dwing.
Een wat gebruik word om atoïsiteit en duursaamheid af te dwing, is 'n voorskotse aanmelding (WAL) waarin enige transaksiedetail vir die eerste keer geskryf word aan 'n log wat beide herhaal en ongedaan maak. Dit verseker dat, gegewe 'n databasis versuim van enige aard, die databasis kan nagaan die logboek en vergelyk die inhoud daarvan met die toestand van die databasis.
Nog 'n metode wat gebruik word om atoom en duursaamheid aan te spreek, is skaduwee- bladsye waarin 'n skaduwee bladsy geskep word wanneer data verander moet word. Die opdatering van die navraag word na die skaduwee bladsy geskryf, eerder as die werklike data in die databasis. Die databasis self word slegs gewysig wanneer die wysiging voltooi is.
Nog 'n strategie word die tweefase- verbindingsprotokol genoem, veral nuttig in verspreide databasisstelsels. Hierdie protokol skei 'n versoek om data in twee fases te verander: 'n verbindingsversoekfase en 'n verbindingsfase. In die versoek fase moet alle DBMS'e op 'n netwerk wat deur die transaksie geraak word, bevestig dat hulle dit ontvang het en die vermoë het om die transaksie uit te voer. Sodra bevestiging van alle relevante DBMS'e ontvang is, voltooi die verbindingsfase waarin die data eintlik verander word.