Home

Datenbankkontext

Ein Datenbankkontext ist eine Abstraktion, die eine Sitzung mit einer relationalen oder anderen Art von Datenbank repräsentiert. Er dient als zentrale Schnittstelle, über die Anwendungen Daten abfragen, Änderungen verfolgen und persistieren. Im Kontext von objekt-relationalen Abbildungen (ORM) bildet der Datenbankkontext die Brücke zwischen Domänenobjekten und der zugrundeliegenden Datenbank. Er unterscheidet sich von der physischen Datenbank durch seine Rolle als Kontext oder Unit of Work für Operationen.

Zu seinen Aufgaben gehören das Verwalten der Verbindung zur Datenbank, das Abbilden von Domänenobjekten auf Tabellen,

In vielen Frameworks entspricht der Datenbankkontext dem Unit-of-Work-Muster; er hält Referenzen auf Entitätssammlungen und sorgt für

Praxisrelevante Aspekte betreffen Lebenszyklus und Thread-Sicherheit. Ein Kontext sollte normalerweise pro Anforderung oder Anfrage erstellt und

das
Verfolgen
von
Änderungen,
das
Erstellen
und
Ausführen
von
Abfragen
sowie
das
Koordinieren
von
Transaktionen.
Der
Kontext
fungiert
als
Unit
of
Work,
der
sicherstellt,
dass
zusammengehörige
Operationen
entweder
gemeinsam
erfolgreich
sind
oder
zurückgerollt
werden.
Er
bietet
typischerweise
Sammlungen
von
Entitäten,
über
die
CRUD-Operationen
erfolgen.
konsistente
Zustandsänderungen.
Typische
Implementierungen
finden
sich
in
verschiedenen
Ökosystemen:
im
.NET-Umfeld
etwa
durch
den
DbContext
von
Entity
Framework
bzw.
EF
Core;
in
Java
durch
den
EntityManager
der
JPA/Hibernate-Implementierungen;
in
Django
durch
das
ORM
mit
Modellen
und
einer
zugrunde
liegenden
Verbindung.
Der
Begriff
kann
auch
als
DataContext
oder
ähnliche
Bezeichnungen
auftreten.
ordnungsgemäß
entsorgt
werden,
um
Ressourcen
zu
schonen.
Transaktionsgrenzen
sollten
klar
definiert
werden,
um
Konsistenz
sicherzustellen.
Abhängigkeiten
zu
Lazy
Loading,
Caching
und
Identity
Map
können
je
nach
Framework
variieren
und
Leistungsfolgen
haben.