Blick auf das Wesentliche


O/R – Mapping mit .NET




Detlef Sauerbrei
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") = ...




                                                                                           2
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")




                                                                   3
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




                                                                   4
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




                                                                 5
Datenmodell
                           Anschriften
                               a_ID
    Personen_Anschriften
                               Land
        P_ID
                               Postleitzahl
        A_ID
                               Strasse

                               Ort




    Personen
        p_ID

        Name

        Vorname

        GebDat




                                              6
Objektmodell




               7
Klassisch


Objektmodell          Datenmodell



               Code




                                    8
Mit O/R - Mapping


Objektmodell                     Datenmodell



                    O/R-Mapper




                                               9
Demo: Vanatec OpenAccess




                           10
Kontakt, Feedback

GEDOPLAN GmbH
Stieghorster Str. 60
33605 Bielefeld

         0521 20889-10
         mailto:detlef.sauerbrei@gedoplan.de
         http://www.gedoplan.de
         http://www.involva-gruppe.de




                                               11

Blick auf das Wesentliche - O/R-Mapping mit .NET

  • 1.
    Blick auf dasWesentliche 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") = ... 2
  • 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") 3
  • 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 4
  • 5.
    Beispiel: Personen undAnschriften 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 5
  • 6.
    Datenmodell Anschriften a_ID Personen_Anschriften Land P_ID Postleitzahl A_ID Strasse Ort Personen p_ID Name Vorname GebDat 6
  • 7.
  • 8.
    Klassisch Objektmodell Datenmodell Code 8
  • 9.
    Mit O/R -Mapping Objektmodell Datenmodell O/R-Mapper 9
  • 10.
  • 11.
    Kontakt, Feedback GEDOPLAN GmbH StieghorsterStr. 60 33605 Bielefeld 0521 20889-10 mailto:detlef.sauerbrei@gedoplan.de http://www.gedoplan.de http://www.involva-gruppe.de 11