Por Rut Almoguera Poggi
Si te estás
iniciando en el mundo de los Datawarehouses y la única “Matrix” que conoces es
la película de los 90’s cuyo héroe es Neo, este post es para ti.
Aparte de la famosa película Matrix también existe otra Matrix que es igualmente famosa e
importante, que es la Bus Matrix (o Matriz de Bus en español). Esta es una de las más importante
herramientas en el diseño de un Datawarehouse y que se usa universalmente al
momento del levantamiento de los requerimientos.
La Bus
Matrix o Matriz de Bus es un
instrumento de documentación de alcance, y de definición de la estructura de
las tablas Fact.
Como sabemos, cuando estamos diseñando
un Datawarehouse, debemos definir principalmente tres tipos de entes: las Facts , las Medidas que están en dichas Facts
y las Dimensiones. Una vez que hemos decidido cuales son las Dimensiones, las Medidas y las Facts tenemos
que tener una manera de representar estos entes del diseño y las relaciones
existentes entre ellos. Hacer por cada Fact
una lista de las Dimensiones con las
que se relaciona, seria tedioso e ilegible, no solo para un técnico, sino
también para discutir y revisar el modelo con nuestros clientes. Es aquí que surge la Matriz de Bus, que es una excelente y casi indispensable
herramienta que nos ayuda a representar nuestro diseño.
Principalmente se encarga de mostrar
cuales serán las medidas a implementar en cada Fact y como están relacionadas con las distintas Dimensiones del modelo. Una vez que sabemos cuáles son las Dimensiones y las Facts que tendrá nuestro Datawarehouse,
para construir la Matriz de Bus de
cada Fact en nuestro modelo, debemos
crear una matriz o tabla mostrando las Medidas
en las filas y las Dimensiones en
las columnas, y marcando la intersección existente entre ellas con una ‘x’.
Las Matrices de Bus son en general como se muestran a continuación:
Nombre Fact
|
Dimensión 1
|
Dimensión 2
|
Dimensión 3
|
…
|
Dimensión M
|
Medida 1
|
X
|
X
|
X
|
|
X
|
Medida 2
|
|
X
|
X
|
X
|
|
Medida 3
|
X
|
X
|
X
|
X
|
X
|
Medida 4
|
X
|
|
|
|
X
|
…
|
|
|
|
|
|
Medida N
|
X
|
|
X
|
X
|
X
|
Y ud.
mi apreciado lector, seguramente vera esto y pensara que evidentemente
es más sencillo visualmente, pero probablemente también se preguntara: ¿Por qué debo colocar una equis (X) marcando
las asociaciones entre las Dimensiones
y las Medidas? ¿Acaso no están TODAS
las Dimensiones relacionadas con
TODAS las Medidas de una Fact específica? La respuesta a esta
interrogante es: NO.
Para ilustrar esto, consideremos el
siguiente ejemplo: Imaginemos que tenemos un cliente que es una Tienda, y que
ellos desean crear un Datawarehouse
para sus ventas. Esta tienda tiene
sucursales en todo el país, y también tiene un Site o Pagina Web por
donde los clientes pueden hacer sus compras que recibirán en la dirección que
deseen pagando un monto extra por transporte y entrega a domicilio.
En nuestro Datawarehouse tenemos que reflejar en este caso en una Fact de Ventas, cuándo se hace una
venta, a que cliente se le realizo la venta, en qué fecha, cuál fue el articulo
comprado, cuántos compro y cuál fue el vendedor que realizo la venta (en caso
que aplique), teniendo por separado las ventas por internet de las ventas en
las tiendas.
En este caso, tendríamos las Medidas: “Ventas Tienda” y “Ventas Internet” para la Fact
de Ventas.
Y las Dimensiones: Fecha, Cliente,
Vendedor y Producto.
Como podemos notar, en este caso la medida
“Ventas Tienda” tendrá un vendedor
asociado, pero en el caso de la medida “Ventas
Internet”, el vendedor NO existe, por lo tanto, la Matriz de Bus de la Fact
de Ventas que tendríamos para nuestro ejemplo sería la siguiente:
Fact Ventas
|
Fecha
|
Cliente
|
Producto
|
Vendedor
|
Ventas Tienda
|
X
|
X
|
X
|
X
|
Ventas Internet
|
X
|
X
|
X
|
|
Como podemos ver, la Matriz de Bus en este caso nos sirvió
para mostrar de una manera fácil y sencilla cuáles son nuestras Dimensiones, cuáles son nuestras Medidas y cuáles son las relaciones
entre ellas.
Así que querido lector, adopta la Matriz de Bus como una herramienta para
plasmar tu diseño y así poder mostrárselo a tu cliente, que te vera como a un héroe
(igual que Neo en Matrix), por simplificarle el entendimiento del modelo del Datawarehouse para su negocio.