close

ZUUR

Ga naar navigatie Ga naar zoeken

In databases verwijst ACID naar de kenmerken van de parameters waarmee de transacties van databasebeheersystemen kunnen worden geclassificeerd . Wanneer een actie ACID-compatibel is, geeft dit in verschillende mate aan dat transacties mogen worden uitgevoerd.

ACID is met name een acroniem in het Engels voor Atomiciteit , Consistentie, Isolatie en Duurzaamheid : Atomicidad , Consistentie , Isolatie en Duurzaamheid , in het Spaans.

Definities

  • Atomiciteit : als een operatie bestaat uit een reeks stappen, waarvan alle of geen worden uitgevoerd, dat wil zeggen, de transacties zijn voltooid.
  • Consistentie : ( Integriteit ). Het is de eigenschap die ervoor zorgt dat pas begint wat kan worden afgemaakt. Daarom worden die bewerkingen uitgevoerd die de regels en richtlijnen vanDatabase -integriteit niet overtreden. De consistentie-eigenschap houdt in dat elke transactie de database van de ene geldige staat naar een andere geldige staat brengt. "Database-integriteit stelt ons in staat om ervoor te zorgen dat de gegevens nauwkeurig en consistent zijn, dat wil zeggen dat ze altijd intact zijn, altijd zoals verwacht en dat ze op geen enkele manier veranderen of vervormd raken. Op deze manier kunnen we garanderen dat de informatie gepresenteerd aan de gebruiker zal altijd hetzelfde zijn."
  • Isolatie : deze eigenschap zorgt ervoor dat de ene bewerking geen invloed kan hebben op andere. Dit zorgt ervoor dat het uitvoeren van twee transacties op dezelfde informatie onafhankelijk is en geen enkele vorm van fout genereert. Deze eigenschap definieert hoe en wanneer wijzigingen die door één bewerking worden geproduceerd, zichtbaar worden gemaakt voor andere gelijktijdige bewerkingen. Isolatie kan op verschillende niveaus worden bereikt, wat de essentiële parameter is bij het selecteren van DBMS'en .
  • Duurzaamheid : ( Persistentie ). Deze eigenschap zorgt ervoor dat zodra de bewerking is uitgevoerd, deze blijft bestaan ​​en niet ongedaan kan worden gemaakt, zelfs als het systeem faalt, en dus de gegevens op de een of andere manier overleven.

Als aan deze 4 vereisten wordt voldaan, kan een databasebeheersysteem als ACID-compatibel worden beschouwd .

Implementatie

De ACID-functies aan het werk zetten is niet zo eenvoudig. De verwerking van een transactie vereist vaak een aantal kleine wijzigingen, waaronder het bijwerken van de indexen die in het systeem worden gebruikt om zoekopdrachten te versnellen. Deze volgorde van bewerkingen kan om een ​​aantal redenen mislukken; het systeem heeft bijvoorbeeld mogelijk geen beschikbare sites op zijn schijfstations, of het kan de toegewezen CPU-tijd hebben overschreden.

ACID suggereert dat de database al deze bewerkingen onmiddellijk kan uitvoeren. In feite is dit moeilijk te realiseren. Er zijn twee soorten populaire technieken: schrijven naar een logboek voordat u verdergaat en schaduwpaging. In beide gevallen moeten de vergrendelingen worden geïmplementeerd voordat de informatie wordt bijgewerkt, en afhankelijk van de geïmplementeerde techniek moeten alle gegevens zijn gelezen. Bij het schrijven naar een register voordat u verdergaat , wordt de atomiciteit gegarandeerd door ervoor te zorgen dat alle gegevens naar een register worden geschreven voordat ze naar de database worden geschreven. Hierdoor kan de database in het geval van een crash teruggaan naar een eerdere staat. In de schaduw worden updates toegepast op één exemplaar van de database en wordt het nieuwe exemplaar geactiveerd wanneer de transactie betrouwbaar is. De kopie verwijst naar ongewijzigde delen van de oude versie van de database, in plaats van een volledig duplicaat te zijn.

Dit betekent dat er op elk moment een vergrendeling moet worden uitgevoerd voordat gegevens in een database worden verwerkt, zelfs bij leesbewerkingen. Het houden van een groot aantal sluizen resulteert in een substantiële indirecte toename van processen en een wijziging in hun gelijktijdigheid. Als gebruiker A een transactie verwerkt die een rij gegevens heeft gelezen die gebruiker B wil wijzigen, bijvoorbeeld, moet gebruiker B wachten tot de andere gebruiker klaar is.

Een alternatief voor vastzetten is om afzonderlijke kopieën te bewaren van gegevens die veranderen. Hierdoor kunnen gebruikers gegevens lezen zonder sloten te kopen. Als we het vorige voorbeeld opnieuw gebruiken, kan de database, wanneer de gebruikerstransactie de gegevens krijgt die gebruiker B heeft gewijzigd, de exacte versie van de gegevens ophalen voor gebruiker A om zijn transactie te starten. Dit zorgt ervoor dat gebruiker A een constant beeld van de database krijgt, zelfs als andere gebruikers gegevens wijzigen.

Het is moeilijk om ACID-kenmerken in een netwerkomgeving te garanderen. Netwerkverbindingen kunnen mislukken of twee gebruikers kunnen tegelijkertijd hetzelfde deel van de database gebruiken.

Referenties

Het ACID-concept wordt beschreven in ISO/IEC 10026-1: 1992 sectie 4.