ORDA steht für Object Relational Data Access. Es ist eine erweiterte Technologie, die es erlaubt, eine Datenbank als Objekt zu verwenden - durch die Sprache oder mit Widgets der Benutzeroberfläche.
Die Relationen werden transparent in das Konzept einbezogen, in Kombination mit lazy loading, was dem Entwickler alle typischen Schwierigkeiten bei der Datenauswahl oder -übertragung erspart.
Bei ORDA erfolgt der Datenzugriff über eine Abstraktionsschicht, genannt Datastore (Datenspeicher). Das ist ein Objekt, das eine Schnittstelle zum Datenbankmodell und den Daten über 4D Objekte bietet. Tabellen werden auf Dataclass-Objekte abgebildet, Felder und Relationen sind Dataclass-Attribute und Datensätze sind vergleichbar mit Entities. Eine Übersicht finden Sie unter Glossar.
Anstatt Informationen als Tabellen, Datensätze und Felder darzustellen, verwendet ORDA einen alternativen Ansatz, der die Daten genauer auf reale Konzepte abbildet.
Stellen Sie sich die Fähigkeit vor, eine relationale Struktur zu denormalisieren, ohne die Effizienz zu beeinträchtigen. Stellen Sie sich vor, alles über die Business-Objekte in Ihrer Anwendung so zu beschreiben, dass die Verwendung der Daten einfach und unkompliziert wird und ein vollständiges Verständnis der relationalen Struktur entfällt.
In einem Datastore kann eine einzelne Dataclass alle Elemente enthalten, die eine traditionelle relationale Datenbanktabelle bilden, aber auch Werte von verwandten übergeordneten Entities sowie direkte Verweise auf verwandte Entities und Entity-Selections.
Eine Abfrage gibt eine Liste von Entities zurück, die als Entity-Selection bezeichnet wird und die die Rolle des Zeilen-Sets einer SQL-Abfrage erfüllt. Der Unterschied besteht darin, dass jede Entity "weiß", wo sie im Datenmodell hingehört und ihre Beziehung zu allen anderen Entities "versteht". Das bedeutet, dass ein Entwickler in einer Abfrage nicht erklären muss, wie er die verschiedenen Informationen zueinander in Beziehung setzt, noch in einem Update, wie er geänderte Werte in die relationale Struktur zurückschreibt.
Darüber hinaus können ORDA-Objekte wie Entity-Selections oder Entities einfach an Objekte wie Listboxen oder Variablen gebunden werden. Kombiniert mit leistungsstarken Funktionen wie This und Form ermöglichen sie den Aufbau moderner und modularer Schnittstellen, die auf Objekten und Collections basieren.
Grundsätzlich behandelt ORDA Objekte. In ORDA sind alle wichtigen Konzepte, einschließlich des Datastore, über Objekte verfügbar. ORDA-Objekte werden bei Bedarf durch 4D Methoden erzeugt und instanziiert (Sie müssen sie nicht anlegen).
Beachten Sie jedoch, dass Sie diese normalerweise in 4D Objektvariablen speichern müssen, wie alle anderen Objekte (deklariert mit dem Befehl C_OBJECT). Objekte in ORDA können wie 4D Standardobjekte behandelt werden (siehe Objekte (Sprache)), profitieren aber automatisch von spezifischen Eigenschaften und Methoden.
In ORDA sind folgende Objekte verfügbar:
- Datastore: Der Datenspeicher ist das Schnittstellenobjekt zur Datenbank. Es erstellt eine Darstellung der gesamten Datenbank als Objekt und ist über den Befehl ds verfügbar.
- Dataclass: Eine Datenklasse ist vergleichbar mit einer Tabelle. Sie wird als Objektmodell verwendet und verweist auf alle Felder als Attribute, einschließlich relationaler Attribute (Attribute, die auf Beziehungen zwischen Datenklassen aufbauen). Relationale Attribute können wie beliebige Attribute in Abfragen genutzt werden.
- Attribute: Eigenschaften von Datenklassen sind Attributobjekte, die die zugrundeliegenden Felder oder Relationen beschreiben.
- Entity-Selection: Eine Entity-Auswahl verweist auf eine oder mehrere Entities aus einer Datenklasse. Sie wird in der Regel als Ergebnis einer Abfrage erstellt.
- Entity: Eine Entity ist vergleichbar mit einem Datensatz. Sie ist genaugenommen ein Objekt, das auf einen Datensatz in der Datenbank verweist.
Damit Sie ORDA in Ihren 4D Datenbanken verwenden können, müssen Sie folgende Anforderungen und Spezifikationen beachten:
Hinweis: ORDA berücksichtigt weder die Option "Unsichtbar" für Tabellen oder Felder, noch die virtuelle Struktur, die durch die Befehle SET TABLE TITLES oder SET FIELD TITLES definiert ist.