Mind the Gap Die semantische Lücke zwischen Objekten und Relationen
Inhalt Das Problem Lösungsansätze Vor- und Nachteile Abschluß
Das Problem Objektorientierte Programmiersprachen wurden für die Erstellung von Software konzipiert Relationale Datenbanken wurden zum Speichern und Verwalten von großen Datenmengen konzipiert
Zwei Datenmodelle treffen aufeinander Objektorientiertes (Netzwerk) Modell Relationales Datenmodell
Gegenüberstellung Objektorientiertes Modell Relationales Datenmodell VerhaltensorientiertStrukturorientiert UnstrukturiertTabellarisch MethodenRelationale Algebra ImperativDeskriptiv ObjektidentitätWertsemantik Einzelne ObjekteMengenverarbeitung ReferenzenFremdschlüssel
Der Brückenschlag Wie komme ich an meine Daten? Wie verbinde ich Daten und Algorithmen? Wie bekomme ich die Daten in meine Objekte?
Inhalt Das Problem Lösungsansätze Vor- und Nachteile Abschluß
Lösungsansätze JDBC von Hand (DAO, …) Leichtgewichtige Frameworks (PriDE, …) JDO-Produkte (LiDO, Kodo, Jakarta Object Relational Bridge (OJB)…) Proprietäre Frameworks (TopLink, Hibernate, Castor, …)
JDBC VorteileNachteile Stabiler StandardGeringer Abstraktionsgrad Hohe FlexibilitätHoher Programmieraufwand Leicht zu erlernenViel Know-How nötig Hohe PerformanceBedingt portabel (SQL) (Nur relationale DB)
Leichtgewichtiges Framework (PriDE) 42 Klassen 240kb Java Source (70kb jar-File) Keine externen Abhängigkeiten (außer JDBC-Treiber) Basierend auf DAO-Pattern Expression Builder Connection Management
Leichtgewichtiges Framework (PriDE) VorteileNachteile Gute Unterstützung für Routineaufgaben Kein Nachladen von referenzierten Objekten Leicht zu erlernenKein Objekt-Caching Hohe FlexibilitätBedingt portabel (SQL) Leicht erweiterbar(Nur relationale DB) Hohe Performance
JDO Sun Standard – JSR 12 (Version 1.0.1– ) (Version 1.0– ) Version 2.0 in Arbeit (seit 08/2003) Viele verschiedene Produkte: Solarmetric (Kodo JDO), LIBeLIS (LiDO), Poet (FastObjects), Hemisphere (JDOGenie), Progress (ObjectStore), Versant (enJin), Jakarta OJB, XORM, TJDO,...
JDO Orthogonale Persistenz ( Persistence by reachability) Via Bytecode-Enhancement Anfragesprache: JDOQL Verschiedene Persistenzmedien möglich Mappingbeschreibung ist proprietär
JDO VorteileNachteile StandardisiertSehr junger Standard Orthogonale PersistenzRelativ junge Produkte Nachladen referenzierter Objekte Relativ hoher Lernaufwand Objekt-Caching Verschiedene Persistenzmedien möglich
TopLink VorteileNachteile Ausgereiftes ProduktProprietär Namhafter HerstellerRelativ hoher Lernaufwand Orthogonale Persistenz(Nur relationale DB) Nachladen referenzierter Objekte Objekt-Caching Unterstützung für verschiedene Datenbanken
Inhalt Das Problem Lösungsansätze Vor- und Nachteile Abschluß
Persistenzframeworks können Entwicklungsaufwand einsparen Der Einarbeitungsaufwand muss bedacht werden Die Konzepte müssen passen Die perfekte Lösung gibt es nicht Man kann die Datenbank nicht ignorieren