
4.6.1 Carga en SQL y Data Warehousing
Para poder cargar los datos transformados primero hay que definir el
modelo de base de datos relacional para su organización. El modelo debe
reflejar de manera lógica las relaciones entre los diferentes elementos
manipulados durante el proceso. Esto facilita la posterior generación de
diagramas precisos y comprensibles. Sumado a esto, el modelo debe estar
diseñado para permitir consultas eficientes que extraigan los datos necesarios de
manera rápida y precisa.
Para nuestro modelo, teniendo en cuenta el problema que incluye
productos, vendedores, categorías y subcategorías, podríamos en un principio
pensar el siguiente esquema:
●Categoría(ID_categoría, nombre_categoría)
●Subcategoría(ID_subcategoría, ID_categoría, nombre_subcategoría)
●Producto(ID_producto, ID_subcategoría, ID_vendedor,
nombre_producto, precio, fecha)
●Vendedor(ID_vendedor, nombre_vendedor)
Este esquema está en la cuarta forma normal, por lo que puede servir para
nuestro posterior uso de análisis de datos. De hecho, podríamos pensarlo como
una versión extremadamente simplificada y plana del modelo de datos
perteneciente a la fuente de los mismos, Mercado Libre.
En dicha plataforma constantemente se están cargando nuevos productos,
registrando nuevos vendedores, eliminando productos, eliminando vendedores,
editando los valores de los productos (el precio, principalmente),
adicionalmente registrando compras, etcétera. Por lo que este modelo está
relacionado para el manejo de transacciones en tiempo real.
Nuestro objetivo es el análisis de datos, por lo que lo más correcto sería
usar un modelo que, a diferencia de OLTP, no de gran peso a la concurrencia ya
que los usuarios serán únicamente 2: las herramientas de transformación que se
encargan de depositarlos, y por otro lado, las herramientas de reporting que
posteriormente utilizaremos para reportarlos y analizarlos. Una vez nuestras
herramientas depositen los datos, estos no serán modificados ni eliminados.
Nuestro interés es que se realicen múltiples selecciones de datos,
posiblemente complejas, relacionando gran cantidad de entidades entre sí.
Además se debe tener en cuenta que por lo general no se sabe qué tipos de
selecciones se harán, ni qué relaciones se harán entre las entidades al momento
en que los analistas realicen los reportes. Si se desea relacionar dos entidades
muy lejanas entre sí (es decir, con muchas entidades de por medio para llegar a
una conexión), probablemente la consulta se torne compleja y costosa de
ejecutar. Las bases de datos OLAP cumplen estos requerimientos.