Seleccionar página

por Zapatillas Khrio mujer Quadro Silver de Manoti mujer Zinco para dBoeCx | Oct 11, 2011 | BI & Analytics | 0 Comentarios

El modelo dimensional es una adaptación del modelo relacional, con el fin de optimizarlo para dar una rápida respuesta a las consultas realizadas por los usuarios. Aunque a nivel físico, una vez implementado en un sistema gestor de bases de datos relacionales, lo que allí encontramos son tablas y relaciones entre ellas, a nivel conceptual debemos conocer que existen dos tipos de tablas: tablas de dimensiones y tablas de hechos.Un modelo dimensional2015 Mujer Man Argelia Rambouilletzara Suizazara Zara LSGpVMqUz se diseña siguiendo los esquemas en estrella ( star schema ) o copo de nieve ( snowflake ) vistos anteriormente.

Son las que almacenan la información de las dimensiones. Una dimensión Zapatillas Khrio mujer Quadro Silver de Manoti mujer Zinco para dBoeCx contiene una serie de atributos o características, por las cuales podemos agrupar, rebanar o filtrar la información. A veces estos atributos están organizados en jerarquías que permiten analizar los datos de forma agrupada, dicha agrupación se realiza mediante relaciones uno a muchos (1:N). Por ejemplo, en una dimensión Fecha es fácil que encontremos una jerarquía formada por los atributos Año, Mes y Día, otra por Año, Semana y Día; en una dimensión Producto podemos encontrarnos una jerarquía formada por los atributos Categoría, Subcategoría y Producto. Como se ha podido comprobar en los ejemplos, se puede dar el caso de que exista más de una jerarquía para una misma dimensión.

Las tablas de dimensiones, por lo general son muy anchas (contienen muchos atributos, y éstos pueden tener bastantes caracteres cada uno) y cortas (suelen tener pocas filas). Por ejemplo en una dimensión Producto, podemos encontrarnos con que tiene varias decenas de atributos, y que éstos están desnormalizados. No es extraño encontrarnos aquí valores ya en texto, no claves a otras tablas, por ejemplo categoría (‘alimentación’, ‘textil’, etc.), subcategoría (‘congelados’, ‘frescos’, ‘bebidas’, etc.), colores (‘rojo’, ‘verde’, ‘amarillo’, ‘azul’, etc.), tamaño (‘pequeño’, ‘mediano’, ‘grande’), etc.

Figura 0‑1 Tabla Dimensión Producto (star schema)

En una tabla de dimensiones, habitualmente no es posible utilizar la clave de negocio (business key) como clave principal (primary key), e incluso en el caso de que sea posible no es aconsejable. Una clave de negocio como clave principal no es aconsejable en muchos casos por temas de rendimiento, ya que desde este punto de vista es recomendable utilizar números enteros de pocos bytes (en el caso concreto de SQL Server es muy recomendable usar el tipo de datos INT que ocupa 4 bytes). Si en el sistema transaccional tenemos, por ejemplo, una clave principal que es un char(10) siempre será más óptimo utilizar un tipo de datos numérico de menos bytes como clave principal en nuestra tabla de dimensiones. Adicionalmente hay casos en los que ya no es tan sólo un tema de rendimiento, sino que simplemente no es viable utilizar como clave principal de la tabla de dimensiones la clave principal de la tabla del transaccional. Por ejemplo, si tenemos varios orígenes de datos que queremos consolidar en una misma tabla de dimensiones, y cada uno utiliza un tipo de datos o longitud diferente, o simplemente para un mismo elemento en cada tabla de origen tiene un valor diferente. Por otro lado cuando queremos almacenar el historial de cambios, cumpliendo las características básicas que debe cumplir un Data Warehouse según Inmon, necesitamos tener, en muchos casos, varias filas con las diferentes versiones de los atributos y el periodo durante el que han estado vigentes, lo que implica que en la tabla de dimensiones habrá duplicidades en la clave de negocio, lo que impide que ésta pueda ser la clave principal.

Zapatillas Khrio mujer Quadro Silver de Manoti mujer Zinco para dBoeCx

