hotti: Datenstruktur

Beitrag lesen

Schöne Gruß

Den erwiedere ich gerne ;)

Tom hat ja schon Einiges zu Datenstrukturen geschrieben.

Es läuft darauf hinaus, dass Datenstukturen in der Anwendung, im Programmcode oder in einem Script bedeutsam sind, somit auch im Programmcode eines RDBMS. Inwieweit Datenstrukturen in Letzterem intern eine Rolle spielen, interessiert wahrscheinlich nur diejenigen, die entweder das Rad neu erfinden oder ein eigenes RDBMS bauen wollen.

Möglich ist jedoch eine Beziehung zwischen Datenstrukturen in einer Anwendung und dem RDBMS mit dem die Anwendung arbeitet. Beispiel ORM, Object Relational Mapping, vom Frontend zum Backend:

  • der Benutzer kriegt ein Objekt zu sehen, Objekt "Haselhuhn", mit den Attributen "Vorname" und "Straße",

  • direkt mit dem Code verbunden ist eine Datenstruktur, z.B. ein struct in c oder ein Hash mit Referenzen in Perl, d.h., das Objekt ist in einer Datenstruktur abgebildet, in Perl sieht das so aus:

  
$haselhuhn = {  
  Vorname => 'Horst',  
  Str => 'Im Felde',  
};  

  • die Anwendung möchte die Daten dauerhaft speichern und bedient sich dafür eines ORM-Layers, weil anstelle einer Objektorientierten DB nur ein Relationales DBMS zur Verfügung steht,

  • der ORM-Layer schnappt sich die Datenstruktur und setzt die darin enthaltenen Daten in eine Tabelle um. Im Einfachsten Fall ergibt ein Objekt einen Datensatz in einer Tabelle mit Feldnamen, die genauso heißen wie die Attribute; Tabelle Objects, Feldnamen: Objectname, Vorname, Str.

  • der Benutzer möchte jetzt, dass das Haselhuhn ein Küken bekommt und tippt das ein,

  • die Anwendung reicht die Anfrage an das ORM weiter,

  • das ORM, erzeugt ein neues Objekt, was defaultmäßig von der Henne erbt, um die Vererbung muss sich das ORM kümmern, weil es das RDBMS nicht hergibt. Vom ORM bekommt die Anwendung ein ausgebrütetes Ei zurückgereicht,

  • Im Fehlerfall gibt das ORM ein hartgekochtes Ei zurück.

In Wirklichkeit ist das alles natürlich viel komplizierter ;)

Horst H.