mindthegap

Werbung
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
Verhaltensorientiert
Strukturorientiert
Unstrukturiert
Tabellarisch
Methoden
Relationale Algebra
Imperativ
Deskriptiv
Objektidentität
Wertsemantik
Einzelne Objekte
Mengenverarbeitung
Referenzen
Fremdschlü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
Vorteile
Nachteile
Stabiler Standard
Geringer Abstraktionsgrad
Hohe Flexibilität
Hoher Programmieraufwand
Leicht zu erlernen
Viel Know-How nötig
Hohe Performance
Bedingt 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)
Vorteile
Nachteile
Gute Unterstützung für
Routineaufgaben
Kein Nachladen von
referenzierten Objekten
Leicht zu erlernen
Kein Objekt-Caching
Hohe Flexibilität
Bedingt portabel (SQL)
Leicht erweiterbar
(Nur relationale DB)
Hohe Performance
JDO
 Sun Standard – JSR 12
(Version 1.0.1 – 16.09.2003)
(Version 1.0 – 30.04.2002)
 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
Vorteile
Nachteile
Standardisiert
Sehr junger Standard
Orthogonale Persistenz
Relativ junge Produkte
Nachladen referenzierter
Objekte
Relativ hoher Lernaufwand
Objekt-Caching
Verschiedene
Persistenzmedien möglich
TopLink
Vorteile
Nachteile
Ausgereiftes Produkt
Proprietär
Namhafter Hersteller
Relativ 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ß
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
Herunterladen