Cómo definir una dimensión: WITHIN

Cómo:

El modelo OLAP organiza las estructuras de datos pre-definiendo las dimensiones en el archivo máster, a través del atributo de nombre de campo WITHIN. Una dimensión es un grupo o lista de campos relacionados, llamados elementos.

El atributo WITHIN permite la funcionalidad de drill up y drill down en dimensiones jerárquicas. Para manipular un informe, seleccione un campo activado para OLAP y profundize hasta ver otros niveles de la jerarquía de una dimensión.

Por ejemplo, la jerarquía de regiones de ventas puede estar definida como la dimensión GEOGRAPHY, en el archivo máster, e incluir los siguientes elementos: Región, Estado y Ciudad, en orden descendente. Región, el elemento más alto de esta jerarquía, contendría una lista de todas las Regiones pertenecientes a la dimensión GEOGRAPHY. Estado, el segundo elemento más alto de esta jerarquía, contendría una lista de todos los Estados disponibles en Región, y así sucesivamente. Puede definir dimensiones desde el archivo máster para cualquier origen de datos admitido.

La combinación, o matriz, de dos o más jerarquías dimensionales en un origen de datos activado para OLAP se llama multidimensional. Por ejemplo, aunque los productos se venden en los estados, no tienen por qué estar agrupados en la misma dimensión que los estados. Al contrario, lo más seguro es que los elementos Categoría de producto y Nombre de producto se agrupen una dimensión llamada PRODUCT. Estado sería miembro de la dimensión GEOGRAPHY, que también puede incluir Región y Ciudad. Estas dimensiones están combinadas en una matriz, para que las intersecciones de sus criterios proporcionen valores específicos; por ejemplo, ventas de café en la región noreste.

Puede especificar una lista de valores aceptables para cada elemento (campo) de la dimensión, usando el atributo ACCEPT. Esto se efectúa mediante una lista no modificable en el archivo máster o un archivo de búsqueda. Para más información sobre el atributo ACCEPT, consulte Cómo validar datos: ACCEPT.


Principio de página

x
Sintaxis: Cómo Definir una dimensión
WITHIN='*dimensionname'
WITHIN=field

donde:

'*dimensionname'

Es el nombre de la dimensión y puede incluir hasta 66 caracteres. La dimensión se define en la declaración de campo para el campo situado en la parte superior de la jerarquía. El nombre debe ir precedido de un asterisco y estar entre comillas simples. El nombre debe empezar por una letra y puede consistir de cualquier combinación de letras, dígitos, guiones bajos o puntos. Evite usar caracteres especiales y espacios.

field

Se utiliza para definir la relación jerárquica entre elementos adicionales que se incluirán en una dimensión dada. Después de definir el nombre de dimensión en la parte superior de la jerarquía, cada elemento (campo) usará el atributo WITHIN para enlazarse al campo situado directamente sobre él en la jerarquía. El atributo WITHIN puede referirse a un campo mediante su nombre de campo o su alias. Tenga en cuenta que un nombre dado sólo puede participar en una dimensión y que dos campos no pueden hacer referencia al mismo campo de nivel superior.



Ejemplo: Cómo definir una dimensión

El ejemplo siguiente muestra cómo definir la dimensión PRODUCT en el archivo máster OSALES.

PRODUCT Dimension
           ===> Product Category
               ===> Product Name
FILENAME=OSALES,  SUFFIX=FOC
  SEGNAME=SALES01,  SEGTYPE=S1
     FIELD=PRODCAT,    ALIAS=PCAT,     FORMAT=A11,
       WITHIN='*PRODUCT',$
     FIELD=PRODNAME,   ALIAS=PNAME,    FORMAT=A16,
       WITHIN=PRODCAT,$


Ejemplo: Cómo definir dimensiones múltiples

El siguiente ejemplo anotado muestra cómo definir las dimensiones PRODUCT, GEOGRAPHY y TIME, en el archivo máster OSALES.

PRODUCT Dimension
           ===> Product Category
               ===> Product Name
