quinta-feira, 27 de setembro de 2007

Modelação Dimensional

Modelação Dimensional
Antes de mais importa definir o que são dimensões, métricas, factos e hierarquias.

Dimensão: Uma dimensão pode ser definida como uma categoria de informação. Por exemplo a dimensão tempo.

Atributo: Um nível único com uma dimensão. Por exemplo, mês é um atributo da dimensão
tempo.

Hierarquia: É a especificação de níveis que representa as relações entre diferente atributos e as dimensões. Um exemplo disso é uma possível hierarquia que pode ser na dimensão tempo, ou seja: ANO; SMESTRE; TRIMESTRE; MÊS; DIA;

Facto: Um facto pode ser definido como uma realidade, uma verdade, um acontecimento, uma ocorrência.

Fact Table: Uma tabela de factos, é uma tabela que contem medidas de interesse. Por exemplo n.º de vendas obtidas no mês de Setembro. Esta medida é guardada na tabela de factos com a apropriada granularidade. Por exemplo, pode ser o n.º de vendas por loja daquele mês.

Lookup Table: As tabelas de loockup fornecem informação detalhada sobre os atributos. Por exemplo, a tabela de lookup dos trimestres irá conter a lista dos 4 trimestre disponíveis. Modelo dimensional inclui fact_tables e lookup_tables. Fact_tables podem estar ligadas a uma ou mais lookup_tables. No entanto fact_tables não tem relações directas com outras fact_tables. As dimensões e hierarquias estão representadas nas lookup_tables. Atributos são as colunas das lookup_tables.

Modelação Dimensional (Unified Dimensional Modeling)
“The UDM is at the core of analysis services. It is the semantic layer between the source data and the end user experience irrespecive of the source. The design surface of the UDM allows you to use any relational data to build a data source view. The objects in this view can be tables or views in the source or a query over the top of these. “



No desenho de modelos de dados para data warehouse / data marts os mais usados são o Star Schema e o Snowflake Schema.

Star Schema: No modelo star schema, um unico objecto (fact_table) encontra-se no meio conectado e rodeado por outros objectos (dimensão/loockup_tables) construindo um modelo forma de estrela. Estes modelos podem ser muito simples, ou de elevado complexidade. Um modelo star schema pode consistir numa única fact_table ou então em n fact_tables.



Snowflake Schema: Este tipo de modelação é uma extenção do star schema, onde cada ponto da estrela divide-se em mais pontos. A maior vantagem do snowflake schema é a imprevisão que é feita para minimizar a informação do disco na performance da query, e nos joinings entre pequenas lookup_tables

A utilização de um ou outro modelo depende da preferência pessoal e acima de tudo da necessidade do negócio.

Um comentário:

Rui Norte disse...

Percebe-se bem que esta área é o teu mundo. Excelente Post.