11.07.2015 Aufrufe

2 Grundlagen Persistenzframeworks

2 Grundlagen Persistenzframeworks

2 Grundlagen Persistenzframeworks

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Kapitel 2: <strong>Grundlagen</strong> <strong>Persistenzframeworks</strong>eine Klasse ihr vollständiges Pendant in einer Tabelle findet, nur in sehr einfachenFällen möglich ist. Im Übrigen gelten vergleichbare Probleme auch für die Abbildungvon objektorientierten Datenstrukturen in hierarchische XML-Dokumente, deren semistrukturierterAufbau zwar dem von Objekten näher kommt, jedoch ebensoMechanismen zur Abbildung in Elemente, Attribute und Dokumente erfordert. ImFolgenden werden die Lösungsansätze des objektrelationalen Mappings anhand derAusführungen von [BHRS07], [Me08] und [Ke97] beleuchtet:Im Kern folgt das objektrelationale Mapping der Strategie, dass eine Klasse als eineTabelle modelliert wird. Die zu speichernden Attribute bzw. Eigenschaften der Klasse,die in Form von primitiven Datentypen vorliegen, finden sich als Attribute der Tabelle,also Spalten, wieder. Eine gespeicherte Objektinstanz entspricht dabei einem Datensatz.Attribut-Werte in primitiven Datentypen müssen in entsprechende Datentypen deskonkret eingesetzten, relationalen Datenbankmanagementsystems überführt werden, daes sowohl bezüglich der Typensysteme von Java oder .NET/CLR im Vergleich zu SQLals auch beim Vergleich der SQL-Dialekte verschiedener Datenbank-Hersteller keinevollständige Übereinstimmung gibt.Liegt ein zu speicherndes Attribut nicht in Form eines primitiven Datentypes, also alsVerweis auf die Objekt-Instanz einer anderen oder derselben Klasse, vor, so hat fürdiese Klasse, falls noch nicht geschehen, ebenfalls eine Modellierung als Tabelle zuerfolgen. Über eine Fremdschlüsselrelation wird der Bezug hergestellt. Sowohl zudiesem Zweck, als auch zur Beschreibung der eindeutigen Identität von Objekt-Datensätzen bei Lese- und Schreiboperationen müssen die Tabellen mit einemPrimärschlüssel ausgestattet sein, der wiederum in die abgebildete Klasse alszusätzliches Attribut aufgenommen werden muss. Per se ist dies bei objektorientiertenProgrammen nicht notwendig, bei relationalen Datenbanken jedoch Pflicht. Weiterhinstellt sich die Frage, welchen Wert ein Primärschlüssel für ein abgebildetes Objektannimmt, damit unter Einhaltung der referenziellen Integrität eine Eindeutigkeit in derTabelle und über alle Objekte der Klasse gewährleistet ist. Zwei Ansätze stehen zurWahl des Identitätswertes zur Verfügung: Der erste Ansatz sieht die Generierung durchdas Datenbanksystem vor, wobei dies dort beispielsweise unter Verwendung einerfortlaufenden Nummerierung zuverlässig erfolgt, aber nach Erzeugung des Datensatzeseine zusätzliche Leseoperation zur Ermittlung dieses Wertes vonseiten der Anwendungstattfinden muss. Der zweite Ansatz sieht die Generierung eines pseudo-eindeutigen5

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!