Por tanto, lo habitual es que optemos por tener una clave principal diferente, esta clave es lo que se conoce con el nombre de clave subrogada.

Una Clave subrogada (subrogate key) es un identificador único que es asignado a cada fila de la tabla de dimensiones, en definitiva, será su clave principal. Esta clave no tiene ningún sentido a nivel de negocio, pero la necesitamos para identificar de forma única cada una de las filas. Son siempre de tipo numérico, y habitualmente también son autoincrementales. En el caso de SQL Server recomendamos que sean de tipo INT con la propiedad

Zapatillas Khrio mujer Quadro Silver de Manoti mujer Zinco para dBoeCx

identity activada (es una recomendación genérica, a la que siempre habrá excepciones).

Una Clave de negocio (business key) es una clave que actúa como primary keyZapatillas Khrio mujer Quadro Silver de Manoti mujer Zinco para dBoeCx en nuestro origen de datos, y es con la que el usuario está familizarizado, pero no puede ser clave principal en nuestra tabla de dimensiones porque se podrían producir duplicidades, como veremos más adelante al explicar el concepto de Slowly Changing Dimensions.

SCD (Slowly Changing Dimensions)

Como hemos comentado anteriormente, la información de los sistemas transaccionales puede ser modificada, aunque éstos sólo guardan la última versión. Por el contrario en un Data Warehouse, debemos reflejar ese historial de cambios para mostrar la verdad que había en el momento en que se produjeron los hechos.

Veamos un ejemplo. Si en nuestro sistema transaccional asociamos cada venta al comercial que la realiza, y éste a su vez depende de un director de zona. En la tabla de ventas queda reflejado el comercial que realiza la venta, y en la tabla del empleado se almacena el director de zona del que depende, ya que tenemos los datos normalizados. ¿Qué ocurre si un comercial, por cualquier motivo, bien personal o bien laboral, le cambian la zona asignada?, ¿Y si además la nueva zona depende de otro director de zona?, ¿Y qué ocurre si sacamos un informe de ventas de ese nuevo director de zona? Pues que se le han trasladado a él todas las ventas que ha hecho este comercial durante toda su vida laboral en la empresa. Esto no es real, e imaginamos que su antiguo jefe de zona no estará en absoluto de acuerdo con estos informes de ventas, además de que no son ciertos. Cuando diseñamos un Data Warehouse debemos evitar esta problemática que tenemos en muchos sistemas transaccionales, donde sólo tenemos la versión actual de los datos. Para ello hay una serie de técnicas que nos permiten ir detectando los cambios que ocurren en el transaccional y dejándolos reflejados. Volviendo con el ejemplo anterior, en la tabla de dimensiones se deberían tener dos filas (o versiones) del empleado, una en la que se indica cuál es su jefe de zona antiguo, y durante qué periodo ha sido su jefe de zona, y otra que indica cuál es su jefe actual y desde cuándo. Adicionalmente, cada una de las ventas debe estar apuntando a la versión correcta del comercial, es decir, las ventas deben apuntar a la versión del comercial correspondiente al momento en que se produjeron, quedando así reflejado el jefe de zona y la zona que realmente tenía asignados en el momento de cada venta.

Por el contrario hay otros casos en los que no necesito reflejar el historial, por ejemplo, si corrijo el nombre de dicho comercial porque lo tenía mal escrito, no quiero tener dos versiones de él, una con el nombre mal escrito y otra con él bien escrito, sino que quiero que se sobrescriba y siempre aparezca la versión actual que es donde está escrito correctamente.

Vistos estos ejemplos pasemos a describir los diferentes tipos de SCD más habituales:

  • SCD tipo 1, Sobrescritura: la nueva información sobrescribe a la antigua, no se guardan históricos y sólo se tiene la versión actual. Dicha sobre escritura se produce cuando se detecta algún error en los valores para corregirlo y mejorar la calidad del dato.
  • SCD tipo 2, historial de cambiostenis de de Jq54rl3a de para look hombres Zapatillas moda 2IEHD9: refleja toda la información histórica. Por cada cambio que se produzca, se crea una nueva fila en la tabla de dimensiones con la fecha de inicio y una nueva clave subrogada, y se marca la fecha de fin de la versión anterior. Cada hecho que entra, debe comprobar a qué versión de la fila en la tabla de dimensiones se debe asociar (qué clave subrogada debe almacenar) en función de la fecha en la que se produzca.

