Claves Subrogadas

Buenas.

A continuación les dejo un pequeño resumen de lo que son las Claves Subrogadas y de la importancia de su implementación en los DW:

 

Las claves existentes en los OLTP se denominan claves naturales; en cambio, las claves subrogadas son aquellas que se definen artificialmente, son de tipo numérico secuencial, no tienen relación directa con ningún dato y no poseen ningún significado en especial.

 

Lo anterior, es solo una de las razones por las cuales utilizar claves subrogadas en el DW, pero se pueden definir una serie de ventajas más:

  • Ocupan menos espacio y son más performantes que las tradicionales claves naturales, y más aún si estas últimas son de tipo texto.
  • Son de tipo numérico entero (autonumérico o secuencial).
  • Permiten que la construcción y mantenimiento de índices sea una tarea sencilla.
  • El DW no dependerá de la codificación interna del OLTP.
  • Si se modifica el valor de una clave en el OLTP, el DW lo tomará como un nuevo elemento, permitiendo de esta manera, almacenar diferentes versiones del mismo dato.
  • Permiten la correcta aplicación de técnicas SCD (Dimensiones lentamente cambiantes).

Esta clave subrogada debe ser el único campo que sea clave principal de cada tabla de dimensión. Una forma de implementación sería, a través de la utilización de herramientas ETL, mantener una tabla que contenga la clave primaria de la tabla del OLTP y la clave subrogada correspondiente a la dimensión del DW. Aquí un buen ejemplo...

 

En la tabla de dimensión Tiempo, es conveniente hacer una excepción y mantener un formato tal como "yyyymmdd", ya que esto provee dos grandes beneficios:

  • Se simplifican los procesos ETL.
  • Brinda la posibilidad de realizar particiones de la tabla de hechos a través de ese campo.

 

Espero les sea útil.

Salud!

Muy bien resumido, Dario

Sólo quiero resaltar además la importancia que tiene la utilización de las claves subrogadas para poder manejar correctamente los cambios que se puedan producir tanto en las claves, que ya has comentado, como en los atributos de las dimensiones, conocidos como Slow Changing Dimensions.

Aunque existen diferentes métodos para tratar estos cambios, dependiendo de la situación, para todos ellos es básico que antes la clave principal que se haya creado para cada dimensión sea surrogada.

Un error de diseño relativamente común es aprovechar una clave natural como clave principal de una dimensión cuyos atributos pueden sufrir cambios, y detectar el problema cuando ya todo está montado y llegan las primeras modificaciones..

Por cierto, alguien sabe si también es correcto traducir el término como 'claves surrogadas'?

En respuesta a por Carlos

Gracias Carlos por el comentario, acabo de actualizar el artículo (con lo referido a SCD).

Según leí en la RAE, el verbo surrogar no existe. Y si ponés en la búsqueda de google "claves surrogadas" te sugiere "claves subrogadas". Aunque por otro lado sí vi muchos artículos que utilizan "surrogadas".

Saludos.

Plenamente de acuerdo...

 

Está muy bien definido! Estos son los argumentos que hay que usar cuando los DBA's no entienden porque los locos del BI usan colunmas con llaves que parece que no sirven para nada y solo ocupan espacio.

Las surrogate keys son uno de los grandes responsable por la performance del DW.

 

Un saludo

 

Rute Júlio

 

Muchas gracias por sus comentarios.
En la nueva versión de HEFESTO estará incluido este resumen.

Salud!