Explicacion de lo que es una Slowly Changing Dimension (SCD)

En un Data Warehouse, el término dimensión se refiere a un grupo lógico de datos tal como una localidad geográfica u organizacional sobre los datos de la empresa.

Una Dimensión que cambia con el tiempo es una Slowly Changing Dimensions (SCD) es decir una dimensión que contiene datos que cambian lentamente. Por ejemplo, puede ser una dimensión que permite analizar las ventas de una empresa agrupada por vendedores. Todos los reportes regionales funcionan bien, hasta que un vendedor se mueve de una región o país hacia otra.

Podrías obtener un promedio de las ventas anuales por vendedor, pero si se utiliza esto como un indicador de desempeño de los vendedores, esto podría dar información incorrecta. Si el vendedor se movió de una región muy productiva a una región con menos clientes, su promedio será superior al resto de los vendedores aún si su desempeño no es realmente mejor. O podrías crear un nuevo registro de vededor y tratarlo como una entidad distinta, pero eso también trae problemas ya que no se tendrían los totales.

Existen algunas metodologías para tratar este problema del tipo 0,1,2,3,4 y 6 que se explican brevemente a continuación.

Tipo 0. Este es un enfoque pasivo, es decir no se hace nada al respecto. Los valores permanecen como estaba la dimensión cuando los registros fueron creados. No es el tipo más usado.

Tipo 1. En este enfoque se sobreescriben los datos viejos con el dato actualizado sin mantener el historial de donde perteneció. Este enfoque es sencillo, pero tiene la desventaja de que no contiene historia.

Tipo 2. En este enfoque se inserta un nuevo registro cada vez que existe un cambio en la dimensión. Se agrega un campo de versión u opcionalmente se agregan dos columnas para capturar la fecha de inicio y final de ese valor. Con este método se puede relacionar fácilmente el período de tiempo para el cual es válido cierto dato en la dimensión pero no es muy sencillo de mantener sobretodo si el modelo dimensional cambia a menudo.

Tipo 3. Este método da seguimiento al cambio agregando nuevas columnas. Una columna mantendría el dato de la región original de un vendedor por ejemplo, y otra la nueva región o actual, así como una columna de fecha efectiva del cambio. Este enfoque solo puede mantener un cambio histórico, a diferencia del Tipo 2 que puede mantener cambios ilimitados en la historia.

Tipo 4. Este método mantiene una tabla histórica para todos los cambios y una tabla con el valor actual de la dimensión.

Tipo 6 / Híbrido. Este método es una combinación de los Tipos 1,2 y 3 (1 + 2 + 3 = 6. El enfoque es usar una Dimensión TIpo 1 (escribiendo el dato actual), pero agregar un par adicional de columnas con las fechas de validez (TIpo 2).

Explicacion de lo que es una Clave de Negocio (Business Key) y una clave Subrogada (Surrogate Key)

La mayoría de las tablas de base de datos con que trabajamos, utilizan un campo como clave de acceso, el cual identificará de forma inequívoca a un elemento de negocio, y que en muchos casos tiene significado por sí mismo. Pongamos algunos ejemplos:

* Si estuviéramos hablando de una tabla que almacena Pólizas, la Clave de Negocio podría ser el Número de Póliza (un valor único para cada Póliza, que tiene significado por sí mismo).

* Si estuviéramos hablando de una tabla que almacena vehículos, la Clave de Negocio podría ser la matrícula (o quizás el número de bastidor).

* Si estuviéramos hablando de una tabla que almacena productos comerciales, la Clave de Negocio podría ser el código EAN-13.

* Si estuviéramos hablando de una tabla de facturas, la Clave de Negocio podría ser la composición del Año de Factura y el Número de Factura.

Mientras que una Clave Subrogada es un campo numérico de una tabla cuyo único requisito es almacenar un valor numérico único para cada fila de la tabla, actuando como una clave sustituta, de forma totalmente independiente a los datos de negocio, que habitualmente no tiene significado por sí misma.