Der nachfolgende Text wurden mit KI erstellt und kann Fehler enthalten. Fehler gefunden? Bei GitHub editieren
Wichtige Keytakeaways
- Domain-Driven Design bietet ein rein objekt-orientiertes Modell mit Aggregates und Repositorys, das sich von relationalen Datenbankstrukturen unterscheidet.
- Relationale Datenbanken ermöglichen flexible Queries über mehrere Tabellen hinweg, erfordern aber Transaktionen zur Konsistenzwahrung.
- Es gibt kein universell “richtiges” Persistenz-Strategie – die Wahl hängt von Komplexität, Performance-Anforderungen und Art der Anfragen ab.
- Active Record und Row Data Gateway bilden Kompromisse zwischen objektorientiertem und relationalem Modell.
- Transaction Scripts mit minimalem Datenabstraktionslayer eignen sich für einfache Operationen ohne komplexe Geschäftslogik.
- Dokumentendatenbanken optimieren für Skalierbarkeit auf Kosten von Query-Flexibilität und erfordern vorausgedachte Datenmodellierung.
Behandelte Kernfragen
- Welche architektonischen Unterschiede bestehen zwischen objekt-orientierter Geschäftslogik und relationalen Datenbank-Modellen?
- Sollte ich Domain-Driven Design fĂĽr mein System verwenden?
- Wie ermöglichen relationale Datenbanken flexible Queries, während Dokumentendatenbanken diese erschweren?
- Wann ist Active Record besser als ein vollständiger OR-Mapper wie JPA?
- Wie beeinflusst die Datenbankwahl (relational vs. dokumentorientiert) die Systemarchitektur?
Glossar wichtiger Begriffe
- Aggregate: Ein Cluster von Entities und Value Objects, die zusammen eine konzeptionelle Einheit bilden und deren Konsistenz ĂĽber eine Root-Entity verwaltet wird.
- OR-Mapper (Object-Relational-Mapper): Softwareschicht, die Objekte eines objektorientierten Systems transparent auf Tabellen einer relationalen Datenbank abbildet (z.B. JPA, Hibernate).
- Active Record: Persistenzmuster, bei dem ein Objekt eine Datenbankzeile repräsentiert und selbst Methoden zur Persistierung in die Datenbank enthält.
- Row Data Gateway: Persistenzmuster, bei dem ein einfaches Objekt als Gateway zu einer einzelnen Datenbankzeile fungiert, ohne Geschäftslogik zu enthalten.
- Transaction Script: Architekturmuster, bei dem Geschäftslogik als prozeduraler Code organisiert ist, der direkt auf Datenbankoperationen zugreift.
- Domain-driven Design (DDD): Modellierungsansatz, der die Architektur an der Geschäftsdomäne ausrichtet und Konzepte wie Aggregates, Entities und Value Objects nutzt.