Cómo relacionar varios grupos de campos

En esta sección:

Después de describir un segmento, puede relacionar unos segmentos con otros para construir estructuras de datos más sofisticadas. Puede:

Para describir una estructura de datos de muchos segmentos, independientemente de que se trate de un origen de datos con múltiples segmentos o de varios orígenes unidos, debe tener en cuenta lo siguiente:


Principio de página

x
Recursos para especificar la relación de un segmento

Existen varios recursos que permiten especificar las relaciones entre los segmentos. Este capítulo explica el uso de un archivo máster y un archivo de acceso para especificar una relación. El comando JOIN, que une los segmentos para formar una estructura sobre la que generar informes, aparece descrito en el manual Cómo crear informes con el lenguaje WebFOCUS .

Un recurso relacionado, el comando MATCH, permite el uso de muchos tipos de relaciones, primeramente describiendo la relación como una serie de condiciones de extracción y fusión, y después, fusionando los datos relacionados en un nuevo origen de datos de segmento único. El resultado no es una estructura unida, sino un origen de datos completamente nuevo que puede ser desarrollado más aún. El origen de datos original permanece sin cambios. El comando MATCH FILE aparece explicado en el manual Cómo crear informes con el lenguaje WebFOCUS .


Principio de página

x
Cómo identificar un segmento principal: PARENT

Cómo:

El atributo PARENT identifica un segmento principal. Especifique el atributo PARENT, en la declaración de segmento del archivo máster. Puesto que los segmentos raíz no pertenecen a un elemento principal, no necesita especificar el segmento PARENT al declarar una raíz.

La declaración del segmento principal debe preceder a la de cualquiera de sus segmentos secundarios, en el archivo máster.

Si la relación principal-secundario se ha implementado de forma permanente dentro de la estructura del origen de datos, como en un origen de FOCUS, no podrá cambiar el atributo PARENT sin afectar a la estructura subyacente del origen de datos. Sin embargo, si la relación es temporal, como cuando hay varias tablas relacionales unidas en el archivo máster, sí es posible modificar el atributo PARENT.

Al especificar un atributo principal para cualquier segmento, todos los segmentos posteriores pertenecerán al mismo principal.



x
Sintaxis: Cómo Identificar el segmento principal
PARENT = segment_name

donde:

segment_name

Si no hay un atributo PARENT especificado en un archivo máster, cada segmento toma como principal, por defecto, el segmento anterior. Si se ha especificado un atributo PARENT, todos los segmentos posteriores lo tomarán como segmento principal, a menos que se indique lo contrario, explícitamente.

Recomendamos que emplee el atributo PARENT para los segmentos únicos con un SEGTYPE de U.



Ejemplo: Cómo identificar un segmento principal

En el origen de datos EMPLOYEE, SALINFO es el segmento principal de DEDUCT, así que la declaración de segmento de DEDUCT incluirá el siguiente atributo:

PARENT = SALINFO

Principio de página

x
Cómo identificar el tipo de relación: SEGTYPE

El atributo SEGTYPE especifica el tipo de relación entre un segmento y su principal. SEGTYPE forma parte de la declaración del segmento y se usa en distintos tipos de orígenes de datos. En orígenes de datos secuenciales, VSAM e ISAM, consulte Cómo describir un origen de datos secuencial, VSAM o ISAM. Para los orígenes de datos de FOCUS consulte Cómo describir un origen de datos de FOCUS. Para otros tipos de orígenes de datos consulte la documentación correspondiente a su adaptador de datos.


Principio de página

x
Cómo funciona la eficiencia del subárbol de referencia mínima

En cualquier estructura de base de datos que tenga más de una tabla o segmento, WebFOCUS manipula la recuperación accediendo, únicamente, a los datos del subárbol de referencia mínima, que es un subconjunto de la estructura de base de datos completa. El subárbol de referencia mínima está compuesto, únicamente, por segmentos que contengan campos citados o cualquier segmento participante, necesario para completar la estructura.

Observe la siguiente estructura de base de datos, compuesta por tres segmentos, A, B y C; donde A es el principal de B y B el de C. El segmento A es el segmento raíz. Esta estructura puede tratarse de tres tablas unidas, diferentes, o de una sola estructura multisegmento.

Si la solicitud de una base de datos sólo hace referencia a los campos del segmento A, sólo se recuperan los datos de A. Del mismo modo, si se solicitan los campos de los segmentos A y B, sólo se recuperan estos dos segmentos. No se incurre en ningún gasto de recuperación adicional, como ocurriría si se recuperaran los tres segmentos en cada solicitud.

Con respecto a las estructuras unidas, existe una referencia explícita al segmento raíz, que siempre se recupera en una solicitud de base de datos. Si la solicitud de una estructura unida hace referencia, únicamente, a los campos del segmento B, se recuperan los segmentos A y B, puesto que se sobrentiende que el segmento raíz (A) está vinculado a B. Además, si los campos del segmento C sólo aparecen citados, se recuperan los tres segmentos, debido a que se sobrentiende que están vinculados a C. Los costes de recuperación son más altos cuando se recuperan los segmentos participantes en una solicitud.

Las estructuras multisegmento, definidas en el mismo archivo máster, no presentan ninguna referencia implícita al segmento raíz. Cuando las solicitudes de este tipo de estructura sólo hacen referencia a los campos de un segmento, como el C, sólo se recupera un segmento (C). Sin embargo, si aparecen citados los campos de A y C, se recuperan los tres segmentos, ya que el segmento B es necesario para completar la estructura. Si todos las relaciones posibles de las bases de datos están descritas en un solo archivo máster, puede reducir los costes asociados a la recuperación de segmentos que no aparezcan citados.


WebFOCUS