Joindre des données de base de données
Dans les mappages qui lisent des données issues de bases de données, vous pouvez joindre des objets de base de données, tels que des tables ou des vues, en ajoutant un composant de jointure au mappage. Par exemple, vous pouvez combiner les données de deux tables ou plus liées par des relations de clé étrangère, ce qui correspond à la manière classique dont les données sont stockées dans les bases de données relationnelles. Le résultat serait identique à celui obtenu si vous exécutiez sur la base de données une requête SQL dans laquelle deux tables ou plus sont jointes au moyen d’une opération INNER JOIN (ou LEFT JOIN, le cas échéant).
Selon le type de données connectées au composant join, l’opération de jointure peut s’effectuer soit en mode standard (non-SQL), soit en mode SQL. Les jointures en mode non-SQL sont effectuées par MapForce, tandis que celles en mode SQL sont prises en charge par la base de données à partir de laquelle le mappage lit les données.
Les jointures en mode non-SQL offrent davantage de flexibilité, car elles prennent en charge un plus grand nombre de types de composants en entrée (par exemple, la jointure peut s’effectuer entre des tables issues de bases de données différentes, ou entre des structures XML et des tables de base de données). Pour un exemple de jointure non-SQL, voir Exemple : Joindre des structures XML. En revanche, une jointure non-SQL oblige le moteur de mappage à effectuer des comparaisons gourmandes en mémoire (car le nombre total de comparaisons correspond à la jointure croisée, ou produit cartésien, de toutes les structures jointes). En général, ce processus est très rapide et n’entraîne qu’une charge négligeable dans les mappages qui ne traitent pas de volumes de données importants ; toutefois, si les sources de données jointes contiennent un nombre considérable d’enregistrements, l’exécution du mappage prendra alors beaucoup de temps. Si vos mappages doivent traiter un très grand nombre d’enregistrements, envisagez d’acquérir une licence MapForce Server Advanced Edition, qui inclut une optimisation dédiée des jointures afin d’accélérer l’exécution des mappages.
Une jointure en mode SQL n’accepte en entrée que des objets de base de données éligibles (tels que des tables ou des vues) ; elle n’est donc pas aussi flexible qu’une jointure non SQL. Elle offre toutefois de meilleures performances de mappage, car elle est exécutée en mode natif par la base de données. Pour plus d'informations, voir Joins dans le mode SQL.
Note : L'utilisation d'un composant join n'est pas la seule façon de joindre des tables ou des vues de base de données. Les jointures applicables aux bases de données peuvent également être effectuées à l'aide d'instructions SQL SELECT ; voir Instructions SQL SELECT en tant que tables virtuelles. Une différence majeure entre les instructions SQL SELECT et les composants join réside dans le fait que les premières sont écrites manuellement, ce qui peut offrir davantage de flexibilité. Les composants join constituent une alternative plus simple si vous n'êtes pas à l'aise avec l'écriture manuelle d'instructions SQL.
Pour ajouter un composant join :
1.Définissez le langage de transformation de mappage sur Built-In (pour ce faire, cliquez sur le bouton
de la barre d’outils ou utilisez la commande de menu Sortie | Moteur d’exécution Built-In).
2.Dans le menu Insérer, cliquez sur Join. Vous pouvez également cliquer sur le bouton Join (
) de la barre d’outils. Le composant join apparaît dans le mappage. Par défaut, il accepte les données provenant de deux structures ; il dispose donc de deux entrées de type nœuds/lignes. Si nécessaire, vous pouvez ajouter de nouvelles entrées dans la jointure en cliquant sur le bouton Ajouter entrée (
), voir Joindre trois structures ou plus.

3.Connectez les structures à joindre aux éléments de type nœuds/lignes du composant join.
4.Ajoutez la condition de jointure (ou plusieurs conditions). Pour ce faire, cliquez avec le bouton droit sur le composant join et sélectionnez Propriétés. Les conditions de jointure peuvent également être ajoutées directement à partir du mappage, en connectant le résultat booléen d’une fonction à l’élément condition du composant join. Dans certains cas, lorsque des tables de base de données sont jointes, la ou les conditions de jointure peuvent être créées automatiquement par MapForce. Pour plus d’informations, voir Ajouter des conditions join.
Notes :
•Les composants join sont pris en charge lorsque le langage cible du mappage est défini sur Built-In. La génération de code en C#, C++ ou Java n’est pas prise en charge.
•Lorsqu’une structure n’est pas une source d’entrée valide ou prise en charge pour la jointure, MapForce affiche des conseils soit immédiatement directement sur le mappage, soit dans la fenêtre Messages, lorsque vous validez le mappage (voir Valider des mappages).
•Les composants join ne doivent pas être connectés à des paramètres d'entrée ni aux résultats de fonctions inline définies par l'utilisateur. Si de telles connexions existent, des erreurs de validation se produiront lors de la validation du mappage.
•Lorsque vous connectez des composants de base de données éligibles (tels que des tables ou des vues) directement à un composant join, un bouton Mode SQL (
) apparaît automatiquement dans le coin supérieur droit du composant join. Lorsqu’il est activé, ce bouton offre des fonctionnalités SQL spécifiques applicables à l’opération de jointure (voir Joins dans le mode SQL).
•Il n’est pas possible de connecter la sortie de l’élément joined à un autre composant join. Si nécessaire, vous pouvez toutefois connecter un résultat partiel d’une jointure à une autre.