Advertisement

Mehrbenutzerbetrieb

  • Thomas Studer
Chapter

Bestimmte Folgen von Datenbankanweisungen müssen als eine Einheit ausgeführt werden. Eine solche Einheit nennen wir Transaktion. In diesem Kapitel führen wir die ACID Postulate für Transaktionen ein und zeigen wie Transaktionen in SQL behandelt werden.

Theoretisch sollten parallel ausgeführte Transaktionen einander nicht beeinflussen, d. h. sie werden isoliert ausgeführt. In der Praxis wird diese Bedingung aus Performance-Gründen jedoch gelockert. Wir studieren die verschiedenen Isolationsgrade, welche SQL anbietet. Dazu betrachten wir drei Phänomene, die bei der parallelen Transaktionsverarbeitung auftreten können: Dirty Reads, Non-repeatable Reads und Phantom Reads.

Wir zeigen auch, wie PostgreSQL die verschiedenen Isolationsgrade mittels einer Multiversion Concurrency Control (MVCC) Architektur implementiert. Bei diesem Ansatz werden für jedes Tupel mehrere Versionen abgespeichert und eine Sichtbarkeitsbedingung definiert, welche Transaktion welche Version eines Tupels sieht.

Transaktionen...

Weiterführende Literatur2

  1. 1.
    ANSI: Database language SQL (2011). Dokument X3.135-2011Google Scholar
  2. 2.
    Hartwig, J.: PostgreSQL professionell und praxisnah. Addison-Wesley, München/Boston (2001)Google Scholar
  3. 3.
    Ports, D.R.K., Grittner, K.: Serializable snapshot isolation in postgresql. Proc. VLDB Endow. 5(12), 1850–1861 (2012). https://doi.org/10.14778/2367502.2367523CrossRefGoogle Scholar
  4. 4.
    The PostgreSQL Global Development Group: Postgresql documentation, concurrency control (2018). https://www.postgresql.org/docs/current/static/mvcc.html. Zugegriffen am 11.06.2019

Copyright information

© Springer-Verlag GmbH Deutschland, ein Teil von Springer Nature 2019

Authors and Affiliations

  • Thomas Studer
    • 1
  1. 1.Universität BernBernSchweiz

Personalised recommendations