Métadonnées pour le service DMS (Data Mediator Service)
Un service DMS (Data Mediator Service) est le composant SDO (Service Data Object) qui se connecte à la base de données dorsale. Il est créé à l'aide de métadonnées spécifiques au système dorsal. Ces métadonnées définissent la structure du datagraphe qui est généré par le service DMS, ainsi que la requête à exécuter sur le système dorsal.
Les métadonnées comprennent les composants suivants :
- Table
- Il s'agit d'une table de la base de données cible. Elle est composée des éléments suivants :
- Name
- Il s'agit du nom de la table de base de données. Une table peut également posséder un nom de propriété pouvant servir à spécifier le nom de l'objet de données qui correspond à cette table. Par défaut, ce nom de propriété est le même que le nom de la table.
- Colonnes
- Le sous-ensemble de colonnes de la table de base de données devant être renvoyé à partir de la base de données. Une colonne possède un type qui correspond à un type JDBC et elle peut interdire les entrées nulles. Une colonne possède un nom qui correspond à son nom dans la base de données, ainsi qu'un nom de propriété facultatif qui identifie le nom de la colonne dans l'objet de données. Par défaut, ce nom de propriété est le même que le nom de la colonne dans la base de données.
- Clé primaire
- La (ou les) colonne(s) servant à identifier de façon unique une ligne dans une table.Remarque : Les clés peuvent être composées de plusieurs colonnes. L'exemple suivant illustre la création d'une clé primaire composée :
Si une table est associée à celle-ci et constitue la table enfant, elle utilise la même méthode pour créer la clé externe qui pointe vers cette table coordonnée.Key pk = MetadataFactory.eINSTANCE.createKey(); pk.getColumns().add(xColumn); pk.getColumns().add(yColumn); coordinateTable.setPrimaryKey(pk);
- Clé externe
- La (ou les) colonne(s) servant à établir un lien entre la table et une autre table dans les métadonnées. Il existe une correspondance positionnelle supposée entre les clés primaires et les clés externes composées. Par exemple, si une table parent possède une clé primaire, telle que
(x,y) avec les types respectifs (entier, chaîne), alors on s'attend normalement à ce que toute clé externe pointant vers cette table soit également (x', y') avec les types respectifs (entier, chaîne). Remarque : Les clés peuvent être composées de plusieurs colonnes. L'exemple suivant illustre la création d'une clé externe composée :
Si une table est associée à celle-ci et constitue la table enfant, elle utilise la même méthode pour créer la clé externe qui pointe vers cette table coordonnée.Key fk = MetadataFactory.eINSTANCE.createKey(); fk.getColumns().add(xColumn); fk.getColumns().add(yColumn); coordinateTable.getForeignKeys().add(fk);
- Filtre
- Un prédicat de clause SQL (Structured Query Language) WHERE pouvant être fourni avec ou sans paramètres (à spécifier ultérieurement). Il est ajouté à la clause WHERE de l'instruction SELECT du datagraphe. Il n'est ni analysé, ni interprété, mais utilisé tel quel. S'il est fourni avec des paramètres à spécifier ultérieurement, ces paramètres deviennent des arguments transmis au service DMS JDBC lors de l'obtention du datagraphe. Les filtres sont uniquement utilisés avec des requêtes générées. Si une requête spécifiée est fournie, les filtres des métadonnées sont ignorés.
- Relation
- Relie deux tables à l'aide de la clé primaire de la table parent et de la clé externe de la table enfant. Les relations sont composées des éléments suivants :
- Name
- Il s'agit du nom donné à la relation, généralement associé à la façon dont les deux tables sont reliées. Si Customers est la table parent et Orders est la table enfant, alors le nom par défaut de la relation est Customers_Orders.
- Nom opposé
- Il s'agit du nom utilisé pour naviguer entre l'objet de données enfant et l'objet de données parent.
- Clé parente
- La clé primaire de la table parent.
- Clé enfant
- La clé externe de la table enfant qui pointe vers la clé parente.
- Exclusive
- Par défaut, dans le cadre d'une relation, la requête générée utilise une opération de jointure interne sur les deux tables impliquées dans cette relation. Cela signifie qu'elle renvoie uniquement les entrées parent qui ont des enfants, c'est-à-dire des entrées enfant qui pointent vers elles. Si la valeur de l'attribut Exclusive a pour valeur false, la requête utilise une opération de jointure externe gauche et renvoie toutes les entrées parent, y compris celles qui n'ont pas d'enfants.
- Ordre
- Les colonnes utilisées pour l'ordre de classement des tables. Il peut être croissant ou décroissant. Lorsque ce paramètre est spécifié, les requêtes générées contiennent une clause ORDER BY.