Was ist eine Transaktion?

Eine Transaktion ist eine Reihe von Operationen zum Arbeiten mit einer Datenbank (DB), die zu einem Atombündel zusammengefasst sind.





(Es wird davon ausgegangen, dass Sie wissen, was eine Datenbank ist. Wenig später wird jedoch ein Link zum Artikel "Was ist das?"





Transaktionsdatenbanken (Datenbanken, die Transaktionen verarbeiten) erfüllen die ACID-Anforderungen, die die Datensicherheit gewährleisten. Einschließlich Finanzdaten =) Daher wählen die Entwickler sie aus.





Ich werde darüber sprechen, was eine Transaktion ist. Wie man es öffnet und wie man es schließt. Und warum ist es wichtig, die Transaktion abzuschließen? Wenn Sie dann Abfragen in die Datenbank schreiben, haben Sie ein bewusstes Verständnis dafür, was dort unter der Haube passiert und warum Sie dieses obligatorische Commit nach dem Update benötigen.





Inhalt

  • Was ist eine Transaktion?





  • So senden Sie eine Transaktion





  • So öffnen Sie eine Transaktion





  • So schließen Sie eine Transaktion ab





  • Gesamt









Was ist eine Transaktion?

Eine Transaktion ist ein Archiv für Abfragen an die Datenbank. Es schützt Ihre Daten auf Alles-oder-Nichts-Basis.





Stellen Sie sich vor, Sie möchten einem Freund 10 Dateien in einem Messenger senden. Wie lauten die Optionen:





  1. Wirf jede Datei einzeln.





  2. Legen Sie sie in das Archiv und senden Sie das Archiv.









Es scheint, dass es keinen großen Unterschied gibt. Aber was ist, wenn etwas schief geht? Die Verbindung wird in der Mitte unterbrochen, der Server wird neu gestartet oder es wird einfach ein Fehler ausgegeben ...





Im ersten Fall erhält Ihr Freund 9 Dateien, aber keine.





. . , . , . , « ».









, , ? ? ? , . ? , . , ! , , !









, :





— ?





— 10





— ? 9... , .









, . 100 2 ? « 1», « 2» , «hfdslafebx63542437457822nfhgeopjgrev0000444666589.xml» ... ! , .









! — . «, ». , , .





, . "" :









delete from 1 where = 1





insert into 2 values ('')









« » . , 1 , 2 ... ...









. 1!





-, — , . — , - . , « », , .





 





, . ( . connection, ). —  , .





, . :





  1. .





  2. .





  3. .









, . , .





, , . . . — , .









, . —  .





. (, ), , -.





 





. Oracle , . MySql «start transaction».





 





2 :





  1. COMMIT — ;





  2. ROLLBACK —  ;









, «», . , , .





, :





insert into clients (name, surname) values ('', '');
--        «»   «»
      
      







, ! , select , , — ! .









! , . sql developer ( , ) select — .









, , :





insert into clients (name, surname) values ('', '');
commit;
      
      







. . . sql developer, , .





, : « » , ! ? .









. , . , . :





= «»





= «»





...









. select count —  . 100 ! , . .





, - ! «» «», - . ... . rollback.









—  ROLLBACK? . , . . .





. :





, «»;





495 499;





....









, . select , . «, , ? , ». .









- . . 3 , . 10 — , . , ...









. !









— , .





, (, insert , ...).









, . . ( connection) — , . — , , .





, . . :





  1. COMMIT — ;





  2. ROLLBACK —  ;









, -, . . - . rollback, . ? - . , , .





() . — , (update, delete…) , commit /rollback — .









PS - Weitere nützliche Artikel finden Sie in meinem Blog unter dem Tag "nützlich" . Und nützliche Videos sind auf meinem Youtube-Kanal








All Articles