Pregunta

Estoy tratando de aprender acerca de OLAP y almacenamiento de datos, y estoy confundido acerca de la diferencia entre el modelado relacional y dimensiones. Es básicamente modelado tridimensional de modelado relacional, pero teniendo en cuenta los datos redundantes / no normalizado?

Por ejemplo, digamos que tengo los datos históricos de ventas en (producto, de la ciudad, # de ventas). Yo entiendo que la siguiente sería una vista de punto de relacional:

Product | City | # Sales
Apples, San Francisco, 400
Apples, Boston, 700
Apples, Seattle, 600
Oranges, San Francisco, 550
Oranges, Boston, 500
Oranges, Seattle, 600

Mientras que la siguiente es una vista de punto de más dimensional:

Product | San Francisco | Boston | Seattle
Apples, 400, 700, 600
Oranges, 550, 500, 600

Pero parece que ambos puntos de vista, sin embargo, se puede implementar en un esquema en estrella idéntica:

Fact table: Product ID, Region ID, # Sales
Product dimension: Product ID, Product Name
City dimension: City ID, City Name

Y no es hasta que comienza a añadir algunos detalles adicionales para cada dimensión que las diferencias empiezan a aparecer. Por ejemplo, si desea realizar un seguimiento de las regiones, así, una base de datos relacional tendería a tener una tabla de regiones por separado, con el fin de mantener todo normalizado:

City dimension: City ID, City Name, Region ID
Region dimension: Region ID, Region Name, Region Manager, # Regional Stores

Mientras que una base de datos tridimensional permitiría desnormalización para mantener los datos de la región dentro de la dimensión de la ciudad, con el fin de que sea más fácil para rebanar los datos:

City dimension: City ID, City Name, Region Name, Region Manager, # Regional Stores

¿Es esto correcto?

¿Fue útil?

Solución

Un esquema en estrella se encuentra precisamente en la intersección del modelo relacional de los datos y el modelo tridimensional de datos. Es realmente una manera de comenzar con un modelo tridimensional, y mapear en tablas SQL que se asemejan algo a las tablas SQL que se obtiene si se parte de un modelo relacional.

Me diga algo se asemejan porque muchas metodologías de diseño relacional resultan en un diseño normalizado, o al menos un diseño casi normalizado. Un esquema en estrella tendrá significativa con respecto a la plena normalización.

Cada salida de la plena normalización lleva consigo una actualización de los datos de la consiguiente anomalía. (Estoy incluyendo anomlaies de inserción, actualización y operaciones de borrado bajo un mismo paraguas). Esas anomalías no tienen nada que ver con lo que el modelo de datos que empezó.

El comentario sobre OLTP frente OLAP es relevante aquí. anomalías de actualización tendrán diferentes impactos en el rendimiento y / o dificultad en la programación de esas dos situaciones.

Además de un esquema de estrella en un databaase SQL, hay productos de base de datos dimensionales que hay que almacenar los datos en una forma física que es única para ese producto. Con estos productos, que no se ve un esquema de estrella tanto como se ve una aplicación directa del modelo tridimensional, y una interfaz que puede ser propio del producto. Algunas de esas interfaces permiten operaciones OLAP a ser completamente de apuntar y hacer clic.

Al igual que una digresión de su pregunta, una vez construido un esquema de estrella como un paso intermedio entre una base de datos OLTP que apoyó una aplicación basada en la transacción y un cubo de datos dentro de Cognos PowerPlay. Utilizando técnicas estándar de ETL, la transferencia combinada de la base de datos OLTP al esquema en estrella y luego desde el esquema en estrella al cubo de datos realidad superó a la transferencia directa de la base de datos OLTP al cubo de datos. Este fue un resultado inesperado.

Espero que esto ayude.

Otros consejos

En palabras sencillas OLTP base de datos normalizada están diseñados con más óptimo punto "transaccional" de vista. Bases de datos se normalizaron a trabajar de manera óptima para un sistema transaccional. Cuando digo optimización del sistema transaccional me refiero a un estado ..getting diseño de la estructura de base de datos donde todas las operaciones transaccionales como de eliminación, inserción, actualización y seleccione están equilibrados para dar igual o óptima importancia para todos ellos en cualquier punto del tiempo .. .as que son igualmente valoradas en un sistema transaccional.

Y que lo actualiza posible un sistema normalizado oferta ..minimal para una actualización de los datos, un mínimo de inserción posible nueva entrada, un lugar para eliminar la categoría eliminación etc (por ejemplo, nueva categoría de producto) ... todo esto es posible una rama que un crear tablas maestras ..... pero esto viene a costa de "seleccionar" demora de funcionamiento ..pero como decía su (normalización) modelo no más eficiente para todas las operaciones ..its "óptima" ... habiendo dicho que obtener otros métodos para mejorar los datos de indexación ir a buscar speed..like etc.

En el modelo dimensional otra parte (utilizado sobre todo para la casa de diseño de datos-ware) .. destinada a dar importancia a un solo tipo de operaciones eso ... Selección de los datos como en las casas-mercancías de datos de actualización ..data / inserción sucede periódicamente ..y su un coste de una vez.

Así que si un intento de ajustar la estructura de datos normalizada de modo que sólo la selección es la operación más importante en cualquier punto en el tiempo ... vamos a terminar recibiendo una (yo diría parcialmente desnormalizado) .. estrella estructura tridimensional desnormalizado.

  • todas las claves externas de un solo lugar informativa -NO dimensión a dimensión unirse a (es decir maestro para tabla maestra unirse) .. copo de nieve representar misma dimensión
    • hechos idealmente diseñados llevan sólo números o claves externas ..measures
    • dimensión se utilizan para la descripción de transporte y la información no aggregatable
    • redundancia de los datos se ignora ... pero en casos raros si las dimensiones se crecen demasiado diseño .snowflake es visto como option..but que todavía es evitable

Para más detalles por favor vaya a través de libros detallada sobre este tema.

tengo recientemente leer sobre la diferencia entre dimensional y relacional modelado de datos, ya que principalmente utilizamos modelos relacionales en mi negocio donde almacenamos un almacén de datos empresariales (EDW).

De acuerdo con Steve Hoberman en su libro "Modelado de datos Made Simple" la distinción entre los 2 tipos de modelos es la siguiente:

  • Modelos de datos relacionales capturas de la solución de negocio para saber cómo parte de las obras de negocio, procesos de negocio a.k.a
  • dimensionales Modelos de Datos capturar los detalles de las necesidades de negocio a responder preguntas sobre lo bien que está haciendo

Se puede argumentar que un modelo relacional también se puede utilizar como una base sobre la que responder a las preguntas de negocio, pero a un nivel táctico. "¿Cuántos pedidos se encuentran en un estado sin cumplirse para el cliente x debido a la retención de crédito?" Sin embargo, la distinción es que la cuestión de dónde informes necesita el 'grano nativo' de la mesa y cuando la cuestión de informes se puede responder con los datos resumidos.

En los ejemplos anteriores 2 en realidad son dos ejemplos de datos dimensionales de modelado ya que ninguno de los 2 mesas son el almacenamiento de la orden de venta en su 'grano nativo', y por lo tanto no refleja el proceso de negocio de crear una orden de venta. La única diferencia entre las 2 tablas es que en la segunda tabla de la dimensión de la ciudad ha sido incorporada a la tabla de hechos.

He encontrado la descripción que encontré en http://www.orafaq.com/node/2286 a ser muy útil cuando viene a la estrella del esquema desde una perspectiva relacional.

Considere un modelo de datos completamente normalizado. Ahora piensa exactamente lo contrario, donde desnormalizar completamente su modelo de datos relacional para que tenga sólo un registro plano como una hoja de cálculo big'ol con una fila muy amplia. Ahora copia de seguridad de este disco plana sólo un poco para que tenga un modelo de datos que está a sólo dos niveles de profundidad; una mesa grande, y varias mesas pequeñas que los grandes puntos de la tabla de nuevo a. Este es un esquema en estrella. Así, un cierto modelo de datos estrella tiene dos atributos, siempre es dos niveles de profundidad, y un verdadero modelo de estrella siempre sólo contiene una tabla grande que es el foco del modelo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top