Meerdere bewerkingen groeperen in een transactie
Als een wijziging in één stukje gegevens moet resulteren in een wijziging in een ander stukje gegevens, moet een toepassing een reeks gegevensupdates groeperen. U kunt transacties gebruiken om deze updates te groeperen. Als in een transactie één gebeurtenis in een reeks updates mislukt, kan de hele reeks worden teruggedraaid of ongedaan worden gemaakt.
Een voorbeeld is een onlinewinkel die gebruikmaakt van een transactie om een bestelling te plaatsen, de betaling te verifiëren en de productvoorraad bij te werken. Als u de gerelateerde gebeurtenissen groepeert, zorgt u ervoor dat u uw voorraadniveaus pas verlaagt als u een goedgekeurde vorm van betaling ontvangt.
Lees vervolgens meer over transacties en of ze vereist zijn voor uw gegevens.
Wat is een transactie?
Een transactie is een logische groep databasebewerkingen die samen worden uitgevoerd.
Hier volgt de vraag die u zich moet stellen met betrekking tot het feit of u transacties in uw toepassing moet gebruiken: heeft een wijziging in één stukje gegevens in uw gegevensset invloed op een ander stukje gegevens? Als het antwoord ja is, hebt u ondersteuning nodig voor transacties in uw databaseservice.
ACID-garanties definiëren transacties door ervoor te zorgen dat aan een set van vier vereisten wordt voldaan. ACID is een acroniem voor atomiciteit, consistentie, isolatie en duurzaamheid.
- Atomiciteit betekent dat een transactie precies één keer moet worden uitgevoerd en dat deze atomisch moet zijn. Al het werk wordt gedaan of er is geen werk. Bewerkingen binnen een transactie delen doorgaans een algemene intentie en zijn onderling afhankelijk.
- Met Consistentie wordt ervoor gezorgd dat gegevens zowel voor als na de transactie consistent zijn.
- Isolatie zorgt ervoor dat elke transactie niet wordt beïnvloed door andere transacties.
- Duurzaamheid betekent dat wijzigingen die zijn aangebracht als gevolg van een transactie permanent worden opgeslagen in het systeem. Het systeem slaat gegevens op die zijn vastgelegd, zelfs in het geval van een storing en opnieuw opstarten van het systeem, de gegevens zijn beschikbaar in de juiste status.
Wanneer een database ACID-garanties biedt, worden deze principes consistent toegepast op elke transactie.
OLTP versus OLAP
Transactionele databases worden vaak OLTP-systemen (Online Transaction Processing) genoemd. OLTP-systemen ondersteunen vaak veel gebruikers, hebben snelle reactietijden en verwerken grote hoeveelheden gegevens. Ze zijn ook maximaal beschikbaar, wat betekent dat ze minimale downtime hebben. OLTP-systemen verwerken doorgaans kleine transacties of relatief eenvoudige transacties.
Een voorbeeld van een Azure-service die OLTP ondersteunt, is Azure SQL Database.
OLAP-systemen (Online Analytical Processing) ondersteunen doorgaans minder gebruikers, hebben langere reactietijden, kunnen minder beschikbaar zijn en verwerken doorgaans grote transacties of complexe transacties.
Een voorbeeld van een Azure-service die ondersteuning biedt voor OLAP, is Azure Analysis Services.
De termen OLTP en OLAP worden niet meer zo vaak gebruikt als voorheen, maar het is wel gemakkelijker om de behoeften van uw toepassing te categoriseren als u het onderscheid kent.
Transacties: Uw gegevenstypen evalueren
Het is niet altijd een eenvoudige taak om ervoor te zorgen dat uw gegevens de juiste status hebben. Transacties kunnen helpen door gegevensintegriteitsvereisten af te dwingen voor uw gegevens. Als uw gegevens profiteren van ACID-principes, kiest u een opslagoplossing die transacties ondersteunt.
Laten we elk van de gegevenssets in het online-retailscenario doorlopen en de noodzaak van transacties bepalen.
Gegevens voor productcatalogus
Gegevens voor een productcatalogus moeten worden opgeslagen in een transactiedatabase. Wanneer een gebruiker een bestelling plaatst en de betaling wordt geverifieerd, moet de inventaris van artikelen worden bijgewerkt. Als de creditcard van de klant wordt geweigerd, moet de bestelling worden teruggedraaid en moet de voorraad niet worden bijgewerkt. Voor deze relaties zijn transacties vereist.
Foto's en video's
Voor foto's en video's in een productcatalogus is geen transactieondersteuning vereist. Deze bestanden worden alleen gewijzigd wanneer er een update plaatsvindt of nieuwe bestanden worden toegevoegd. Hoewel er een relatie is tussen de afbeelding en de werkelijke productgegevens, is deze niet transactioneel van aard.
Bedrijfsgegevens
Omdat bedrijfsgegevens historisch en onveranderlijk zijn, is transactionele ondersteuning niet vereist. Bedrijfsanalisten die met de gegevens werken, hebben ook unieke querybehoeften. Ze werken vaak met aggregaties in hun query's, zodat ze kunnen werken met de totalen van andere kleinere gegevenspunten.