Zusammenfassung
Bestimmte Folgen von Datenbankanweisungen müssen als eine Einheit ausgeführt werden. Eine solche Einheit nennen wir Transaktion. In diesem Kapitel führen wir das Transaktionsmodell ACID 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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
aus src/backend/utils/time/tqual.c
- 2.
Im SQL Standard [1] werden vier verschiedene Isolationsgrade definiert. Die PostgreSQL Dokumentation [4] beschreibt, wie diese Isolationsgrade in PostgreSQL mittels der Multiversion Concurrency Control Architektur realisiert werden. Serializable Snapshot Isolation ist ein relativ neues Feature von PostgreSQL. Die Funktionsweise und Implementierung dieses Isolationsgrades wird detailiert ausgeführt in [3]. Weitere Beispiele zur parallelen Transaktionsverarbeitung unter verschiedenen Isolationsgraden finden sich in [2].
Weiterführende Literatur
ANSI: Database language SQL (2011). Dokument X3.135–2011
Hartwig, J.: PostgreSQL professionell und praxisnah. Addison-Wesley, München/Boston (2001)
Ports, D.R.K., Grittner, K.: Serializable snapshot isolation in postgresql. Proc. VLDB Endow. 5(12), 1850–1861 (2012). doi:10.14778/2367502.2367523
The PostgreSQL Global Development Group: Postgresql documentation, concurrency control (2015). http://www.postgresql.org/docs/9.4/interactive/mvcc.html
Author information
Authors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Studer, T. (2016). Mehrbenutzerbetrieb. In: Relationale Datenbanken. eXamen.press. Springer Vieweg, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-46571-4_8
Download citation
DOI: https://doi.org/10.1007/978-3-662-46571-4_8
Published:
Publisher Name: Springer Vieweg, Berlin, Heidelberg
Print ISBN: 978-3-662-46570-7
Online ISBN: 978-3-662-46571-4
eBook Packages: Computer Science and Engineering (German Language)