Gruppera flera åtgärder i en transaktion

Slutförd

Om en ändring av en datadel måste leda till en ändring av en annan datadel måste ett program gruppera en serie datauppdateringar. Du kan använda transaktioner för att gruppera dessa uppdateringar. Om en händelse i en serie uppdateringar misslyckas i en transaktion kan hela serien återställas eller ångras.

Ett exempel är en onlineåterförsäljare som använder en transaktion för att göra en beställning, verifiera betalningen och uppdatera produktinventeringen. Genom att gruppera relaterade händelser ser du till att du inte minskar dina lagernivåer förrän du får en godkänd betalningsform.

Läs sedan om transaktioner och om de krävs för dina data.

Vad är en transaktion?

En transaktion är en logisk grupp med databasåtgärder som körs tillsammans.

Här är frågan om du behöver använda transaktioner i ditt program: Påverkar en ändring av en datamängd i datamängden en annan datamängd? Om svaret är ja behöver du stöd för transaktioner i databastjänsten.

ACID garanterar att transaktioner definieras genom att en uppsättning med fyra krav uppfylls. ACID är en akronym för atomitet, konsekvens, isolering och hållbarhet.

  • Atomicitet innebär att en transaktion måste köras exakt en gång och måste vara atomisk. Antingen är allt arbete gjort eller inget av det. Åtgärder inom en transaktion har vanligtvis samma syfte och är beroende av varandra.
  • Konsekvens säkerställer att alla data är konsekventa både före och efter transaktionen.
  • Isolering säkerställer att varje transaktion inte påverkas av andra transaktioner.
  • Hållbarhet innebär att ändringar som görs till följd av en transaktion sparas permanent i systemet. Systemet sparar data som har checkats in, så även om ett fel uppstår och systemet startas om är data tillgängliga i rätt tillstånd.

När en databas erbjuder ACID-garantier tillämpas dessa principer konsekvent på varje transaktion.

OLTP jämfört med OLAP

Transaktionsdatabaser kallas ofta för OLTP-system (Online Transaction Processing). OLTP-system stöder ofta många användare, har snabba svarstider och hanterar stora mängder data. De är också mycket tillgängliga, vilket innebär att de har minimal stilleståndstid. OLTP-system hanterar vanligtvis små transaktioner eller relativt enkla transaktioner.

Ett exempel på en Azure-tjänst som stöder OLTP är Azure SQL Database.

OLAP-system (Online Analytical Processing) stöder vanligtvis färre användare, har längre svarstider, kan vara mindre tillgängliga och vanligtvis hantera stora transaktioner eller komplexa transaktioner.

Ett exempel på en Azure-tjänst som stöder OLAP är Azure Analysis Services.

Begreppen OLTP och OLAP används inte så ofta som förut, men jämförelsen gör det enklare att kategorisera behoven i din app.

Transaktioner: Utvärdera dina datatyper

Att se till att dina data är i rätt tillstånd är inte alltid en lätt uppgift. Du kan använda transaktioner för att garantera dataintegriteten. Om dina data drar nytta av ACID-principer väljer du en lagringslösning som stöder transaktioner.

Nu ska vi gå igenom var och en av datauppsättningarna i onlinebutiksscenariot och fastställa behovet av transaktioner.

Data i produktkatalogen

Data i produktkatalogen bör lagras i en transaktionsdatabas. När en användare gör en beställning och betalningen verifieras bör artikelinventeringen uppdateras. På samma sätt bör beställningen återställas och inventeringen inte uppdateras om kundens kreditkort avvisas. Dessa relationer kräver transaktioner.

Foton och videor

Foton och videor i produktkatalogen behöver inget transaktionsstöd. Dessa filer ändras endast när en uppdatering sker eller nya filer har lagts till. Även om det finns en relation mellan bilden och faktiska produktdata är den inte transaktionell.

Affärsdata

Eftersom affärsdata är historiska och oföränderliga krävs inte transaktionsstöd. Affärsanalytiker som arbetar med data har också unika frågebehov. De arbetar ofta med aggregeringar i sina frågor, så att de kan arbeta med summan av andra mindre datapunkter.

Kontrollera dina kunskaper

1.

Vilken typ av transaktionella databassystem fungerar bäst för produktdata?

2.

Anta att en återförsäljares åtgärder för att uppdatera inventerings- och processbetalningar finns i samma transaktion. En användare försöker tillämpa en butikskredit på 30 USD på en beställning från sin bärbara dator och skickar exakt samma beställning med hjälp av butikskrediten (för hela beloppet) från sin telefon. Två identiska beställningar tas emot. Databasen i bakgrunden är en ACID-kompatibel databas. Vad kommer att hända?