Altova MapForce 2025 Professional Edition

Quand vous ajoutez une base de données comme composant de source à votre mappage, chaque table apparaît comme table racine (capture d’écran ci-dessous). Quand vous cliquez sur l’icône plus de la table racine, vous pouvez voir toutes les tables connexes en dessous de la table racine. Le composant de table i-dessous affiche deux types de flèches qui signifient la chose suivante :

 

La flèche pointant vers la gauche ( mf_ic_db_left_arrow ) indique que la table Books est une table enfant de la table Authors.

La flèche pointant vers la droite ( mf_ic_db_right_arrow ) affiche que la table Authors est le parent de la table Books.

MF_BookCatalogRelation02

Structure de BookCatalog.sqlite

Dépendant de vos besoins professionnels, vous pouvez utiliser différents scénarios de mappage. Les sous-sections ci-dessous illustrent quelques scénarios possibles. Tous les scénarios décrits ci-dessous affichent une base de données hiérarchique appelée BookCatalog.sqlite. La base de données contient deux tables (Authors et Books) qui ont une relation de clé étrangère. La capture d’écran ci-dessous affiche que la table Books a une clé étrangère appelée AuthorID qui référence la clé primaire dans la table Authors.

MF_BookCatalogRelation01

Exemple de données de BookCatalog.sqlite

Les extraits des tables Author et Books sont comme suit :

MF_BookCatalogAuthors

Table Authors

MF_BookCatalogBooks

Table Books

 

Scénario 1 : Préservez la hiérarchie

Dans notre premier scénario, nous mappons les données de BookCatalog.sqlite vers Authors.xsd (voir la capture d’écran ci-dessous). Dans ce mappage, Authors est la table racine. Notre objectif est de préserver la relation hiérarchique et obtenir tous les auteurs avec leurs livres correspondants dans la sortie.

MF_BookCatalogRelation03

La liste de codes ci-dessous affiche un extrait de la sortie :

 

<Authors>

<Author ID="23">

<Name>Fredrik Backman</Name>

<Country>Sweden</Country>

<Website>www.fredrikbackmanbooks.com</Website>

<Publications>

<Publication ID="26">

<Title>Anxious People</Title>

<ISBN>978-1-4059-3025-3</ISBN>

<Publisher>Penguin Books Ltd</Publisher>

<PrintLength>416</PrintLength>

<Year>2021</Year>

<Genre>Humor</Genre>

<Price>9.99</Price>

</Publication>

<Publication ID="27">

<Title>A Man Called Ove</Title>

<ISBN>9781444775815</ISBN>

<Publisher>Sceptre</Publisher>

<PrintLength>320</PrintLength>

<Year>2015</Year>

<Genre>Humor</Genre>

<Price>11.46</Price>

</Publication>

</ Publications>

</Author>

</ Authors>

 

Scénario 2 : Basculer les tables

Dans le deuxième scénario, notre objectif est d’obtenir une liste de livres et leurs détails dans le fichier sortie. Pour obtenir l’objectif, nous allons utiliser Books comme table de racine. Les relations de table resteront intacts. Le design de mappage a l’air de ceci :

MF_BookCatalogRelation04

La liste de codes ci-dessous affiche un extrait de la sortie :

 

<Books>

<Book ID="3">

<Title>Blackout</Title>

<Author>Ragnar Jonasson</Author>

<AuthorID>2</AuthorID>

<ISBN>1910633461</ISBN>

<Publisher>Orenda Books</Publisher>

<PrintLength>276</PrintLength>

<Year>2016</Year>

<Genre>Crime &amp; Mystery</Genre>

<Price>8.49</Price>

</Book>

<Book ID="4">

<Title>Outsider</Title>

<Author>Stephen King</Author>

<AuthorID>1</AuthorID>

<ISBN>1501180983</ISBN>

<Publisher>Scribner</Publisher>

<PrintLength>576</PrintLength>

<Year>2018</Year>

<Genre>Horror</Genre>

<Price>12.79</Price>

</Book>

