Temporale Tabellen

Eintrag zuletzt aktualisiert am: 09.02.2022

Temporale Tabellen merken sich alle früheren Zustände von Datensätzen. Temporale Tabellen sind sehr komfortabel, denn der Entwickler muss beim Ändern oder Löschen eines Datensatzes nichts explizit tun, um den vorherigen Zustand zu erhalten. Früher hat man dies auf Anwendungsebene oder in der Datenbank mit Triggern aufwendig implementieren müssen.

Temporale Tabellen (engl. Temporal Tables) sind seit SQL:2011 (ISO/IEC 9075:2011) Teil des SQL-Standards [https://en.wikipedia.org/wiki/SQL:2011]. Solche Tabellen erlauben, dass ein Entwickler beim Ändern oder Löschen eines Datensatzes nichts explizit tun muss, um den vorherigen Zustand zu erhalten; das Datenbankmanagementsystem merkt sich vollautomatisch alle vorherigen Zustände.

Einige moderne Datenbankmanagementsystem bieten Unterstützung für temporale Tabellen, z.B. Oracle, DB2, MySQL, MariaDB und Microsoft SQL Server. Letzteres kann dies seit Version 2016. Auch in der Cloud in SQL Azure sind die temporalen Funktionen verfügbar.

Seit Entity Framework Core 6.0 gibt es dafür auch eine direkte Unterstützung im Objekt-Relationalen Mapper von Microsoft.
In älteren Versionen des OR-Mappers kann man auf eins von drei GitHub-Projekt ausweichen (siehe [https://github.com/findulov/EntityFrameworkCore.TemporalTables], [https://github.com/glautrou/EfCoreTemporalTable] und [https://github.com/VantageSoftware/EFCore.TimeTraveler]).