Altova MapForce 2024 Professional Edition

Después de agregar una base de datos como componente de origen a su asignación de datos, cada tabla aparece como la tabla raíz (ver imagen siguiente). Cuando hace clic en el icono plus de una tabla raíz, puede ver todas las tablas relacionadas bajo la tabla raíz. El componente de BD que se ve a continuación muestra dos tipos de flechas que tienen el siguiente significado:

 

La flecha hacia la izquierda ( mf_ic_db_left_arrow ) indica que la tabla Books es una tabla secundaria de la tabla Authors.

La flecha hacia la derecha ( mf_ic_db_right_arrow ) muestra que la tabla Authors es la tabla principal de la tabla Books.

MF_BookCatalogRelation02

Structure of BookCatalog.sqlite

Puede usar varios tipos de asignaciones de datos, dependiendo de sus necesidades empresariales. A continuación presentamos algunos casos posibles. Todos los casos descritos a continuación presentan una base de datos jerárquica llamada BookCatalog.sqlite. La base de datos tiene dos tablas (Authors y Books) que tienen una relación de clave foránea. En la imagen siguiente se puede ver que la tabla Books tiene una clave foránea llama AuthorID que hace referencia a la clave primaria en la tabla Authors.

MF_BookCatalogRelation01

Datos de muestra de BookCatalog.sqlite

A continuación se pueden ver extractos de las tablas Authors y Books:

MF_BookCatalogAuthors

Tabla Authors

MF_BookCatalogBooks

Tabla Books

 

Caso 1: Preservar la jerarquía

En nuestro primer caso, asignamos datos desde BookCatalog.sqlite a Authors.xsd (ver imagen siguiente). En esta asignación, Authors es la tabla raíz. El objetivo es preservar la relación jerárquica y obtener todos los autores con sus libros correspondientes en los resultados.

MF_BookCatalogRelation03

El siguiente extracto de código muestra una parte de los resultados:

 

<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>

 

Caso 2: Intercambiar las tablas

En el segundo caso, el objetivo es obtener una lista de libros y sus detalles en el archivo de salida. Para conseguir el objetivo, usaremos Books como tabla raíz. Se mantendrán las relaciones de tabla. El diseño de la asignación tiene este aspecto:

MF_BookCatalogRelation04

El siguiente extracto de código muestra una parte de los resultados:

 

<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>

 

Caso 3: Asignar datos de BD desde diferentes tablas raíz

En el tercer caso, asignaremos datos desde cada tabla raíz del componente de BD a Authors.xsd (ver imagen siguiente). Se omitirán las tablas relacionadas.

MF_BookCatalogRelation05

Como resultado, cada libro, independientemente de su autor/a, aparecerá bajo cada autor/a (ver el siguiente extracto de código).

 

<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>

 

Caso 4: Asignar datos de BD a estructuras SQL/XML

En el cuarto caso, el objetivo es asignar datos de BD a una estructura de esquema plana/nivelada (estándar SQL/XML). El modelo de esquema nivelado se basa en la especificación INCITS/ISO/IEC 9075-14-2008. La especificación SQL/XML define cómo se asignan datos de BD a XML. Las relaciones se definen en esquemas por medio de restricciones de identidad y no hay referencias a los elementos. Por tanto, el esquema tiene una estructura plana o nivelada, similar a la vista en forma de árbol de la BD. Puede comprar la especificación en la tienda web de ANSI. Para más información, consulte www.iso.org.

 

La siguiente asignación muestra cómo se asignan datos de BD desde diferentes tablas raíz a una estructura plana o nivelada SQL/XML. Se omiten las tablas relacionadas. También es posible asignar datos de BD desde tablas relacionadas. Sin embargo, si algunos registros Book no son de ningun/a Author, estos registros Book no se asignarán al destino.

MF_BookCatalogRelation08

Como resultado, obtendremos una lista de filas Author y una lista separada de filas Book (ver imagen siguiente).

 

<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>

 

Para más información sobre este caso, consulte también la siguiente asignación: MapForceExamples\DB_Altova_SQLXML.mfd.

 

© 2017-2023 Altova GmbH