</Books>

 

Scénario 3 : Mapper des données BD de différentes tables racine

Dans le troisième scénario, nous mappons des données de chaque table racine du composant de la base de données vers Authors.xsd (voir la cpature d’écran ci-dessous). Les tables connexes seront ignorées.

MF_BookCatalogRelation05

En conséquence, chaque livre individuel de la base de données sera recensé sous chaque auteur (liste de code ci-dessous).

 

<Author ID="19">

<Name>Sebastian Fitzek</Name>

<Country>Germany</Country>

<Website>www.sebastianfitzek.com</Website>

<Publications>

<Publication ID="1">

<Title>Misery</Title>

<ISBN>1501143107</ISBN>

<Publisher>Scribner</Publisher>

<PrintLength>368</PrintLength>

<Year>2016</Year>

<Genre>Horror</Genre>

<Price>11.99</Price>

</Publication>

<Publication ID="2">

<Title>Nightblind</Title>

<ISBN>9781910633113</ISBN>

<Publisher>Orenda Books</Publisher>

<PrintLength>231</PrintLength>

<Year>2016</Year>

<Genre>Crime &amp; Mystery</Genre>

<Price>9.99</Price>

</Publication>

<Publication ID="3">...</Publication>                        

<Publication ID="4">...</Publication>

<Publication ID="5">...</Publication>

<Publication ID="6">...</Publication>

<Publication ID="7">...</Publication>

<Publication ID="8">...</Publication>

</ Publications>

</Author>

 

Scénario 4 : Mapper des données BD à la structure SQL/XML

Dans le quatrième scénario, notre objectif est de mapper les données de base de données vers une structure de schéma (SQL/XML Standard). Le modèle de schéma est basé sur la spécification ISO-ANSI SQL/XML INCITS/ISO/IEC 9075-14-2008. La spécification SQL/XML définit comment mapper les bases de données en XML. Les relations sont définies dans les schémas en utilisant des contraintes d'identité ; il n'y a pas de références aux éléments. Ainsi, le schéma présente une structure plate qui ressemble à un aperçu arborescent de la base de données. La spécification peut être achetée dans la boutique ANSI. Pour plus d’information, voir www.iso.org.

 

Le mappage ci-dessous affiche que les données de la base de données sont mappées de tables racine différentes vers une structure SQL/XML plate. Les tables connexes seront ignorées. Il est également possible de mapper les données de la base de données depuias les tables connexes. Toutefois, si’il existe des enregistrements Book qui n’appartiennent pas à un Author, ces enregistrements Book ne seront pas mappés à la cible.

MF_BookCatalogRelation08

En conséquence, nous recevrons une liste de lignes Authoret une liste séparée de lignes Book (capture d’écran ci-dessous).

 

<Author>

<row>

<ID>1</ID>

<Name>Stephen King</Name>

<Country> US</Country>

</row>

<row>

<ID>2</ID>

<Name>Ragnar Jonasson</Name>

<Country>Iceland</Country>

</row>

<row>...</row>

<row>...</row>

</Author>

<Book>

<row>

<Title>Misery</Title>

<BookID>1</BookID>

<AuthorID>1</AuthorID>

<ISBN>1501143107</ISBN>

<Publisher>Scribner</Publisher>

<PrintLength>368</PrintLength>

<Year>2016</Year>

<Genre>Horror</Genre>

<Price>11.99</Price>

</row>

<row>

<Title>Nightblind</Title>

<BookID>2</BookID>

<AuthorID>2</AuthorID>

<ISBN>9781910633113</ISBN>

<Publisher>Orenda Books</Publisher>

<PrintLength>231</PrintLength>

<Year>2016</Year>

<Genre>Crime &amp; Mystery</Genre>

<Price>9.99</Price>

</row>

<row>...</row>

<row>...</row>

</Book>

 

Pour plus d'informations sur ce scénario, voir le mappage suivant : MapForceExamples\DB_Altova_SQLXML.mfd.

 

© 2018-2024 Altova GmbH