Esquema em estrela - Star schema

Na computação , o esquema em estrela é o estilo mais simples de esquema de data mart e a abordagem mais amplamente usada para desenvolver data warehouses e data marts dimensionais. O esquema em estrela consiste em uma ou mais tabelas de fatos que fazem referência a qualquer número de tabelas de dimensão . O esquema em estrela é um caso especial importante do esquema em floco de neve e é mais eficaz para lidar com consultas mais simples.

O esquema em estrela recebe o nome da semelhança do modelo físico com a forma de uma estrela com uma tabela de fatos em seu centro e as tabelas de dimensão ao seu redor, representando as pontas da estrela.

Modelo

O esquema em estrela separa os dados do processo de negócios em fatos, que contêm os dados mensuráveis ​​e quantitativos sobre um negócio, e dimensões que são atributos descritivos relacionados aos dados de fatos. Exemplos de dados de fatos incluem preço de venda, quantidade de venda e medidas de tempo, distância, velocidade e peso. Exemplos de atributos de dimensão relacionados incluem modelos de produtos, cores de produtos, tamanhos de produtos, localizações geográficas e nomes de vendedores.

Um esquema em estrela que possui muitas dimensões é às vezes chamado de esquema de centopéia . Ter dimensões de apenas alguns atributos, embora seja mais simples de manter, resulta em consultas com muitas junções de tabela e torna o esquema em estrela menos fácil de usar.

Tabelas de fatos

As tabelas de fatos registram medidas ou métricas para um evento específico. As tabelas de fatos geralmente consistem em valores numéricos e chaves estrangeiras para dados dimensionais onde as informações descritivas são mantidas. As tabelas de fatos são projetadas para um baixo nível de detalhe uniforme (referido como "granularidade" ou "granularidade"), o que significa que os fatos podem registrar eventos em um nível bastante atômico. Isso pode resultar no acúmulo de um grande número de registros em uma tabela de fatos ao longo do tempo. As tabelas de fatos são definidas como um de três tipos:

  • As tabelas de fatos de transações registram fatos sobre um evento específico (por exemplo, eventos de vendas)
  • As tabelas de fatos instantâneos registram os fatos em um determinado momento (por exemplo, detalhes da conta no final do mês)
  • O acúmulo de tabelas de instantâneos registra fatos agregados em um determinado ponto no tempo (por exemplo, vendas totais do mês até a data de um produto)

As tabelas de fatos geralmente são atribuídas a uma chave substituta para garantir que cada linha possa ser identificada de forma exclusiva. Esta chave é uma chave primária simples.

Tabelas de dimensão

As tabelas de dimensão geralmente têm um número relativamente pequeno de registros em comparação com as tabelas de fatos, mas cada registro pode ter um grande número de atributos para descrever os dados de fatos. As dimensões podem definir uma ampla variedade de características, mas alguns dos atributos mais comuns definidos pelas tabelas de dimensão incluem:

  • As tabelas de dimensão de tempo descrevem o tempo no nível mais baixo de granularidade de tempo para o qual os eventos são registrados no esquema em estrela
  • As tabelas de dimensão geográfica descrevem dados de localização, como país, estado ou cidade
  • As tabelas de dimensão de produto descrevem produtos
  • As tabelas de dimensão de funcionários descrevem funcionários, como vendedores
  • As tabelas de dimensão de intervalo descrevem intervalos de tempo, valores monetários ou outras quantidades mensuráveis ​​para simplificar os relatórios

As tabelas de dimensão geralmente são atribuídas a uma chave primária substituta , geralmente um tipo de dados inteiro de coluna única, mapeado para a combinação de atributos de dimensão que formam a chave natural.

Benefícios

Os esquemas em estrela são desnormalizados , o que significa que as regras típicas de normalização aplicadas a bancos de dados relacionais transacionais são relaxadas durante o projeto e a implementação do esquema em estrela. Os benefícios da desnormalização do esquema em estrela são:

  • Consultas mais simples - a lógica de junção do esquema em estrela é geralmente mais simples do que a lógica de junção necessária para recuperar dados de um esquema transacional altamente normalizado.
  • Lógica de relatório de negócios simplificada - quando comparado a esquemas altamente normalizados, o esquema em estrela simplifica a lógica de relatório de negócios comum, como relatórios periódicos e posteriores.
  • Ganhos de desempenho de consulta - os esquemas em estrela podem fornecer aprimoramentos de desempenho para aplicativos de relatório somente leitura quando comparados a esquemas altamente normalizados .
  • Agregações rápidas - as consultas mais simples em um esquema em estrela podem resultar em melhor desempenho para operações de agregação.
  • Cubos de alimentação - esquemas em estrela são usados ​​por todos os sistemas OLAP para construir cubos OLAP proprietários com eficiência; na verdade, a maioria dos principais sistemas OLAP fornece um modo de operação ROLAP que pode usar um esquema em estrela diretamente como uma fonte sem construir uma estrutura de cubo proprietária.

Desvantagens

A principal desvantagem do esquema em estrela é que ele não é tão flexível em termos de necessidades analíticas quanto um modelo de dados normalizado. Os modelos normalizados permitem a execução de qualquer tipo de consulta analítica, desde que siga a lógica de negócio definida no modelo. Os esquemas em estrela tendem a ser mais desenvolvidos para uma visão particular dos dados, não permitindo realmente análises mais complexas. Os esquemas em estrela não suportam facilmente relacionamentos muitos para muitos entre entidades de negócios. Normalmente, esses relacionamentos são simplificados em um esquema em estrela para se conformar ao modelo dimensional simples.

Outra desvantagem é que a integridade dos dados não é bem aplicada devido ao seu estado desnormalizado. As inserções e atualizações únicas podem resultar em anomalias de dados, que os esquemas normalizados foram projetados para evitar. De um modo geral, os esquemas em estrela são carregados de maneira altamente controlada por meio de processamento em lote ou "alimentação lenta" quase em tempo real, para compensar a falta de proteção proporcionada pela normalização .

Exemplo

Esquema em estrela usado pela consulta de exemplo.

Considere um banco de dados de vendas, talvez de uma rede de lojas, classificado por data, loja e produto. A imagem do esquema à direita é uma versão do esquema em estrela do esquema de amostra fornecido no artigo do esquema em floco de neve .

Fact_Salesé a tabela de fatos e há três tabelas de dimensão Dim_Date, Dim_Storee Dim_Product.

Cada tabela de dimensão tem uma chave primária na sua Idcoluna, relativa a uma das colunas (vistos como linhas no exemplo do esquema) do Fact_Salestrês colunas (composto) chave primária da tabela ( Date_Id, Store_Id, Product_Id). A Units_Soldcoluna de chave não primária da tabela de fatos neste exemplo representa uma medida ou métrica que pode ser usada em cálculos e análises. As colunas de chave não primária das tabelas de dimensão representam atributos adicionais das dimensões (como o Yearda Dim_Datedimensão).

Por exemplo, a consulta a seguir responde quantos aparelhos de TV foram vendidos, para cada marca e país, em 1997:

SELECT
	P.Brand,
	S.Country AS Countries,
	SUM(F.Units_Sold)

FROM Fact_Sales F
INNER JOIN Dim_Date D    ON (F.Date_Id = D.Id)
INNER JOIN Dim_Store S   ON (F.Store_Id = S.Id)
INNER JOIN Dim_Product P ON (F.Product_Id = P.Id)

WHERE D.Year = 1997 AND  P.Product_Category = 'tv'

GROUP BY
	P.Brand,
	S.Country

Veja também

Referências

links externos