El modelo de datos

Damos el nombre de modelo de datos al conjunto de tablas con las que estamos trabajando, junto a las relaciones que existan entre ellas y -en función del entorno en el que estemos trabajando- a otros factores como el tipo de cada columna o campo en las tablas (si es de texto, de fecha, etc.), si tienen alguna restricción, etc. En software de Business Intelligence como Tableau, el modelo datos suele limitarse a las tablas, a sus relaciones y a los tipos de los campos que forman cada tabla.

Y antes de ver cómo gestiona Tableau el modelo datos, resulta conveniente un recordatorio sobre los conceptos de tabla de hechos y de dimensiones:

Cuando tenemos nuestros datos repartidos por diferentes tablas, una tabla de hechos es aquella que registra los movimientos de nuestra actividad, por ejemplo, las ventas, o los proyectos que nos contratan, o los cursos que hacemos... se trata de tablas que van a modificarse con cierta frecuencia y contienen -básicamente- información numérica: cuántos items hemos vendido, por cuánto dinero, cuánto ha costado el transporte, etc. Adicionalmente van a incluir identificadores que permitan asociar a cada registro (a cada venta, por ejemplo) información contenida en otras tablas: una referencia a la categoría del producto vendido, o una referencia al cliente que ha hecho la compra. De hecho, estas tablas que contienen esa información adicional son las llamadas tablas de dimensiones, pues contienen información categórica (que no se modifica o se modifica con muy poca frecuencia) que nos va a permitir desglosar nuestros "hechos" según diferentes criterios o dimensiones. Por ejemplo, en una tabla de hechos podemos tener una columna (un campo) que incluya un identificador que indique el país en el que se ha realizado la venta. Este identificador será normalmente un número (1, 2, 3...). Y en otra tabla (de dimensiones) tendremos la correspondencia entre esos números y el país que representa cada uno. Este identificador presente tanto en la tabla de hechos como en la tabla de dimensiones que sirve para asociar cada registro (cada fila) de una tabla con otro registro de la otra es lo que se denomina clave.

Grosso modo, el disponer nuestras según este esquema es lo que denominamos normalizar el modelo de datos. Dicho con otras palabras, un modelo de datos normalizado es aquel en el que los datos se disponen en tablas diferentes para evitar repeticiones, etc.

Por el contrario, un modelo de datos en el que todos los datos estuviesen en una única tabla es lo que denominaríamos "modelo de datos desnormalizado".

Y podríamos preguntarnos ¿no sería más fácil incluir en la tabla de hechos directamente el nombre del país y ahorrarnos una tabla? Bueno, aunque dar una respuesta correcta a esta pregunta llevaría bastante tiempo, digamos que si lo hiciéramos así y el país "R. Unido" apareciese en un cierto número de filas o registros, si quisiéramos modificar esta etiqueta y cambiarla por "Reino Unido" tendríamos que ejecutar el cambio para todas y cada una de las ocurrencias del texto original ("R. Unido"), lo que puede originar errores o exigir demasiado tiempo. Si, por el contrario, lo que tenemos en la tabla de hechos es una referencia a la tabla de países (y, por ejemplo, el identificador 5 representa al Reino Unido), en la tabla de países solo aparecerá una vez este país (con el identificador 5), y bastará con cambiar su nombre una sola vez. 

Por otro lado, tener todos los datos en una única tabla (es decir, el trabajar con modelos desnormalizados) supondría poder acceder a la información más rápidamente...

Y aunque no es éste el momento de profundizar en esto (como digo, llevaría demasiado tiempo) digamos que, por motivos de eficiencia, esta "normalización" del modelo de datos (este reparto de la información en diferentes tablas para evitar redundancias, etc.) es más importante en bases de datos "operativas" (orientadas a la gestión del día a día de la empresa) que en bases de datos "analíticas" (orientadas al análisis de datos). De hecho, en éstas últimas se opta en ocasiones por la opción de que los datos no estén normalizados y aparezca toda la información en una misma tabla.