Una vez introducidos los coneptos y elementos fundamentales, vamos a continuar profundizando en la creación de cubos y dimensiones, y sobre todo en la personalización de éstos y adaptación a las necesidades del negocio.

Una vez vistos los datos a medir, pasemos a analizar las diferentes perspectivas desde las que los vamos a analizar. Vamos a conocer más a fondo esas dimensiones y sus características.

Las Dimensiones se basan en tablas o vistas del Data Source View. Se definen a nivel de base de datos, de forma independiente a los cubos. Y posteriormente, pueden instanciarse ninguna, una o varias veces en cada cubo. Por tanto pasaremos a explicar los conceptos de dimensiones de bases de datos y dimensiones de cubos.

Una dimensiones de base de datos existe con independencia de que esté asociada o no a un cubo. Se basan en columnas de una o más tablas de dimensiones de nuestro Data Source View, que puede estar modelado en estrella (start) o en copo de nieve (snowflake).

Una dimensiones de cubo es una instancia de una dimensión de base de datos en un cubo en particular, pudiendo tener varias instancias de ella, incluso en el mismo cubo. Por ejemplo, podemos tener una dimensión Tiempo a nivel de base de datos, y luego, en el cubo de Ventas, tener tres instancias: Fecha de pedido, Fecha de envío y Fecha de cobro. Esta múltiple instanciación es lo que se conoce como dimensión jugadora de roles (role-playing dimension). Cada instancia de una dimensión de base de datos puede tener propiedades distintas, por ejemplo, el nombre casi siempre lo cambiamos, tal y como hemos visto en el ejemplo anterior de la dimensión Tiempo, que juega los roles de Fecha de pedido, Fecha de envío y Fecha de cobro. Hay otras propiedades que también se pueden cambiar a nivel de dimensión de cubo, como su visibilidad (propiedad visible).

 

Figura 1: Dimensiones de Cubo y Dimensiones de Base de Datos

Figura 1: Dimensiones de Cubo y Dimensiones de Base de Datos

Algunas de las propiedades más significativas de las dimensiones son:

  • AttributeAllMemberName. Podemos tener de manera opcional un nivel All, que está en la parte superior de la jerarquía y agrega todos los miembros del nivel inmediatamente inferior. Este es un miembro generado por el sistema, y su posible existencia dependerá de los valores que configuremos en la propiedad IsAggregatable, si se establece a True existirá un nivel All. Ese nivel podrá tener el nombre que indiquemos en la propiedad AttributeAllMemberName. Valores: el nombre que queramos que aparezca para ese nivel al navegar por la dimensión.
  • WriteEnabled. Permite habilitar la dimensión para escritura. Valores: True, False.
  • Type. Proporciona información a los servidores y a las aplicaciones cliente sobre el contenido de una dimensión. Se utiliza para agregar inteligencia de dimensiones a las aplicaciones. Valores: Regular, Time, Geography, Organization, BillOfMaterials, Accounts, Customers, Products, Scenario, Quantitative, Currency, Rates, Channel, Promotion. Estos valores se aplican a dimensiones y/o cubos.
  • StorageMode. Indica el modo de almacenamiento de la dimensión. Valores: ROLAP, MOLAP.
  • ErrorConfiguration. Indica la acción que realizará el servidor al encontrar diversos errores.
  • UnknownMember. Permite especificar el tratamiento que recibirán los miembros desconocidos. Valores: Visible, Hidden, None.
  • UnknownMemberName. Permite cambiar el valor predeterminado del miembro desconocido al que queramos. Por defecto el valor es Unknown.
  • ProactiveCaching. Para la configuración del caché automático del cubo.

 

Salvador Ramos

Consultor, Formador y Mentor en Business Intelligence. SQL Server MVP.
Director de Formación en SolidQ.
Microsoft MCSE 2012: Business Intelligence.

Latest posts by Salvador Ramos (see all)