REIMERS CONSULT Company Logo

REIMERS CONSULT GmbH

Home Feedback Contents

RC.Dbo Details

RC.Dbo Product Logo

Objektorientierte Sicht auf relationale Daten


Eigenschaften von RC.Dbo im Detail

RC.Dbo behandelt aufbauend auf RC.Sql Datenbankzugriffe, Datenbankelemente und Ergebnismengen als Objekte. Dabei spielen Hersteller und andere Eigenschaften der zugrunde liegenden Datenbank keine Rolle, da diese individuellen Charakteristika von RC.Sql zu einer einheitlichen Form gebracht werden.

Was RC.Dbo daraus macht
RC.Dbo bildet Tabelleninhalte auf Objekte ab. Eine Tabelle wird in der so genannten Dom-Klasse beschrieben, indem für jede Spalte eine Eigenschaft definiert wird. Der Zugriff auf diese Spalte, sei es Lesen oder Schreiben, erfolgt dann über diese Eigenschaft. Eine Instanz dieser Klasse repräsentiert einen Datensatz der Tabelle.

3-T Programmierung
RC.Dbo übernimmt im Drei-Schichten-Modell die mittlere Schicht (z.B. obere Schicht ist GUI, darunter Datenbanklogik, untere Schicht besteht aus Datenbankzugriffen - also RC.Sql zusammen mit Datenbanktreibern). Die mittlere Schicht enthält dann die Business Logik in Form von Algorithmen und anderen Funktionen.

Wiederbenutzbarkeit gemeinsamer Tabelleneigenschaften
RC.Dbo kann Tabellenzugriffsobjekte als Basisobjekte verwalten. Wenn zum Beispiel mehrere Tabellen gleiche Business Logik benutzen, kann für diese Tabellen die gleiche Basis-Dom-Klasse benutzt werden (Primärschlüssel in autoinkrementeller Form).

Einsatz in bereits bestehenden Datenquellen
RC.Dbo kann mit jeder bereits bestehenden Datenbank interagieren. In keinem Fall ist eine Designänderung der Datenbank vonnöten, um RC.Dbo basierende Anwendung in das System zu integrieren.

Effizientes Caching von Datensätzen mit Fremdschlüsseln
Ein bekanntes Problem beim rein objektorientierten Zugriff auf Tabellen zeigt sich beim Bearbeiten von Datensätzen mit einer hohen Anzahl von Fremdschlüsseln. Wird eine solche Tabellenzeile gelesen, müssen auch die entsprechenden Einträge aus den verknüpften Tabellen geholt werden. Dies erzeugt Overhead an Daten. Sollen viele Datensätze gelesen werden, macht sich das in Form langer Wartezeiten bemerkbar.

RC.Dbo verzichtet beim Lesen eines Datensatzes darauf, die Referenzdaten sofort aus der Datenbank zu holen. Stattdessen wird mit jedem Fremdschlüssel eine Ref-Instanz erzeugt. Erst beim Zugriff auf dieses Objekt wird der entsprechende Datensatz vervollständigt.

Kein Kompromiss zwischen Performance und Benutzerfreundlichkeit
RC.Dbo vereint beides. Die Mapperklasse wird automatisch durch den Mappergenerator erzeugt. Ein Anwendungsentwickler muss sich nur um die Attribute der Dom-Klasse kümmern. Alles weitere übernimmt RC.Dbo.

Die generierte Mapperklasse hat die gleiche Performance wie ein von Hand erzeugter Mapper. Overhead wie bei Reflection wird dadurch vermieden. Ein weiterer Vorteil ist, dass man nicht Beschränkungen unterliegt, wie sie bei separaten Generatoren gegeben sind (siehe Einsatz in bestehenden Datenquellen).

Kompatibilität zu benutzerdefinierten Datentypen
RC.Dbo unterstützt die Möglichkeit, in den Eigenschaften einer Dom-Klasse auch die Benutzung von benutzerdefinierten Datentypen. Vorstellbar sind an dieser Stelle zum Beispiel speziell formatierte Datumsangaben oder bestimmte Schreibweisen für Namensfelder.