GEOGRAPHY Dimension
           ===> Region
               ===> State
                   ===> City 
                         ===> Store Name (from the OSTORES Master File)
TIME Dimension
           ===> Year
               ===> Quarter
                   ===> Month
                       ===> Date

Archivo máster OSALES

   FILENAME=OSALES, SUFFIX=FOC
    SEGNAME=SALES01, SEGTYPE=S1
    FIELD=SEQ_NO,    ALIAS=SEQ,   FORMAT=I5,   TITLE='Sequence#',
     DESC='Sequence number in database',$
    FIELD=PRODCAT,   ALIAS=PCAT,  FORMAT=A11,INDEX=I, TITLE='Category',
     DESC='Product category',
     ACCEPT='Coffee' OR 'Food' OR 'Gifts', 
1.      WITHIN='*PRODUCT',$
    FIELD=PRODCODE,  ALIAS=PCODE, FORMAT=A4, INDEX=I, TITLE='Product ID',
     DESC='Product Identification code (for sale)',$
    FIELD=PRODNAME,  ALIAS=PNAME, FORMAT=A16,         TITLE='Product',
     DESC='Product name', 
2.   ACCEPT='Espresso' OR 'Latte' OR 'Cappuccino' OR 'Scone' OR
            'Biscotti' OR 'Croissant' OR 'Mug' OR 'Thermos' OR
            'Coffee Grinder' OR 'Coffee Pot',
        WITHIN=PRODCAT,$
    FIELD=REGION,    ALIAS=REG,   FORMAT=A11, INDEX=I,TITLE='Region',
     DESC='Region code',
     ACCEPT='Midwest' OR 'Northeast' OR 'Southwest' OR 'West', 
3.      WITHIN='*GEOGRAPHY',$
    FIELD=STATE,     ALIAS=ST,    FORMAT=A2, INDEX=I,TITLE='State',
     DESC='State', 
4.   ACCEPT=(OSTATE),
        WITHIN=REGION,$
    FIELD=CITY,       ALIAS=CTY,    FORMAT=A20,        TITLE='City',
     DESC='City',
        WITHIN=STATE,$
    FIELD=STORE_CODE, ALIAS=STCD,  FORMAT=A5, INDEX=I, TITLE='Store ID',
     DESC='Store identification code (for sale)',$
    FIELD=DATE,       ALIAS=DT,    FORMAT=I8YYMD,      TITLE='Date',
     DESC='Date of sales report',
        WITHIN=MO,$ 
5.  FIELD=UNITS,      ALIAS=UN,    FORMAT=I8,     TITLE='Unit Sales',
     DESC='Number of units sold',$
    FIELD=DOLLARS,    ALIAS=DOL,   FORMAT=I8,     TITLE='Dollar Sales',
     DESC='Total dollar amount of reported sales',$
    FIELD=BUDUNITS,   ALIAS=BUNIITS, FORMAT=I8,   TITLE='Budget Units',
     DESC='Number of units budgeted',$
    FIELD=BUDDOLLARS, ALIAS=BDOLLARS,FORMAT=I8,   TITLE='Budget Dollars',
     DESC='Total sales quota in dollars',$
 
6. DEFINE ADATE/A8 = EDIT(DATE);$
   DEFINE YR/I4 = EDIT (EDIT(ADATE,'9999$$$$')); WITHIN='*TIME',$
   DEFINE MO/I2 = EDIT (EDIT(ADATE,'$$$$99$$')); WITHIN=QTR,$
   DEFINE QTR/I1 = IF MO GE 1 AND MO LE 3
     THEN 1 ELSE IF MO GE 4 AND MO LE 6
     THEN 2 ELSE IF MO GE 7 AND MO LE 9
     THEN 3 ELSE IF MO GE 10 AND MO LE 12 
     THEN 4 ELSE 0;
     WITHIN=YR,$ 
