Habilite JavaScript para visualizar esta página.

Altova MapForce 2021 Professional Edition

Cuando las tablas de una base de datos no tienen definidas relaciones explícitas, podemos definirlas en MapForce directamente. Concretamente, podemos crear relaciones de clave principal y foránea entre columnas de distintas tablas sin que ello afecte a la base de datos. Como claves principales y foráneas se puede usar cualquier columna de la base de datos. Además, se pueden crear relaciones nuevas además de las que ya existen en la base de datos. Las relaciones definidas localmente desde MapForce se guardan con la asignación.

 

En MapForce estas relaciones instantáneas se denominan relaciones locales. La siguiente tabla enumera todos los campos posibles entre los que puede definir relaciones locales. Es posible crear relaciones mixtas (por ejemplo, asignar los resultados de un procedimiento almacenado a una columna de BD). Los campos que forman parte de la relación deben tener el mismo tipo de datos o uno compatible.

 

Clave principal/única

Clave foránea

Columna de una tabla o vista de BD

Parámetro de salida o valor devuelto de un procedimiento almacenado (consulte también Procedimientos almacenados)

Columna de conjunto de registros devuelta por procedimiento almacenado*

Columna de una instrucción SELECT definida por el usuario (consulte también Instrucciones SQL SELECT como tablas virtuales).

Columna de tabla o vista de BD

Parámetro de entrada de un procedimiento almacenado

Parámetro de entrada de una instrucción SELECT definida por el usuario

 

* Se aplica si se llama al procedimiento almacenado como fuente de datos (sin parámetros) o como función (con parámetros de entrada y salida). Para que el conjunto de registros esté disponible y se pueda seleccionar debe ejecutar el procedimiento almacenado una vez para obtener ese conjunto de registros.

 

La base de datos altova-no-relation.mdb utilizada en este ejemplo es una versión simplificada de la base de datos altova.mdb que viene con MapForce. Las tablas "Person" y "Address", al igual que todas las relaciones de tabla, se han eliminado en Microsoft Access. Como podemos ver en la imagen siguiente, ninguna tabla del componente altova-no-relation tiene tablas secundarias. Es decir, todas están en el mismo nivel raíz. El contenido de cada tabla se limita a los campos que contiene.

mf_db_relationships_11

Estructura de base de datos sin relaciones explícitas

Imaginemos que queremos ver las oficinas de "Altova" y los departamentos de cada oficina. Recuerde que en altova-no-relation.mdb no existen relaciones de clave principal y foránea explícitas, pero existen de forma lógica (implícitamente), así que las recrearemos localmente en MapForce para alcanzar nuestro objetivo.

 

Podemos definir relaciones locales mientras añadimos la base de datos a la asignación o haciendo clic con el botón derecho en un componente de base de datos y eligiendo el comando Agregar, quitar o editar objetos de la base de datos del menú contextual:

 

1.En el menú Insertar haga clic en el comando Base de datos.

2.En el asistente para la conexión elija la opción Microsoft Access (ADO) y haga clic en Siguiente.

3.Navegue hasta la base de datos altova-no-relation.mdb de la carpeta <Documentos>\Altova\MapForce2021\MapForceExamples\Tutorial\ y haga clic en Conectarse.

4.Marque la casilla de Tablas de usuario.

mf_db_relationships_12

5.Haga clic en el botón Agregar o editar relaciones de la barra de herramientas.

6.Aparece el cuadro de diálogo "Agregar o editar relaciones". Haga clic en el botón Agregar relación.

mf_db_relationships_13

7.Seleccione valores en las dos listas desplegables para crear una relación de clave principal y foránea entre las tablas "Altova" y "Office" (imagen siguiente). En las dos listas desplegables puede seleccionar las tablas u objetos de base de datos para los que deben crearse relaciones. La lista de la izquierda especifica el objeto que almacena la clave principal/única, mientras que la derecha especifica el objeto de clave foránea. El objeto de clave principal/única será el objeto primario en MapForce, mientras que el objeto de clave foránea aparecerá como secundario en el componente de base de datos (véase Gestionar relaciones de BD).

mf_db_relationships_14

8.Haga clic en Aceptar para terminar de crear la definición de relación local y después haga clic en el botón Insertar para insertar la base de datos en el área de asignación.

 

Llegados a este punto, tenemos una relación local entre la columna PrimaryKey de la tabla "Altova" y la columna ForeignKey de la tabla "Office". Como muestra la imagen siguiente, la tabla raíz "Altova" ahora es la tabla primaria de la tabla "Office". Es decir, la tabla "Office" está relacionada con la tabla "Altova" y aparece con un icono de expansión.

mf_db_relationships_15

Sin embargo, todavía no hemos terminado de crear relaciones. Todavía debemos crear una relación entre las tablas Office y Department (imagen siguiente).

mf_db_relationships_16

Para volver a abrir el cuadro de diálogo "Agregar o editar relaciones" haga clic con el botón derecho en el componente de base de datos y seleccione Agregar, quitar o editar objetos de la base de datos en el menú contextual.

 

Para terminar solo falta agregar el esquema de destino a la asignación:

 

1.En el menú Insertar haga clic en el comando Insertar archivo o esquema XML.

2.Navegue hasta el archivo Altova_Hierarchical.xsd de la carpeta <Documentos>\Altova\MapForce2021\MapForceExamples\. Cuando la aplicación solicite un archivo XML, haga clic en Omitir. Cuando la aplicación solicite un elemento raíz, seleccione Altova.

 

Observe que, para poder conservar las relaciones que existen entre las tablas en el XML de destino, todas las conexiones se dibujaron desde la misma tabla raíz y jerárquicamente (desde la tabla "Altova". Para más información consulte el apartado Gestionar relaciones de BD.

mf_db_relationships_17

Si abrimos el panel Resultados, veremos que los elementos Department aparecen anidados en la oficina correspondiente, tal y como queríamos.

 

mf_db_relationships_18

© 2015-2021 Altova GmbH