Transformación Estrella
Una extensión del uso de subquerys como alternativa a los JOINS es
para la transformación estrella a menudo necesaria en aplicaciones Date
Warehouse. Considere una gran tabla que almacena ventas. Cada venta tiene
asociado un producto particular, un comprador y un canal. Estos atributos son
identificados mediante códigos, mediante el uso de llaves foráneas la tabla
puede describir el producto, en comprador y el canal. Necesitamos escribir una
consulta de todas las ventas de libros de comprador de Alemania a través del
canal internet.
select … from sales s,
products p, buyers b, channels c
where
s.prod_code=p.prod_code
and
s.buy_code=b.buy_code
and
s.chan_code=c.chan_code
and p.product=’Books’
and b.country=’Germany’
and c.channel=’Internet’;
Esta consulta utiliza la clausula WHERE para unir las tablas y luego
filtrar el resultado. La siguiente es una alternativa utilizando subquerys.
select … from sales
where prod_code in
(select prod_code from products where product=’Books’)
and buy_code in (select
buy_code from buyers where country=’Germany’)
and chan_code in (select chan_code from channels
where channel=’Internet);
Esta segunda forma de escritura de la consulta es la Transformación Estrella.
Aparte de ser inherentemente más elegante, hay razones técnicas por la cual la
base de datos puede ser capaz de ejecutarla más eficientemente que la consulta
original. También las consultas estrella son más fáciles de mantener, y muy
simple de agregar una nueva dimensión a la consulta o para remplaza las
condiciones de filtrado.
Comentarios
Publicar un comentario