Hoe werken ACID- en databasetransacties?

Wat is de relatie tussen ACID en databasetransactie?

Geeft ACID databasetransacties of is het hetzelfde?

Kan iemand dit onderwerp verlichten.


Antwoord 1, autoriteit 100%

ACIDis een set eigenschappen die u wilt toepassen bij het wijzigen van een database.

  • Atomiciteit
  • Consistentie
  • Isolatie
  • Duurzaamheid

Een transactie is een reeks gerelateerde wijzigingen die worden gebruikt om enkele van de ACID-eigenschappen te bereiken. Transacties zijn hulpmiddelen om de ACID-eigenschappen te verkrijgen.

Atomiciteit betekent dat u kunt garanderen dat alle transacties plaatsvinden, of geen enkele; u kunt complexe bewerkingen uitvoeren als één enkele eenheid, alles of niets, en een crash, stroomstoring, fout of wat dan ook zorgt ervoor dat u zich niet in een toestand bevindt waarin slechts enkele van de gerelateerde wijzigingen hebben plaatsgevonden.

Consistentie betekent dat u garandeert dat uw gegevens consistent zijn; geen van de beperkingen die u heeft op gerelateerde gegevens zal ooit worden geschonden.

Isolatie betekent dat de ene transactie geen gegevens kan lezen van een andere transactie die nog niet is voltooid. Als twee transacties gelijktijdig worden uitgevoerd, zal elk de wereld zien alsof ze opeenvolgend worden uitgevoerd, en als de ene gegevens moet lezen die door een andere zijn geschreven, zal het moeten wachten tot de andere is voltooid.

Duurzaamheid betekent dat zodra een transactie is voltooid, gegarandeerd is dat alle wijzigingen zijn vastgelegd op een duurzame drager (zoals een harde schijf), en dat het feit dat de transactie is voltooid eveneens wordt vastgelegd.

p>

Transacties zijn dus een mechanisme om deze eigenschappen te garanderen; ze zijn een manier om gerelateerde acties te groeperen, zodat een groep operaties als geheel atomair kan zijn, consistente resultaten kan produceren, geïsoleerd kan worden van andere operaties en duurzaam kan worden vastgelegd.


Antwoord 2, autoriteit 12%

ACID zijn wenselijke eigenschappen van elke transactieverwerkingsengine.

Een DBMS is (als het al goed is) een bepaald soort transactieverwerkingsengine die deze eigenschappen blootlegt, meestal in zeer grote mate, maar niet helemaal.

Maar er zijn andere engines die deze eigenschappen ook kunnen blootleggen. Het soort software dat vroeger “TP-monitors” werd genoemd, is een goed voorbeeld (tegenwoordig is het equivalent meestal webservers).

Dergelijke TP-monitors hebben toegang tot andere bronnen dan een DBMS (bijvoorbeeld een printer) en garanderen nog steeds ACID voor hun gebruikers. Als voorbeeld van wat ACID kan betekenen wanneer een printer bij een transactie betrokken is:

  • Atomiciteit: een heel document wordt afgedrukt of helemaal niets
  • Consistentie: aan het einde van de transactie bevindt de papierinvoer zich bovenaan de pagina
  • Isolatie: geen twee documenten worden door elkaar gehaald tijdens het afdrukken
  • Duurzaamheid: de printer kan garanderen dat hij niet “afdrukde” met lege cartridges.

Antwoord 3, autoriteit 8%

Wat is de relatie tussen ACID en databasetransactie?

In een relationele database moet elke SQL-instructie worden uitgevoerd in het kader van een transactie.

Zonder de transactiegrenzen expliciet te definiëren, gaat de database een impliciete transactie gebruiken die om elke afzonderlijke verklaring wordt gewikkeld.

De impliciete transactie begint voordat het statement wordt uitgevoerd en eindigt (commit of rollback) nadat het statement is uitgevoerd.
De impliciete transactiemodus is algemeen bekend als auto-commit.

Een transactie is een verzameling lees-/schrijfbewerkingen die alleen slagen als alle ingesloten bewerkingen slagen.

Atomicity

Inherent wordt een transactie gekenmerkt door vier eigenschappen (gewoonlijk ACID genoemd):

  • Atomiciteit
  • Consistentie
  • Isolatie
  • Duurzaamheid

Geeft ACID databasetransacties of is het hetzelfde?

Voor een relationeel databasesysteem is dit waar omdat de SQL-standaard specificeert dat een transactie de ACID-garanties moet bieden:

Atomiciteit

Atomicity neemt individuele operaties en verandert ze in een alles-of-niets-eenheid van werk, die slaagt als en alleen als alle ingesloten operaties slagen.

Een transactie kan een statuswijziging inkapselen (tenzij het een alleen-lezen is). Een transactie moet het systeem altijd in een consistente staat verlaten, ongeacht hoeveel gelijktijdige transacties er op een bepaald moment tussengevoegd zijn.

Consistentie

Consistentie betekent dat er voor elke vastgelegde transactie beperkingen worden opgelegd. Dat houdt in dat alle sleutels, gegevenstypen, controles en trigger succesvol zijn en dat er geen schending van de beperking wordt geactiveerd.

Isolatie

Transacties vereisen concurrency-controlemechanismen, en ze garanderen correctheid, zelfs als ze tussengevoegd zijn. Isolatie biedt ons het voordeel dat we niet-gecommitteerde toestandsveranderingen voor de buitenwereld verbergen, aangezien falende transacties de toestand van het systeem nooit mogen aantasten. Isolatie wordt bereikt door gelijktijdigheidscontrole met behulp van pessimistische of optimistische vergrendelingsmechanismen.

