Altova MapForce 2024 Enterprise Edition

Joindre des données de base de données

Accueil Préc Haut Suivant

Dans des mappages qui lisent des données depuis des bases de données, vous pouvez joindre des objets de base de données comme des tables ou des vues en ajoutant un composant Join dans le mappage. Par exemple, vous pouvez combiner des données provenant de deux ou plusieurs tables liées par des relations de clé étrangère, ce qui constitue la méthode typique pour stocker des données dans des base de données relationnelles. Le résultat est le même que si vous exécutez une requête SQL par rapport à la base de données lorsque deux ou plus tables sont jointes par le biais 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 join peut se produire soit dans le mode standard (non-SQL), soit dans le mode SQL. Les jointures dans le mode non-SQL sont effectués par MapForce, alors que les jointures dans le mode SQL sont effectués par la base de données à partir de laquelle le mappage lit les données.

 

Des jointures en mode non-SQL sont plus flexibles car elles prennent en charge plus de types de composant en tant qu'entrée (par exemple, la jointure peut être entre des tables provenant de bases de données différentes, ou entre des structures XML et des tables de base de données). Pour consulter un exemple d'une jointure non-SQL, voir Exemple : Joindre des structures XML. D'un autre côté, une jointure non-SQL oblige le moteur de mappage a effectuer des comparaisons coûteuses en mémoire (parce que le nombre total de comparaisons représente la jointure croisée, ou le produit cartésien, de toutes les structures jointes). Généralement, ce processus a lieu très rapidement et est négligeable dans des mappages qui ne nécessitent pas trop de données ; néanmoins, si les sources de données jointes consistent en un nombre important d'enregistrements, le mappage prendra un temps considérable à s'exécuter. Si vos mappages doivent traiter un grand nombre d'enregistrements, nous vous recommandons de considérer la mise sous licence de MapForce Server Advanced Edition, qui contient une optimisation join dédiée pour accélérer l'exécution de mappage.

 

Une jointure dans le mode SQL n'accepte que les objets de base de données éligibles en tant qu'entrée (comme des tables ou des vues), elle n'est donc pas aussi flexible qu'une jointure non-SQL. Néanmoins, elle offre de meilleures performances de mappage parce qu'elle est exécutée de manière native 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 le seul moyen de joindre des tables ou des affichages de base de données. Les jointures applicables aux bases de données peuvent aussi être effectués en utilisant des instructions SELECT SQL, voir Instructions SELECT SQL en tant que tables virtuelles. Une différence principale entre les instructions SELECT SQL et les composants Join est que les premières sont écrites à la main, ce qui leur confère une plus grande flexibilité. Les composants Join sont une alternative plus simple si vous ne souhaitez pas rédiger des instructions SQL à la main.

 

 

Pour ajouter un composant Join :

1.Définir le langage de transformation de mappage sur BUILT-IN (pour ce faire, cliquer soit sur la touche de la barre outils ic-builtin, soit utiliser la commande de menu Sortie | Moteur d'exécution Built-In).

2.Dans le menu Insérer, cliquer sur Join. En alternative, cliquer sur la touche de la barre outils Join ( mf_ic_join_button ). Le composant Join apparaît dans le mappage. Par défaut, il accepte des données provenant de deux structures, il a donc deux entrées nodes/rows. Si nécessaire, vous pouvez ajouter de nouvelles entrées dans la jointure en cliquant sur la touche Ajouter entrée ( gui_add_function_parameter ), voir Joindre trois structures ou plus.

mf_join

3.Connecter les structures qui doivent être jointes dans l'item nodes/rows du composant join.

4.Ajouter la condition pour la jointure (ou plusieurs conditions). Pour ce faire, cliquer avec la touche de droite dans le composant Join et choisir Propriétés. Les conditions Join peuvent aussi être ajoutées directement depuis le mappage, en connectant le résultat Booléen de certaines fonctions à l'item condition du composant Join. Dans certains cas. lorsque des tables de base de données sont jointes, la condition (ou les conditions) de jointure peut être créée automatiquement par MapForce. Pour plus d'informations, voir Ajouter des conditions Join.

 

Notes :

 

Les composants Join sont pris en charge lorsque la langue cible du mappage est configurée sur BUILT-IN. La génération de code dans 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 indices soit immédiatement et directement dans 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 aux paramètres d'entrée ou aux résultats des fonctions définies par l'utilisateur inline. Si de telles connexions existent, des erreurs de validation se produiront au cours de la validation de mappage.

Lorsque vous vous connectez à des composants de base de données éligibles (comme des tables ou des modes) directement dans un composant Join, une touche mode SQL ( mf_ic_join_sql_enabled ) apparaît automatiquement en haut à droite du composant Join. Une fois activée, cette touche offre des fonctions SQL spéciales applicables à l'opération de jointure (voir Joins dans le mode SQL).

Il n'est pas possible de connecter la sortie de l'item joined à un autre composant Join. Néanmoins, le cas échéant, vous pouvez connecter un résultat partiel à une jointure d'un autre.

© 2018-2024 Altova GmbH