7. SEGNAME = STORES01, SEGTYPE = KU, PARENT = SALES01,
     CRFILE = OSTORES, CRKEY = STORE_CODE, $
  1. Declara la dimensión PRODUCT. El nombre debe ir precedido de un asterisco y estar entre comillas simples.
  2. Si lo desea, puede especificar una lista de valores aceptables para cada elemento (campo) de la dimensión. El atributo ACCEPT se especifica mediante una lista no modificable en el archivo máster o un archivo plano externo. La lista de valores aceptables se le presenta como valores de posibles criterios de selección. En este ejemplo, el valor de nombre de producto debe ser Espresso, Latte, Cappuccino, Bollo, Biscotti, Croissant, Taza, Termo, Molinillo de café o Cafetera. Para más información sobre el atributo ACCEPT, consulte Cómo especificar valores aceptables para una dimensión.
  3. Declara la dimensión GEOGRAPHY y define la jerarquía de dimensión de GEOGRAPHY: Región dentro de GEOGRAPHY (parte superior de la jerarquía), Estado dentro de Región y Ciudad dentro de Estado.
  4. En este ejemplo, el atributo ACCEPT está usando un archivo plano externo (OSTATE) para determinar todos los valores posibles de estado (campo ST).
  5. Los cuatro campos, UNITS, DOLLARS, BUDUNITS y BUDDOLLARS, son ejemplos de campos de medidas. El campo de medida normalmente se emplea para analizar cantidades. Por ejemplo, Unidades, Dólares, Unidades de presupuesto y Dólares de presupuesto son medidas que especifican la cantidad de unidades vendidas, el total de ventas registradas en dólares, la cantidad de unidades presupuestadas y la cuota total de ventas en dólares, respectivamente.
  6. Muestra lo siguiente:

    Los campos virtuales pueden incluirse en cualquier nivel de una dimensión. En este ejemplo, los campos YR, MO y QTR están definidos en la dimensión TIME. El atributo WITHIN de un campo virtual debe estar colocado en la misma línea que el punto y coma que finaliza la expresión.

    Cómo definir la jerarquía de dimensiones para la misma dimensión TIME: Año en Tiempo, Trimestre en Año, Mes es Trimestre, Fecha en Mes.

    Los campos de una jerarquía pueden ocurrir con cualquier orden en el archivo máster.

  7. Las dimensiones pueden abarcar una estructura JOIN dinámica o estática, a través de un nombre cualificado. En este ejemplo, se realiza una referencia cruzada estadística entre el origen de datos OSALES y el origen de datos OSTORES, mediante el campo común STORE_CODE. Mediante este enlace, la aplicación OLAP es capaz de recuperar el valor del nombre de tienda del origen de datos OSTORES. Tenga en cuenta que STORE_NAME, situado en el archivo máster OSTORES, es un elemento de la dimensión GEOGRAPHY, que fue definida en el archivo máster OSALES. A continuación, el archivo máster OSTORES:
    FILENAME=OSTORES, SUFFIX=FOC
    SEGNAME=STORES01, SEGTYPE=S1
     FIELD=STORE_CODE, ALIAS=STCD,  FORMAT=A5, INDEX=I,TITLE='Store ID',
       DESC='Franchisee ID Code',$
     FIELD=STORE_NAME, ALIAS=SNAME, FORMAT=A23,        TITLE='Store Name',
       DESC='Store Name', WITHIN=SALES01.CITY,$ 
     FIELD=ADDRESS1,   ALIAS=ADDR1, FORMAT=A19,        TITLE='Contact',
       DESC='Franchisee Owner',$
     FIELD=ADDRESS2,   ALIAS=ADDR2, FORMAT=A31,        TITLE='Address',
       DESC='Street Address',$
     FIELD=CITY,       ALIAS=CTY,   FORMAT=A22,        TITLE='City',
       DESC='City',$
     FIELD=STATE,      ALIAS=ST,    FORMAT=A2,         TITLE='State',
       DESC='State',$
     FIELD=ZIP,        ALIAS=ZIP,   FORMAT=A6,         TITLE='Zip Code',
       DESC='Postal Code',$

WebFOCUS