Duurzaamheid

Een succesvolle transactie moet de status van een systeem permanent wijzigen en voordat deze wordt beëindigd, worden de statuswijzigingen vastgelegd in een permanent transactielogboek. Als ons systeem plotseling wordt getroffen door een systeemcrash of een stroomstoring, kunnen alle onvoltooide vastgelegde transacties opnieuw worden afgespeeld.

Hoe een RDBMS werkt


Antwoord 4, autoriteit 7%

Ik heb het printervoorbeeld enigszins aangepast om het meer verklaarbaar te maken

1 document met inhoud van 2 pagina’s is naar de printer gestuurd

Transactie– document verzonden naar printer

  • atomiciteit– printer drukt 2 of geen pagina’s van een document af
  • consistentie– printer drukt een halve pagina af en de pagina loopt vast. De printer start zichzelf opnieuw op en drukt 2 pagina’s af met alle inhoud
  • isolatie– terwijl er te veel afdrukken werden gemaakt – drukt de printer de juiste inhoud van het document af
  • duurzaamheid– tijdens het printen was er een kracht
    snijprinter drukt opnieuw documenten af ​​zonder fouten

Ik hoop dat dit iemand helpt het concept van ACID onder de knie te krijgen


Antwoord 5, autoriteit 4%

ACID-eigenschappen zijn een zeer oud en belangrijk concept van databasetheorie. Ik weet dat je veel berichten over dit onderwerp kunt vinden, maar toch wil ik hier graag een antwoord op delen omdat dit een heel belangrijk onderwerp is van RDBMS.

Databasesysteem speelt met veel verschillende soorten transacties waarbij alle transacties bepaalde kenmerken hebben. Deze eigenschap staat bekend als ACID Properties.
ACID Properties neemt alle databasetransacties over om alle taken uit te voeren.

Atomiciteit: ofwel alles plegen of niets.

Consistentie: maak consistente records in termen van valideren van alle regels en beperkingen van transacties.

Isolatie: zorg ervoor dat twee transacties elkaar niet kennen.

Duurzaamheid: vastgelegde gegevens voor altijd opgeslagen.
Referentie overgenomen uit dit artikel:


Antwoord 6

Om Wikipediate citeren:

ACID (atomiciteit, consistentie, isolatie, duurzaamheid) is een reeks eigenschappen die garanderen dat databasetransacties betrouwbaar worden verwerkt.

Een DBMS dat transacties ondersteunt, zal ernaar streven al deze eigenschappen te ondersteunen – alle commerciële DBMS (evenals verschillende open-source DBMS’en) bieden volledige ACID ‘ondersteuning’ – hoewel dit vaak mogelijk is (bijvoorbeeld met verschillende isolatieniveaus in MSSQL) om de ACIDness te verminderen – waardoor de garantie van volledig transactiegedrag verloren gaat.


Antwoord 7

[Gray] introduceerde de ACD-eigenschappen voor een transactie in 1981. In 1983 voegde [Haerder] de eigenschap Isolation toe. Naar mijn mening zouden de ACD-eigenschappen een nuttiger set eigenschappen hebben om te bespreken. Eén interpretatie van Atomicity (dat de transactie op elk moment atomair zou moeten zijn zoals gezien door elke klant) zou in feite de isolatie-eigenschap impliceren. De eigenschap “isolatie” is handig wanneer de transactie nietgeïsoleerd is; wanneer de isolatie-eigenschap is versoepeld. Spreek in ANSI SQL: als het isolatieniveau zwakker is dan SERIALIZABLE. Maar wanneer het isolatieniveau SERIALISEERBAAR is, is de isolatie-eigenschap niet echt van belang.

Ik heb hier meer over geschreven in een blogpost: “ACID Does Not Make Sense”.

http://blog.franslundberg.com/ 2013/12/acid-does-not-make-sense.html

[Gray] Het transactieconcept, Jim Gray, 1981.
http://research.microsoft.com/en-us /um/people/gray/papers/theTransactionConcept.pdf

[Haerder] Principes van transactiegericht databaseherstel, Haerder en Reuter, 1983.
http://www.stanford.edu/class/cs340v/papers/recovery.pdf


Antwoord 8

ACID-eigenschappen in databases:

  • Atomicity: Transacties zijn alles of niets
  • Consistentie: Alleen geldige gegevens worden opgeslagen(database van de ene staat die consistent is naar een andere staat die ook consistent is.)
  • Isolatie: Transacties hebben geen effect op elkaar(meerdere transacties kunnen tegelijkertijd in het systeem worden uitgevoerd. Het parallel uitvoeren van meerdere transacties moet dezelfde resultaten hebben als het uitvoeren van ze opeenvolgend.)
  • Duurzaamheid: Geschreven gegevens gaan niet verloren(zelfs als de database onmiddellijk crasht of bij stroomuitval.)
    Tegoed

Antwoord 9

Transactie kan worden gedefinieerd als een verzameling taken die als minimale verwerkingseenheid worden beschouwd. Elke minimale verwerkingseenheid kan niet verder worden onderverdeeld.

Alle transacties moeten vier eigenschappen bevatten die algemeen bekend staan ​​als ACID-eigenschappen. d.w.z. ACID is de groep eigenschappen van elke transactie.

  • Atomiciteit:
  • Consistentie
  • Isolatie
  • Duurzaamheid

Other episodes