ORDA signifie Object Relational Data Access (Accès objet aux données relationnelles). C'est une technologie avancée permettant l'accès à une base de données en tant qu'objet - via un langage ou des widgets d'interface utilisateur.
Les relations font parties du concept de façon transparente, en combinaison avec le principe du Lazy loading, afin de supprimer, pour le développeur, toutes les problématiques spécifiques à la sélection ou au transfert de données.
Avec ORDA, les données sont accessibles via une couche d'abstraction, le datastore. Un datastore est un objet fournissant une interface au modèle de base de données et aux données via des objets. Par exemple, une table correspond à un objet dataclass, un champ est un attribut d'une dataclass, et les enregistrements sont des entités. Reportez-vous à la page Glossaire pour plus d'informations.
Au lieu de représenter des informations sous forme de tables, d'enregistrements et de champs, ORDA utilise une autre approche qui permet de faire correspondre plus précisément les données aux concepts du monde réel.
Imaginez la possibilité de dénormaliser une structure relationnelle sans pour autant affecter l'efficacité. Imaginez que vous décriviez la totalité des objets métier dans votre application de telle sorte que l'utilisation des données devienne simple et directe, et supprime le besoin d'une compréhension complète de la structure relationnelle.
Dans un datastore, une seule dataclass peut incorporer tous les éléments qui composent une table de base de données relationnelle traditionnelle, mais peut également inclure des valeurs d'entités parentes liées et des références directes aux entités et aux sélections d'entités liées.
Une requête retourne une liste d'entités appelée sélection d'entités (entity selection), qui remplit le rôle d'un ensemble de lignes d'une requête SQL. La différence est que chaque entité "sait" à quoi elle appartient dans le modèle de données et "comprend" sa relation avec toutes les autres entités. Cela signifie qu'un développeur n'a pas besoin d'expliquer dans une requête comment relier les différentes informations, ni dans une mise à jour comment écrire des valeurs modifiées dans la structure relationnelle.
En outre, les objets ORDA tels que les sélections d'entités ou les entités peuvent être facilement liés à des objets tels que des list box ou des variables. Combinés avec des fonctionnalités puissantes telles que les commandes This et Form, ils permettent de construire des interfaces modernes et modulaires basés sur des objets et des collections.
Fondamentalement, ORDA gère des objets. Dans ORDA, tous les concepts principaux, y compris le datastore lui-même, sont disponible via des objets. Les objets ORDA sont créés et instanciés si nécessaire par les méthodes 4D (vous n'avez pas besoin de les créer).
Notez, cependant, que vous devrez généralement les stocker dans des variables Objet 4D, comme tout autre objet (déclaré avec la commande C_OBJET). Les objets dans ORDA peuvent être manipulés comme des objets standard 4D (voir Objets (Langage)), mais ils bénéficient automatiquement de propriétés et de méthodes spécifiques.
Les objets ORDA disponibles sont :
- Datastore : le datastore est l'objet d'interface de la base de données. Il construit une représentation de toute la base de données en tant qu'objet. Le datastore principal (par défaut) est toujours disponible via la commande ds, mais la commande Ouvrir datastore permet le référencement de n'importe quel datastore distant.
- Dataclass : une dataclass est l'équivalent d'une table. Elle est utilisée comme objet modèle et fait référence à tous les champs en tant qu'attributs, y compris les attributs relationnels (attributs basés sur les relations entre les dataclasses). Les attributs relationnels peuvent être utilisés dans des requêtes comme n'importe quel autre attribut.
- Attribute : les propriétés de la dataclass sont des objets attributs décrivant les champs et les relations sous-jacents.
- Entity selection : une sélection d'entités fait référence à une ou plusieurs entités d'une dataclass. Elle est généralement créée à la suite d'une requête.
- Entity : une entité est l'équivalent d'un enregistrement. C'est en fait un objet qui référence un enregistrement dans la base de données.
Pour pouvoir utiliser ORDA dans vos bases de données 4D, vous devez vous assurer que les exigences et spécifications suivantes sont respectées :
Note : ORDA ne prend pas en compte l'option "Invisible" pour les tables ou les champs, ni la structure virtuelle définie par FIXER TITRES TABLES ou FIXER TITRES CHAMPS.