En Internet existe demasiada teoría acerca de Datamarts y Datawarehouse, lo que resulta a veces complejo entender toda esta información para llevarla a la práctica. A continuación, enunciaré algunas características de un Datawarehouse, lo cual ayudará a mejorar los conocimientos para aquellos que no tienen un concepto claro sobre este tema. Cabe recalcar que el buen diseño de un Datawarehouse, garantiza el funcionamiento de un proyecto con Business Inteligence.
Un Datawarehouse, como su nombre lo indica, es una bodega de datos en la cual se almacena información con el fin de realizar consultas, reportes y análisis. Estos contienen datos históricos, derivados de datos transaccionales.
Existen bases de datos, que por ejemplo guardan información diariamente acerca de las ventas de las compañias, si verificamos las tablas involucradas en el proceso, encontramos informacion de varios años atrás, esta información se puede llevar al Datawarehouse, y dejar por ejemplo solo un año de información en la BD transaccional, de esta manera, las consultas en las tablas de ventas funcionarán mas rápido.
Un datawarehouse se debe construir de manera desnormalizada, esto se debe a la cantidad de datos que posee. Es decir, que las tablas que lo componen no se encuentran bajo el esquema entidad relación, claro esta que esto no quiere decir que no se utilizan llaves foráneas ni llaves primarias.
Para dejar mas claro esta parte veamos un ejemplo:
La anterior imagen muestra un clasico diseño E-R Entidad Relación, pero en la construcción de un datawarehouse, se debe usar el siguiente diseño:
El anterior diseño hace parte de algo que se llama diagrama copo de nieve, que al igual que el diagrama de estrella, son principales diagramas o estrategias que se utilizan en la construcción de cubos en un datawarehouse, y que es eso de cubos? pues un cubo es el conjunto de tablas que componen un datawarehouse, en cuanto a los componentes de un cubo, encontramos dos tipos: dimensiones y hechos.
Cuando hablamos de dimensiones, nos referimos a estructuras que componen una o mas jerarquias que categorizan los datos. La tabla de productos anterior es un ejemplo de dimension, si quisieramos agregarle mas jerarquias podriamos incluir por ejemplo el proveedor.
La tabla de hechos, es la tabla principal donde convergen todas las dimensiones del cubo, a continuacion vemos un ejemplo básico de un cubo.
Como se puede apreciar en la anterior imagen, las dimensiones tienen un campo que es llave primaria y a su vez se relacionan a través de una llave foránea con la tabla de hechos, pero la tabla de hechos no tiene llaves primarias.
En Oracle, la construcción del cubo se realiza con la herramienta Design Center. Hasta ahora en mis proyectos solo he utilizado una tabla de hechos, aunque he visto proyectos donde dicen que han requerido mas de una.