Tras un paréntesis muy largo, volvemos con la teoría. Estamos bien encaminados. Poco a poco vamos asimilando los ricos conceptos de Business Intelligence y en particular aquellos relacionados con el diseño de un data warehouse. Es conveniente en estos momentos incidir que para el diseño debemos dejar de lado las formas normales. Debemos aprender de nuevo. En un data warehouse relacional encontramos esquemas en estrella y en copo de nieve que premian por encima de todo las consultas.
- Esquema en estrella: Consiste en estructurar la información en procesos, vistas y métricas recordando a una estrella (por ello el nombre star schema). Es decir, tendremos una visión multidimensional de un proceso que medimos a través de unas métricas. A nivel de diseño, consiste en una tabla de hechos (lo que en los libros encontraremos como fact table) en el centro para el hecho objeto de análisis y una o varias tablas de dimensión (dimension table) por cada dimensión de análisis que participa de la descripción de ese hecho. En la tabla de hecho encontramos los atributos destinados a medir (cuantificar) el hecho: sus métricas. Mientras, en las tablas de dimensión, los atributos se destinan a elementos de nivel (que representan los distintos niveles de las jerarquías de dimensión) y a atributos de dimensión (encargados de la descripción de estos elementos de nivel). En el esquema en estrella la tabla de hechos es la única tabla del esquema que tiene múltiples joins que la conectan con otras tablas (foreign keys hacia otras tablas). El resto de tablas del esquema (tablas de dimensión) únicamente hacen join con esta tabla de hechos. Las tablas de dimensión se encuentran además totalmente denormalizadas, es decir, toda la información referente a una dimensión se almacena en la misma tabla.
- Esquema en copo de nieve: El esquema en copo de nieve (snowflake schema) es un esquema de representación derivado del esquema en estrella, en el que las tablas de dimensión se normalizan en múltiples tablas. Por esta razón, la tabla de hechos deja de ser la única tabla del esquema que se relaciona con otras tablas, y aparecen nuevas joins gracias a que las dimensiones de análisis se representan ahora en tablas de dimensión normalizadas. En la estructura dimensional normalizada, la tabla que representa el nivel base de la dimensión es la que hace join directamente con la tabla de hechos. La diferencia entre ambos esquemas (star y snowflake) reside entonces en la estructura de las tablas de dimensión. Para conseguir un esquema en copo de nieve se ha de tomar un esquema en estrella y conservar la tabla de hechos, centrándose únicamente en el modelado de las tablas de dimensión, que si bien en el esquema en estrella se encontraban totalmente denormalizadas, ahora se dividen en subtablas tras un proceso de normalización. Es posible distinguir dos tipos de esquemas en copo de nieve, un snowflake completo (en el que todas las tablas de dimensión en el esquema en estrella aparecen ahora normalizadas en el snowflake) o un snowflake parcial (sólo se lleva a cabo la normalización de algunas de ellas).
Continuaremos en un próximo post hablando de slowly changing dimensions.
Hola! Tengo una consulta!
Entonces la tabla Fact no está normalizada?
Mil gracias de antemano!
Saludos,
Mariana.
Hola, Mariana.
Efectivamente, las tablas de hecho no están normalizadas. La estructura que creamos está destinada y optimizada para la consulta. El objetivo es hacer el menor número de joints posibles.
Un saludo
Muchísimas gracias por la rápida respuesta!
Si no es molestia, podría hacer otra pregunta?
Es posible obtener el mismo resultado de una consulta OLAP a partir del OLTP que le dio origen al mismo?
Gracias nuevamente por su ayuda!!!
Saludos!!!
Hola de nuevo.
En definitiva lo que construimos es un data warehouse relacional (es decir una base de datos). Podría conectarse el sistema OLAP al OLTP y hacer la consulta. Pero claro, el sistema OLTP no está optimizado para la consulta y claro entonces es probable que los rendimientos esperados para las consultas no fueran conseguidos y, a parte, haríamos un uso intensivo del sistema OLTP que podría derivar en afectar a los sistemas de producción. Por supuesto eso no es deseable.
Un saludo
Mil gracias por todo!!!!!!!!!!!!!!!!
Me fue de gran ayuda!!!!!!
Saludos!!
Mariana.
De nada.
Me alegro haber sido de ayuda.
Un saludo
Buenas,
Sabes de páginas con información detallada sobre el diseño en estrella? Encuentro definiciones, pero pocos sitios donde se pueda aprender con casos prácticos o con pasos a seguir para un buen diseño.
Gracias.
Hola.
Tienes un ejemplo en http://josemariaarce.blogspot.com/2007/10/1-propuesta-en-los-origenes-de-las.html
En algún momento, en cuanto tenga tiempo, quiero montar un ejercicio similar.
Un saludo
hola quiero saber
que elementos intervienen en
una base de datos
se apuran a contestar me urge
gracias bye
Hola, Yesenia.
Supongo que con tu pregunta sobre los elementos que intervienen en una base de datos, te refieres a lo siguiente:
Una base de datos es una colección de tablas que describen un modelo de negocio. Cada tabla (que puede representar un concepto o relaciones entre ellos) contiene campos de los cuales alguno(s) de ellos forma la clave primaria (por la que identificamos de manera única un elemento) y el resto son atributos (en definitiva los atributos de un concepto). Las tablas entre ellas pueden estar relacionadas (o no) y si lo están entonces es a través de claves foráneas (es decir, una clave foránea de una tabla es la clave primaria de otra y sería otro atributo en la tabla).
Espero haber resulto tu pregunta. Si no es así me lo comunicas.
Un saludo
Hola,
Quisiera saber de donde bajarme un manual de BI, Analisis Services, por favor tu ayuda ya que debo aprender de urgencia.
saludos
Lucía
Hola, Lucía.
En la parte de libros recomendados, encontraras buenas referencias para formarse en Business Intelligence así como en Analisis Services,
Aquí tienes un manual donde te explican conceptos, aunque quizá algunos ya los conozcas:
http://www.dataprix.com/book/export/html/75
y otro:
http://www.inei.gob.pe/biblioineipub/bancopub/Inf/Lib5084/INDEX.HTM
Ya me comentas algo.
Un saludo
Compañeros:
Necesito saber de alguna compañía que se dedique a diseñar dataware houses, de preferencia en el norte del país…
Saben de alguien??
Saludos.
Rubén
Rubén:
¿A qué país te refieres? Dado que yo escribo desde España.
Un saludo
holas tengo un proyecto sobre datawarehouse en oracle y weno me descargue programa de datawarehouse de oracle pero noc como se utiliza asi me decidi a hacer en pl/sql y la cuestion es q si me puedes mandar algunos codigos o manuales q tengas sobre pl/sql para poder realizar consultas y crear la estrella
Hola, Jonatan.
Desconozco tu nivel de conocimiento de pl/sql. Te refiero los siguientes enlaces:
http://www.infor.uva.es/~chernan/Bases/Teoria/TySQL.pdf
http://www.balearsinnovacio.com/blog/wp-content/uploads/2006/12/040628_PLSQL_Basico.pdf
Si los encuentras básicos, quizá encuentres más información en el siguiente enlace:
http://www.zonaoracle.com/
Espero que te sirvan de ayuda.
Un saludo.
La pregunta es la siiguente??
cuando hablan de las tablas de dimension ??
se refieren a el conjunto de tablas que se relacionan en una solucion o es que solo una de ellas es la que toma el nombre de Tabla de Dimension???
Espero su ayuda
muchas gracias
Hola,
He visto ejemplos en el que la tabla de hechos tiene los datos de las dimensiones, no foreing keys a tablas de dimensiones. Por ejemplo, en una tablas de hechos de ventas, incluir como campo el nombre del vendedor, no una clave externa a la tabla de vendedores.
¿esta práctica es correcta?
ventajas e inconvenientes
Gracias.
A Juan Sanchez:
Una tabla de dimensión hace referencia a los puntos de vista de un proceso de negocio. Por ejemplo, una venta (que es un proceso y tenemos entonces una tabla de hecho) puede analizarse desde el punto de vista del producto vendido, lugar donde se ha vendido, el dia que se ha vendido,… (y todo eso son dimensiones).
En el momento de diseñar el Data Warehouse, cada dimensión es una tabla así como cada tabla de hecho.
A José Luis:
Repito la respuesta que ya he dado en otro post.
Si es posible. Esa forma de proceder es típica en las dimensiones degeneradas. Me explico. Es una dimensión con muy poca información. Por ejemplo, pensemos en la dimensión sexo. Sólo tenemos los valores hombre y mujer. ¿Es necesario tener una tabla con primary key y el valor? Inicialmente no dado que así evitamos un joint en nuestras consultas. Pero al final depende del diseño que se realiza.
En el ejemplo que comentas… inicialmente seguro que tienes más información interesante de vendedores y convertirla en degenerate dimension significa perder parte de la información. Pero si no es el caso, puedes diseñarla como indicas.
Espero haber respondido a vuestras preguntas.
Un cordial saludo.
Hola,
Estoy trabajando en un proyecto de data warehouse y que ría saber cual de los dos esquemas optimizan mejor las consultas, el esquema estrella o el de copo de nieve
Muchas gracias
Hola Eduardo.
Inicialmente el mejor diseño es el de estrella. Sin embargo debes tener en cuenta que hay veces que necesariamente se debe usar el diseño en forma de copo de nieve.
Al final es cuestión de realizar el diseño en función del objetivo buscado.
Un saludo.
Inicialmente el mejor diseño es el de estrella.Sin embargo debes tener en cuenta que hay veces que necesariamente se debe usar el diseño en forma de copo de nieve.
Estoy trabajando en un Datawarehouse y me he encontrado con el problema de que tengo registros duplicados, que al hacer agregados, no me devuelven los datos que deberían.
Os pongo un ejemplo de lo que me ocurre y a continuación los datos que debería devolver. La tabla de ejemplo sería:
IDLinea IDSCH IDISBN IDFLD NumMuestras
——- ——— —————- —————– ——————–
1 738 1486 1085 300
2 738 2279 1151 5438
3 738 2279 1153 5438
4 738 3091 1215 389
5 739 1290 1151 364
6 739 2279 1153 560
En este caso, por ejemplo si necesitamos saber el NumMuestras por escuelas nos debe devolver:
738 –> 300+5438+389 (ya que se repite un registro dos veces por culpa de pertenecer esas muestras a 2 FLD distintos). He aquí el problema, tal y como está ahora devolvería 300+5438+5438+389
739 –> 364+560
En el caso de necesitar saber el NumMuestras por ISBN, nos debe devolver:
1486 –> 300
2279 –> 5438+560 He aquí el problema, tal y como está ahora devolvería 5438+5438+560
3091 –> 389
1291 –> 364
En el caso de necesitar saber el NumMuestras por FLD, nos debe devolver:
1085 –> 300
1151 –> 5438 + 364
1153 –> 5438 + 560
1215 –> 389
En el caso de esta dimensión si que lo haría bien porque es la que está haciendo que se dupliquen los registros.
Muchas gracias por vuestra ayuda.
Un saludo.
hola me gustaria saber cual formula es la que determina el area y perimetro en la figura del copo de nieve, la cual debe cumplir con la sub divicion n y demostrarlo por induccion de ante mano muchas gracias
A Gonzalo:
Tienes un ejemplo para cálcular el área y perímetro de un copo de nieve (en particular es el de Sierpinski) y su demostración: http://temasmatematicos.uniandes.edu.co/Integral_de_Honores/copo_de_nieve/copo_de_nieve.htm.
Un saludo.
Hola Josep,
estoy desarrollando un proyecto para una empresa (tesis), en donde tengo el siguiente problema:
la empresa tiene varias áreas departamentales por ejemplo departamento de ventas, financiero, producción y otros. en donde para realizar un análisis se ha enfocado a tres departamentos en este caso ventas, financiero y producción.
1. tengo requerimientos por cada departamento.
2. en cada departamento solo podrán ver información referente a su área.
mis preguntas son:
1. trabajo con datawarehouse o datamart , poq hasta donde tengo entendido si desarrollo 1 dwh todos podrán ver los datos de todas las área mientras que si desarrollo un datawarehouse solo ciertas áreas?
2. si trabajo con datamart tendría que desarrollar 1 estrella o copo de nieve por cada datamart?
3. no importa si ciertas tablas que utilizo en departamento de ventas use tambien en el de producció por ejemplo. solo es un ejemplo.
4. para desarrollar cubos cada datamert seria un datasource diferente?.
Porfa necesito que me ayude y desde ya mil gracias por su respuesta
Gracias,
Elizabeth
A Elisabeth:
La elección de una estructura de data marts o un data warehouse responde a diferentes necesidades. En el caso de necesitar cruzar datos lo natural es crear un data warehouse. En el caso que cada departamento deba tener su información independiente es posible desarrollar sólo data marts independientes. Sin saber nada más, lo natural sería crear un data warehouse.
Por otra parte, para cada proceso de negocio identificado en el departamento lo natural es diseñar una tabla de hecho, sus vistas de negocio o dimensiones e identificar también las métricas.
Como conoces el detalle de las necesidades, será fácil identificar las dimensiones conformadas y compartidas para conocer cómo a posteriori cruzar la información.
Es finalmente importante que tengas en cuenta que la política de acceso de los usuarios a la información puede definirse de forma independiente al diseño. Dicho punto concierne a la herramienta usada para acceder a la información.
En función de la estructura escogida y las necesidades tendrás dimensiones repetidas en data marts o no.
Espero haberte ayudado.
Un cordial saludo.
Hola, Josep
un gusto conocerle y mil gracias por su ayuda de verdad no pensé que me iba responder tan pronto
, voy a volver a revisar todos los requerimientos y e base a ello voy a identificar las metricas, dimensiones y tablas de hecho, y cualquier duda le escribo otra vez sip.
Hasta mañana, y cuidese mucho.
Gracias
Elizabeth
Hola Josep,
Sabe que he revisado los requerimientos y ya plantee mi dwh pero nose me gustaría que me de su punto de vista referente al modelo del dwh, pero no se si me puede facilitar su email para enviarlo xfa sip.
gracias por su ayuda.
Hola por fa me gustaria que me ayuden con un modelo multidimensional para el area de produccion de una empresa.
Que tablas necesito (sus dimensiones) y la tabla de hecho.
Lo necesito de urgencia
Gracias por su comprension y ayuda.
Juliana
Hola josep Soy Elizabeth la chica a la q le proporciono informacion sobre roles de pentaho, mi cuenta anterior me bloquearon y mi nueva dir es eeiy@hotmail.com, he tratado de bajarme los intaladores de poentaho para windows pero no consiguo pentaho version 2 . exe sino solo demos xfa si puede envieme las url para poder descargarme mil gracias y faciliteme su email, poq no lo tengo
Gracias
Mi pregunta es: ya tengo mis modelado estrella de mis tablas pero como los relaciono con mis bases de datos operacionales de mis sistemas para poder extraer la informacion para mi datawarehouse mis bases de datos estan en sql, es la parte que no entiendo tengo mis bases de datos operacionales tengo mi modelado como se van a relacionar estos ayudaaaaaaaa!!!!!! urgente
Gracias!!!!!!!!!!
Hola Jorge,
Lo que debes es crear procesos ETL para extraer la información de las bases de datos operacionales u otras fuentes, transformarlas conforme las necesidades y cargarla en el data warehouse.
Un saludo.
Gracias por la respuesta me es de mucha ayuda ahora me pondre averiguar al respecto QUE TE VAYA SUPER ERES BUENA ONDA mas luego estare nuevamente con mas preguntillas en el foro
Hola yo molestandolo de nuevo pero tengo un pregunta porfa ayudeme: para el desarrollo de un datawarehouse se tiene que aplicar una metodologia ahora yo lei sobre la de Kimball pero no estoy seguro de que sea una metodologia establecida o ya esta establecida como metodologia saqueme de dudas porfa gracias de antemano!!!!
Hola a todos, soy nuevo en esto de los DW, pero como ejercicio me han pedido que modele un DW para una Termoelectrica y que recoja todos los datos que pueda brindarme dicha termoelectrica, que pueden ser temperatura, tiempo, presión y otras, pero siempre caigo a modelar una BD operacional, pq es lo que se hacer, alguien podria darme un norte de como entrar en el tema, sin perderme de nuevo??????
HELP!!!!!!!!!!!!!!!!!!!!!!!!!
Como puede ayudar un star schema en el proceso de análisis
Crear un star schema te permite determinar los procesos de negocio de una organización, los puntos de vista de dicho proceso de negocio y los resultados (métricas) de dicho proceso. Es por lo tanto, una forma de dotar de orden. De entender de forma más fácil cómo funciona un proceso y descartar lo que no es un proceso.
EXCELENTE ESTA INFORMACION ME AYUDA A ENTENDER ESTE TEMA TAN COMPLEJO DEL DATAWAREHOUSE, QUE MIENTRAS MAS LO LEO MAS ME INTERESA.
AGRADECERIA SI TUVIERAN INFORMACION ME LA ENVIEN A carlos_azabache_uteq@hotmail.com
Pingback: 5. Fases en la implantación de un sistema DW. Metodologia para la construcción de un DW. « El Rincon del BI
Pingback: 15.2.Kimball vs Inmon. Ampliación de conceptos del Modelado Dimensional. « El Rincon del BI
Pingback: Los números de 2010 « Information Management
Pingback: Modelos de Datos « Gerson Noboa
Saludos a Josep, excelentes sus respuestas.
Saludos soy nuevo en este tema de inteligencia de negocio. quisiera un ejemplo de como llevar mi base de datos OLTP a un datawarehouse. lei las definiciones de estrella y copo de nieve, pero aun no capto como hacer lo yo. quisiera un ejemplo con unas tablas de BD OLTP Y DEPUES LLAVADO A DATAWAREHOSE es decir la estructura fisica de como deber quedar aplicando copo de nieve y estrella al diseñar el datawarehouse
Gracias de antemano
Adelmo
Josep, muchas gracias por el aporte!!!