En muchas de las formaciones que imparto siempre hay una pregunta recurrente que me hacen cuando hablamos sobre modelado dimensional. ¿Qué es esto de las claves subrogadas y por qué son tan importantes en los modelos dimensionales?
Pues bien, voy a explicar qué es una clave subrogada y aportar 5 motivos por los que son necesarias.
En primer lugar definimos una clave subrogada como una clave (campo) artificial de una tabla de datos que se utiliza como clave principal en lugar de la clave «natural» propia de esa tabla.
Con un ejemplo lo veremos más claro, imaginemos que tenemos una tabla con los datos de los empleados de una compañía:
Es este ejemplo, podríamos considerar el campo Documento como la clave principal de la tabla.
Se trata de una columna con un dato inherente al empleado (en este caso su documento de identidad), pero como podemos observar, se trata de una clave bastante poco práctica e inadecuada para que pueda ser utilizada como índice (es un valor alfanumérico, no tiene un patrón de valores constante y podría estar sujeto a futuros cambios).
En estos casos, la clave subrogada es nuestra aliada. Una clave subrogada será una nueva columna en la tabla que jugará el rol de clave principal. Esta nueva columna tendrá un valor que no estará relacionado con la información de la tabla.
Este valor será un número entero incremental (1, 2, 3…) tal como se muestra en la siguiente imagen.
Cuando utilizamos esta clave subrogada como nuestra clave principal en nuestros modelos dimensionales, la denominada clave natural (campo documento) pasa a ser un atributo dimensional más de nuestra dimensión, pero no la utilizaremos para establecer relaciones entre nuestra dimensión y la tabla de hechos.
Veamos ahora cuales son estos 5 motivos por los que DEBEMOS usar claves subrogadas en los modelos dimensionales:
- Mejora de rendimiento: Cuando utilizamos claves subrogadas, podemos crear índices eficientes que nos permitirán mejorar el rendimiento. Las claves naturales inherentes al sistema sielen ser más complejas y grandes.
- Simplifican la lógica del negocio: En los casos donde una clave principal de una tabla sea compuesta (formada por más de un campo) Las claves subrogadas hacen más sencilla nuestra lógica de negocio al utilizar en las entidades identificadores únicos y constantes, independientemente de los que se utilicen en el negocio.
- Mejora la consistencia de los datos: El uso de claves subrogadas permite mantener la consistencia de los datos cuando por ejemplo, tenemos una dimensión donde los elementos que la forman provienen de sistemas de datos distintos que utilizan claves de negocio diferentes. Aquí, la creación de una clave subrogada es esencial para poder unir estos datos de distintos orígenes.
- Mejora de la privacidad de los datos: Puede darse el caso de que en algunas tablas de datos existentes la clave principal sea un campo confidencial. Si utilizamos claves subrogadas, podremos ocultar la clave natural y mejorar la privacidad de la información.
- Necesidad de aplicar en nuestras dimensiones algún tipo de control de cambio (Slow Change Dimension): Cuando se implementa un tipo de control de cambio sobre una columna (SCD tipo 2), el cambio de un valor de esta columna genera un nuevo registro en la dimensión con un nuevo valor de clave subrogada. El nuevo registro tendrá la información con el cambio realizado más la actualización de las fechas en las que se produce dicho cambio.
Espero haber podido ayudar a aclarar un poco el por qué de la importancia del uso de las claves subrogadas en los modelos dimensionales.
#SigueElCaminoDeLaEstrella
Bibliografía:
Libro «», Toni Jurado
Libro «The Complete Reference: Star Schema«, Christopher Adamsom
Excelente post Toni, gracias por compartir, después de leer tu libro aplico clave subrogadas en todo para seguir el camino de la Estrella.
#SigueElCaminoDeLaEstrella