You are on page 1of 3

El modelo estrella

Hay 2 modelos para crear un Data Warehouse, el modelo estrella o el copo de nieve. Yo prefiero el
modelo estrella, ya que el tiempo de respuesta que provee es ms rpido y hace que el servidor
trabaje menos.
El concepto de Estrella es bastante sencillo. Hay que disear las tablas usandouna tabla central para
los hechos, tablas para los los catlogos y una tabla de tiempo.

El meollo del diseo de las tablas en el modelo estrella est en los catlogos. Tiene que poner en
una sola tabla todo aquello que se pueda deducir del elemento ms granular de la tabla y que est
ms abajo en la jerarqua.
Por ejemplo, si usted tiene un catlogo de productos, el elemento ms granular es el producto qu
se puede deducir del producto? Pues la marca, el empaque, la presentacion (botella de cristal, PET
no retornable, aluminio, etc.), la familia (bebidas), la subfamilia, la categora, la subcategoria, el
color, la talla si aplica, etc.
Bueno pues todo esto se coloca en la misma tabla.
El campo llave de esa tabla es el product_id (la llave de producto) por que producto (product) es el
elemento ms abajo en la jerarqua o ms granular. Vealo de esta forma: una marca tiene productos,
la familia agrupa productos, la subfamilia igual, la categora igual, el color igual. El producto es el
nico que no agrupa a nadie, entonces esa es la la llave.
Si usted le hiciera un select a ese catlogo de productos el resultado sera el siguiente.

Puede ver que en el mismo registro se almacena el producto, la marca, la subcategoria, el
departamento, la familia, la categoria. Todo lo que se puede deducir del producto est ah.
Lo mismo pasa con las tiendas. De la tabla de tiendas (ver tabla Stores en el diagrama) se puede
deducir la region y el pais al que pertenece. Entonces pais y regin los pongo en la misma tabla que
tienda.
Para mejorar todava ms el tiempo de respuesta coloque en la tabla el campo llave y el descriptor
como se muestra en la siguiente imagen.

Si hace esto en el query SQL que escriba para obtener datos de la estrella podr usar:
where
IdBrand = 15
en vz de:
where
Brand = Washington
Tendr un mejor tiempo de respuesta si usa llaves. Entonces siempre en los catlogos ponga
adems de los descriptores el campo llave de cada descriptor.
TIP: Si est pensando crear un cubo con los Analysis Services de Microsoft usando esta estrella, el
poner la llave en la estrella hace que el cubo se reduzca de tamao y el tiempo de respuesta se
acelere. Solo tenga cuidado de que al crear la dimensin, en propiedades de la dimensin ubique y
use la propiedad llave de la dimensin.
TIP: Para las llaves trate de que siempre sean numricas y de no usar llaves compuestas.
TIP: Si va a seguir el tip anterior, puede ayudarse poniendo en los catlogos adems de la nueva
llave inventada por usted, la llave original para la dimensin. Yo siempre las identifico con Id y Cve,
la que termina en ID es inventada por m y la que termina o comienza en CVE es la original.
A partir del producto yo puedo deducir en que tienda se vendi? Suponiendo que hablamos de
supermercados y en cada tienda se pueden vender los mismos productos entonces la respuesta es
NO, no se puede deducir qu tienda vendi qu producto. Esto se resuelve en la tabla de hechos
poniendo ah que producto se vendio (producto_id), en que tienda (store_id) y en que da (time_id).
Esto es el modelo estrella.
IMPORTANTE: No se quede con la idea que al hacer los catlogos redundantes va a desperdiciar todo
el disco duro. La redundancia es solo en los catlogos no en los hechos, usted puede tener un
catlogo de 100,000 productos pero millones y millones de transacciones. Lo que hace que un
datawarehouse crezca normalmente es la tabla de hechos. Si todava est renuente y saca a relucir
las reglas de Codd de normalizacion, para no entrar en polmica digamos que este es uno de los
extraos casos donde lo que aprendi en la universidad lo puede tirar a la basura .
Para complentar esto puede consultar los posts La tabla de hechos y Algunas recomendaciones para
la tabla de hechos. Respecto a la tabla de tiempo (TimeDim) puede leer La dimensin tiempo y los
otros campos de la tabla de tiempo.
Si quiere ver como convertir una estrella a un cubo puede consultar como hacer un cubo con Artus.