Algunos escenarios para las relaciones M: M en un modelo de almacén de datos
La mayoría de los servidores OLAP y los sistemas ROLAP tienen un medio para lidiar con las estructuras de datos M: M ahora, pero hay algunas advertencias sobre esto a las que deberá prestar atención. Si implementa relaciones M: M, deberá vigilar su capa de informes y las herramientas que desea admitir.
Escenario 1: dimensión M: M en una tabla de hechos
Un ejemplo de esto podría ser múltiples conductores en una política de motor. Si agrega o elimina un controlador, la transacción de ajuste de la política puede tener una relación con una lista de controladores que cambia con el ajuste.
Opción 1: tabla de puente M: M driver-fact
Esto tendrá un gran volumen de datos, ya que tiene controladores x filas de transacciones para una política determinada. SSAS puede consumir esta estructura de datos directamente, pero es más lento consultar a través de una herramienta ROLAP.
Si su relación M: M se basa en entidades que son específicas de la fila de hechos (p. Ej., Conductores en un automóvil), esto también podría ser apropiado para una herramienta ROLAP, siempre que su herramienta ROLAP admita relaciones M: M (p. Ej., Utilizando contextos en los negocios Objetos).
Opción 2: tabla de dimensiones de 'combinaciones' ficticias
Si está asignando una lista de códigos comunes a una tabla de hechos (es decir, las entidades vinculadas no son peculiares de la fila de hechos), puede adoptar otro enfoque que reducirá los volúmenes de datos. Un ejemplo de este tipo de escenario son los códigos ICD en una visita hospitalaria. Cada visita de hospitalización tendrá uno o más diagnósticos y / o procedimientos de DAI enumerados en su contra. Los códigos ICD son globales.
En este caso, puede crear una lista distinta de las combinaciones de códigos en cada caso. Haga una tabla de dimensiones con una fila para cada combinación distinta, y tenga una tabla de enlaces entre las combinaciones y las tablas de referencia para los códigos ICD.
La tabla de hechos puede tener una clave de dimensión para la dimensión 'combinaciones', y la fila de dimensión tiene una lista de referencias a códigos ICD reales. La mayoría de las herramientas ROLAP pueden consumir esta estructura de datos. Si su herramienta solo funcionará con una relación M: M real, puede crear una vista que emule la relación M: M entre el hecho y la tabla de referencia de codificación. Este sería el enfoque preferido con SSAS.
Ventajas de la opción 1:
- Las consultas indexadas adecuadamente, basadas en la selección de filas de la tabla de hechos con una cierta relación a través de la tabla M: M pueden ser razonablemente eficientes.
- Modelo conceptual ligeramente más simple
Ventajas de la opción 2:
- El almacenamiento de datos es más compacto
- Puede emular una relación directa 1: M presentando las combinaciones en un formato legible por humanos como un código en la dimensión 'combinaciones'. Esto podría ser más útil en herramientas de informes más tontas que carecen de soporte para las relaciones M: M.
Escenario 2: relación M: M entre dimensiones:
Es difícil pensar en un caso de uso, pero uno podría imaginar algo fuera de la atención médica con los códigos ICD nuevamente. En un sistema de análisis de costos, la visita hospitalaria puede convertirse en una dimensión y tendrá relaciones M: M entre la visita (o el episodio del consultor en el discurso del NHS) y las codificaciones.
En este caso, puede configurar las relaciones M: M y posiblemente codificar una representación legible por humanos en la dimensión base. Las relaciones se pueden hacer a través de tablas de enlaces M: M o a través de una tabla de 'combinaciones' como antes. Esta estructura de datos se puede consultar correctamente a través de Business Objects o herramientas ROLAP de mejor calidad.
Fuera de mi cabeza, no puedo ver que SSAS pueda consumir esto sin llevar la relación directamente a la tabla de hechos, por lo que necesitaría presentar una vista de la relación M: M entre la codificación y la tabla de hechos filas para usar SSAS con estos datos.