blick auf das wesentliche - o/r-mapping mit .net
DESCRIPTION
Objektorientierte Programmierung führt Entwickler häufig zu folgendem Problem: Die Business-Logik basiert auf Objekten, aber die Datenbank arbeitet relational. Objekte müssen manuell in Tabellenstrukturen abgebildet oder aus diesen erstellt werden. Nicht selten widmen sich 30% bis 50% des Quellcodes ausschließlich dem Datenzugriff. Anhand des O/R-Mappers "OpenAccess" der Firma Vanatec wird eine Lösungsmöglichkeit für dieses Problem aufgezeigt.TRANSCRIPT
Blick auf das Wesentliche
O/R – Mapping mit .NET
Detlef Sauerbrei
2
Die Symptome I
Identitätsproblem
Objekte haben eine implizite Identität (Adresse im Hauptspeicher)
Dim p As New Person
...
Dim q As Person = p
Datensätze in Tabellen haben eine explizite Identität (Primärschlüssel)Häufig erfüllen Primärschlüssel andere Zwecke als den der Identitätsherstellung
Dim r As DataRow = myDataSet.Tables(0).NewRow
r("id") = ...
3
Die Symptome II
Beziehungsproblem
Objekte verweisen mit Zeigern vom Parent auf die Children(intuitiv)parent.children.Add(c)
Datensätze verweisen umgekehrt mit Fremdschlüsseln von den Children auf den Parent (nicht intuitiv)rChild("idParent") = rParent("id")
4
Die Symptome III
Verhaltensproblem
OOP steht für einen Umgang mit einzelnen „Dingen“ (Objekte)imperative Programmierung (C#, VB.NET)
For Each r As DataRow in myDataSet.Tables(0).Rows
r.Delete()
Next
RDBMS stehen für einen Umgang mit vielen „Dingen“ (Mengen)deklarative Programmierung (SQL)
delete from Bestellpositionen where Menge=0
5
Beispiel: Personen und Anschriften
Jede Person hat mindestens eine Anschrift
Unter einer Anschrift können mehrere Personen leben.
Es sollen alle Anschriften einer Person angezeigt werden.
Es sollen alle Personen zu einer Anschrift angezeigt werden.
n:m – Beziehung
6
Datenmodell
Personen
p_ID
Name
Vorname
GebDat
Personen_Anschriften
P_ID
A_ID
Anschriften
a_ID
Land
Postleitzahl
Strasse
Ort
7
Objektmodell
8
Klassisch
Objektmodell Datenmodell
Code
9
Mit O/R - Mapping
Objektmodell Datenmodell
O/R-Mapper
10
Demo: Vanatec OpenAccess
11
Kontakt, Feedback
GEDOPLAN GmbHStieghorster Str. 6033605 Bielefeld
� 0521 20889-10� mailto:[email protected]� http://www.gedoplan.de� http://www.involva-gruppe.de