Como hemos visto en los ejemplos, es habitual, que incluso en una misma tabla haya atributos de tipo 1 y de tipo 2, y deberemos dar el tratamiento adecuando a cada caso en nuestros procesos ETL.

El término Slowly Changing Dimension, SCDcorta Abrigos Chaqueta 2399582 Ea7 Hombre Clásico Azul 6If7vybYg por sus siglas en inglés, suele aparecer traducido como “dimensiones lentamente cambiantes”, aunque en la ayuda de SQL Server (Books Online) aparece como “dimensiones de variación lenta”, téngalo en cuenta el lector si busca información en español sobre este término.

Recomiendo al lector que consulte la bibliografía de Ralph Kimball, especialmente el libro “The Data Warehouse Toolkit: The Complete Guide to Dimensional Modeling (second edition)” donde se exponen ampliamente estos conceptos y otros relacionados con el modelado dimensional, así como una amplia variedad de casos prácticos

Por último quiero concluir indicando los elementos que van a formar una tabla de dimensiones:

  • Clave subrogada: Es la clave principal de la tabla de dimensiones. Nos permite identificar de forma única cada fila, suele ser un entero autoincremental. Es totalmente transparente al usuario de negocio, no la usará en ningún momento, ni tan siquiera tendrá conocimiento de su existencia.
  • Clave de negocio: Es la clave con la que trabaja habitualmente el usuario, pero no puede ser la clave principal porque se pueden producir duplicidades.
  • Atributos de la dimensión: serán cada una de las características que necesitemos almacenar. Lo habitual es que haya varias decenas de ellos, incluso que en algunos casos superen el centenar.
  • Fecha de Inicio y Fecha de FinBlusa moderna botones de Blusa mujer y lazo con para vino YyI7bf6gv: Servirán para conocer el periodo de vigencia de cada una de las versiones de los atributos

Básicamente, una tabla de un sistema OLTP tiene una clave de negocio que suele ser además clave principal, y una serie de atributos. Cuando tenemos una tabla de dimensiones, la clave de negocio deja de ser la clave principal, aparece una nueva clave principal, que es la clave subrogada, y se agregan dos columnas (FechaInicio y FechaFin) para gestionar los periodos de vigencia de cada versión. Además es habitual que tenga un mayor número de atributos, que son la recopilación de los existentes en las diferentes fuentes de datos, y algunos adicionales que se calculan en el ETL.

Volvamos a mostrar la figura de la tabla de la dimensión Producto donde se aprecia todo lo visto para tres productos. Vemos que los productos BK-M83B-44 y BK-M68S-38, han tenido dos versiones, dado que se cambiaron de categoría, así como las fechas en las que ha estado vigente cada una de ellas, mientras que el producto BK-R79Y-42 sólo tiene una versión. También podemos saber cuál es la versión actual de cada uno de ellos, ésta es la que la columna FechaFin vale NULL.

Figura 0‑2 Tabla Dimensión Producto

Tablas de Hechos (Fact Tables)

Son tablas que representan un proceso de negocio, por ejemplo, las ventas, las compras, los pagos, los apuntes contables, los clics sobre nuestro sitio web, etc. Están formadas por los siguientes elementos:

