Una vez que haya determinado el grano del modelo, identifique las dimensiones verdaderas para ese grano. Debe crear columnas, jerarquías y casos para el esquema de copo de nieve.
Al identificar tablas de dimensiones, se recopilan los siguientes metadatos:
- Nombres de dimensión
- Definiciones de negocio
- Jerarquías
- Gestión de cambios de dimensión
- Frecuencia y estadísticas de carga
- Estadísticas de uso
- Reglas y estadísticas de archivado
- Reglas y estadísticas de depuración
- Calidad y precisión de los datos
- Claves primarias y foráneas y manera de generar las claves
- Información de origen de datos
- Hechos
Identificación de dimensiones
Identifique las dimensiones verdaderas para el grano del modelo.
Las tablas de dimensiones contienen columnas que describen los registros de hechos en la tabla de hechos. Algunas de estas columnas proporcionan información descriptiva. Otras columnas especifican cómo se resumen los datos de la tabla de hechos para proporcionar información útil. Las tablas de dimensiones contienen jerarquías que ayudan a resumir los datos. Las tablas de dimensiones son más pequeñas, tablas de búsqueda desnormalizadas que contienen columnas descriptivas a las que se hace referencia al definir las consultas.
Para obtener más información sobre las tablas, consulte Tablas y entidades de dimensiones.
Para identificar dimensiones, realice los pasos siguientes:
- Utilice la definición de grano para localizar posibles dimensiones.
- Liste todas las dimensiones asociadas a este grano.
Defina el nivel de detalle que desea incluir en esa dimensión.
- Cree claves sucedáneas para las claves primarias de las dimensiones.
Para obtener más información sobre las claves sucedáneas, consulte Claves sucedáneas.
Identificación de dimensiones compartidas
Identifique las dimensiones compartidas que haya disponibles, en vez de rediseñar las dimensiones. Identifique si una dimensión en uso existe en el depósito de datos de empresa o modelo dimensional. Para obtener más información sobre las dimensiones compartidas, consulte
Dimensiones compartidas.
Para identificar una dimensión compartida, realice los pasos siguientes:
- Identifique si existe una dimensión. Si la dimensión existe, debe utilizarla. Si la dimensión existe, no identifique los atributos dimensionales de esa dimensión específica.
Comparta una dimensión con una dimensión existente aunque la dimensión compartida sólo contenga un subconjunto de atributos de la dimensión primaria.
- Si la dimensión no existe, cree una dimensión que utilizará en toda la empresa. Si el modelo dimensional requiere una dimensión que no existe, diseñe una nueva dimensión. Cuando diseñe esta dimensión, interactúe con expertos en la materia para averiguar cómo tienen previsto utilizar la dimensión.
Identificación de columnas y jerarquías dimensionales
Después de identificar las dimensiones, rellene las dimensiones con columnas. Utilice las columnas descriptivas para definir los criterios de restricción para las consultas.
Considere los puntos siguientes cuando diseñe las dimensiones:
- Conserve la clave del sistema origen
- Utilice una entrada independiente en la tabla de dimensiones para conservar la clave del sistema origen natural de la entidad que se va a utilizar en el sistema de origen.
- Utilice claves sucedáneas
- Utilice una clave sucedánea para la clave primaria de una dimensión. No es necesario que analice la clave sucedánea. Para obtener más información sobre las claves sucedáneas, consulte Claves sucedáneas.
- Cree columnas descriptivas exclusivas en el modelo.
Las columnas de una dimensión reflejan las áreas potenciales de interés que se pueden utilizar para los datos agregados o para crear restricciones y notificar interrupciones.
Cree columnas que sean descriptivas y fácilmente comprensibles.
Defina columnas que puedan contener un valor NULL cuando una columna no se aplica a un elemento específico o se desconoce su valor.
Defina nombres de columna exclusivos en el modelo. Si tiene nombres duplicados en distintas tablas de dimensiones, cree una distinción. Por ejemplo, si tiene múltiples columnas denominadas Código de tipo de dirección, renombre una columna como Código de tipo de dirección de beneficiario y otra columna como Código de tipo de dirección de prima.
Documente correctamente todas las columnas.
- Gestión de códigos
- Si utiliza códigos en la dimensión, proporcione documentación del código. Por ejemplo, si identifica sucursales mediante un código de sucursal, en el que cada código representa un nombre de sucursal, incluya el código y el nombre.
Una vez que haya definido las columnas, puede definir las jerarquías de la dimensión. Una jerarquía es una serie en cascada de relaciones de muchos a uno. Una jerarquía contiene distintos niveles, y cada uno corresponde a un atributo de dimensión. Para obtener más información sobre las jerarquías, consulte Jerarquías.
Identificación de la granularidad de las dimensiones de fecha y hora
Identifique la granularidad de las dimensiones de fecha y hora. Las dimensiones de fecha y hora ayudan a determinar la granularidad del modelo dimensional completo y el nivel de información almacenado en el modelo. Si define un grano incorrecto en la dimensión de fecha o de hora, es posible que omita dimensiones importantes. Por ejemplo, si diseña un modelo dimensional para un sistema de gestión de pedidos y diseña el grano de la dimensión de fecha como trimestral, es posible que pase por alto otras dimensiones (como la de hora o empleado). Puede incluir esas otras dimensiones si el modelo define el grano de la dimensión de datos a nivel diario.
- Dimensión de fecha
- Dado que todos los modelos dimensionales se basan en unidades de tiempo, cada despensa de datos tiene una dimensión de fecha. Por ejemplo, quizá desee medir el rendimiento del negocio transcurrido un tiempo. Un modelo dimensional puede contener varias dimensiones de fecha.
La dimensión de fecha generalmente no tiene un sistema de origen OLTP conectado a la dimensión. Puede desarrollar la dimensión de fecha antes de diseñar el modelo dimensional. Para crear una dimensión de fecha, realice los pasos siguientes:
- Identifique todas las columnas que necesite.
- Utilice sentencias SQL para rellenar columnas tales como Fecha, Día, Mes y Año de la tabla de dimensiones de fecha. Es posible que deba introducir datos manualmente en las columnas especiales. Por ejemplo, si realiza un seguimiento de los días no comerciales (como las vacaciones), debe introducir Navidad o San Esteban manualmente. También debe introducir manualmente fechas como el año, mes y trimestre fiscal, así como los años fiscales.
Los datos de fecha se suelen almacenar en una dimensión de datos diferente (en vez de en una columna de fecha de una tabla de hechos) por dos razones:
- Hay varios atributos de fecha que las funciones de fecha SQL no soportan. Estas funciones incluyen los períodos fiscales, las vacaciones, las temporadas, los días de la semana, los fines de semana y las fiestas nacionales. Cuando cree una dimensión de fecha, puede consultar los indicadores de rendimiento del negocio a través de varios atributos fiscales y relacionados con fechas.
Los indicadores de rendimiento no se muestran si utiliza una columna de fecha u hora SQL en la tabla de hechos.
- Es mucho más fácil arrastrar las columnas desde una tabla de fechas en vez de utilizar funciones SQL complejas para crear la lógica de los informes.
- Dimensión de hora
En el modelado dimensional puede gestionar las horas de dos maneras:
- Hora del día como una dimensión independiente
- Hora del día como un hecho
Debe gestionar los datos de hora en una tabla de dimensiones pero no un hecho en la tabla de hechos. Debe crear una dimensión de hora si tiene que dar soporte al resumen de los periodos de tiempo en agrupaciones más resumidas para la creación de informes y el análisis. Por ejemplo, cree una dimensión de tiempo para las siguientes agrupaciones resumidas:
- Horas
- Agrupaciones de tiempo específicas de negocio (turnos de mañana, de noche o de última hora de la tarde durante los días de la semana)
También debe crear una dimensión de hora si desea representar distintas jerarquías para el tiempo que va a medir. Por ejemplo, cree distintas jerarquías para el tiempo estándar y el tiempo militar.
Sin embargo, si no resume ni filtra los grupos de hora del día, exprese la hora como un hecho en la tabla de hechos. En este caso, el tiempo se considera un simple hecho numérico en el tipo de datos de indicación de fecha y hora.
Nota: Expresar el tiempo como un hecho en la tabla de hechos dificulta el proceso de resumen y creación de informes si tiene que analizar los datos almacenados a lo largo de un período de tiempo.
Puede resumir y crear un informe de los datos fácilmente si crea una dimensión de hora diferente.
Identificación de dimensiones que cambian lentamente
Debe identificar las dimensiones que cambian lentamente y determinar cómo gestionará los datos cambiantes.
Una dimensión que cambia lentamente es aquella cuyos atributos para un registro cambian lentamente a lo largo del tiempo. Por ejemplo, es posible que necesite realizar un seguimiento de las transferencias de empleados en la empresa.
El entorno de trabajo soporta los siguientes tipos de dimensiones que cambian lentamente:
- Tipo 0
- No se realizan cambios en la dimensión.
- Tipo 1
- Nuevos datos sobrescriben los datos antiguos. No se hace un seguimiento de los cambios históricos.
- Tipo 2
- Con este método, se crean dos entradas distintas. El registro original y el nuevo registro están disponibles en la tabla. La nueva fila obtiene su propia clave primaria (clave sucedánea).
- Tipo 4
- Se crean tablas distintas para almacenar algunos o todos los datos históricos.
Sólo una tabla contiene los datos actuales, y cuando se producen actualizaciones, los datos antiguos se desplazan a la tabla histórica.
- Tipo 6
- Se combina el tipo 1, el tipo 2 y el tipo 3 (almacenar datos en columnas distintas de la misma tablas). Generalmente, los datos antiguos se desplazan a registros y columnas diferentes, y los nuevos datos se colocan en los registros originales.
Identificación de casos para dimensiones de copo de nieve
Un diseño de esquema de copo de nieve se crea si las tablas de dimensiones se normalizan y expanden en un esquema de estrella. Una tabla de dimensiones tiene estructura de copo de nieve cuando los atributos de baja cardinalidad de la dimensión se han colocado en tablas normalizadas diferentes y estas tablas normalizadas se vuelven a unir a la tabla de dimensiones original.
Nota: La estructura de copo de nieve en el entorno del modelo dimensional no se recomienda. La estructura de copo de nieve dificulta la comprensión del modelo dimensional. La estructura de copo de nieve también puede reducir el rendimiento, ya que es necesario unir más tablas.
Sólo debe crear una estructura de copo de nieve en una dimensión de un modelo dimensional en dos casos:
- La tabla de dimensiones contiene dos o más conjuntos de atributos que definen información en distintos granos.
- Los conjuntos de atributos de la misma tabla de dimensiones se rellenan a través de distintos sistemas de origen.
No cree estructuras de copo de nieve en jerarquías de una tabla de dimensiones en tablas distintas. Las jerarquías deben pertenecer únicamente a la tabla de dimensiones. No cree una estructura de copo de nieve en las jerarquías. Varias jerarquías pueden pertenecer a la misma dimensión si esta se ha diseñado con el nivel de detalle más bajo.
Si las jerarquías están divididas en tablas distintas, el rendimiento resultará afectado, ya que son necesarias más uniones. En algunas situaciones, puede crear una estructura de copo de nieve en las jerarquías de una tabla principal. Cuando utilice un agregado de la tabla de hechos, utilice sólo dimensiones de copo de nieve con las jerarquías para evitar uniones en grandes tablas de dimensiones. Por ejemplo, si tiene información de marca que desea separar de una tabla de dimensiones de producto, cree una dimensión de copo de nieve Marca que contenga una sola fila para cada marca utilizando menos filas que en la tabla de dimensiones Producto.
Nota: Si utiliza demasiadas tablas en un esquema de copo de nieve, el diseño puede resultar demasiado complejo. El modelado dimensional tiene como objeto crear un modelo simple, fácil de entender. Si tiene más tablas, debe crear más uniones. El rendimiento disminuye al crear más uniones.