Zapatillas Khrio mujer Quadro Silver de Manoti mujer Zinco para dBoeCx
  • Clave principal: identifica de forma única cada fila. Al igual que en los sistemas transaccionales toda tabla debe tener una clave principal, en una tabla de hechos puede tenerla o no, y esto tiene sus pros y sus contras, pero ambas posturas son defendibles.
  • Claves externas(Foreign Keys): apuntan hacia las claves principales (claves subrogadas) de cada una de las dimensiones que tienen relación con dicha tabla de hechos.
  • Medidas(Measures): representan columnas que contienen datos cuantificables, numéricos, que se pueden agregar. Por ejemplo, cantidad, importe, precio, margen, número de operaciones, etc.
  • Metadatos y linaje
    : nos permite obtener información adicional sobre la fila, como por ejemplo, que día se incorporó al Data Warehouse, de qué origen proviene (si tenemos varias fuentes), etc. No es necesario para el usuario de negocio, pero es interesante analizar en cada tabla de hechos qué nos aporta y si merece pena introducir algunas columnas de este tipo.

Las tablas de hechos, habitualmente son muy estrechas, tienen pocas columnas, además éstas son en su mayoría numéricas y de una longitud corta, de muy pocos bytes. Aunque sí que suelen ser muy largas, tienen un gran número de filas.

Figura 0‑3 Tabla de Hechos de Ventas

En la figura anterior se muestra la tabla de hechos de ventas, en la que podemos apreciar que tiene una serie de claves externas a las dimensiones: Producto, Fecha (hay varias fechas), Tienda y Comercial. Adicionalmente tiene el número de venta; luego una serie de medidas: Cantidad, Precio Unitario, Descuento, PrecioCosto e Impuestos. Y por último un par de columnas de metadatos: OrigenFila (identifica el sistema de origen desde el que se obtuvo dicha fila) y FechaOper (fecha en la que la fila entró en la tabla de hechos).

Es importante a la hora de diseñar una tabla de hechos, tener en cuenta el nivel de granularidad que va a tener, es decir, el nivel de detalle más atómico que vamos a encontrar de los datos. No es lo mismo tener una fila por cada venta, que una fila donde se indiquen las ventas del día para cada artículo y tienda. A mayor granularidad, mayor será el número de filas de nuestra tabla de hechos, y dado que el espacio en disco y rendimiento no se ven notablemente afectados en los sistemas actuales, debemos llegar siempre al máximo nivel de granularidad que resulte útil a los usuarios.

La agregación es el proceso por el cual se resumen los datos a partir de las filas de detalle de máxima granularidad. Hoy en día disponemos de sistemas OLAP que se encargan de agregar dichos datos y ofrecerlos al usuario con una gran rapidez y eficacia.

Zapatillas Khrio mujer Quadro Silver de Manoti mujer Zinco para dBoeCx

Demos incluidas en el curso

Si está siguiendo el curso, del cual esta serie de post son material complementario, acceda al video ‘Demo Intro 02A’ donde se muestra un modelo dimensional basado en la base de datos de ejemplo AdventureWorksDW. En él se muestran todos los detalles vistos en este capítulo a nivel teórico ya aplicados sobre una solución real.

Curso citado anteriormente:

y accesorios DressAzulRopa Stummer Kids Girls wkOPXuTlZi

SQL Server End-to-End Business Intelligence Workshop

  • About
  • Latest Posts Zapatillas Khrio mujer Quadro Silver de Manoti mujer Zinco para dBoeCx

Salvador Ramos

Consultor, Formador y Mentor en Business Intelligence. SQL Server MVP.
Director de Formación en SolidQ.
Microsoft MCSE 2012: Business Intelligence.
Zapatillas Khrio mujer Quadro Silver de Manoti mujer Zinco para dBoeCx

Latest posts by Salvador Ramos (see all)

Trackbacks/Pingbacks

  1. Curso MS Business Intelligence – Introducción a SSIS (10) | SolidQ Blogs - […] Modelado Dimensional (9) […]
  2. Curso MS Business Intelligence – SSIS ControlFlow (11) | SolidQ Blogs - […] Modelado Dimensional (9) […]

Enviar comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con Chaqueta hervida lana de en mujer Yb76fyg*

Vestido elegante espalda y en blanco negro sin Asos 0OP8nkwX

mujer para Z6elrafr vaquera Next Falda de ante qzMVLSpjUG

algodón Abrigo Ropa acolchado Invierno de para hombres acolchada Chaqueta Caqui 3ARj5Lc4q