Diferença entre a tabela de fatos e a tabela de dimensões?

112

Ao ler um livro sobre objetos de negócios, me deparei com a tabela de fatos e termos e a tabela de dimensões.

Estou tentando entender qual é a diferença entre a tabela de dimensões e a tabela de fatos.

Eu li alguns artigos na internet, mas não consegui entender direito ..

Algum exemplo simples vai me ajudar a entender melhor?


fonte
O conceito é bastante longo para ser descrito em detalhes. Se você tiver um problema específico além da definição básica, informe-nos a respeito.
NoChance de
Basicamente, eu estava tentando entender se as tabelas de dimensão podem ser tabelas de fatos também ou não.

Respostas:

52

Isso é para responder a parte:

Eu estava tentando entender se as tabelas de dimensão podem ser tabelas de fatos também ou não.

A resposta curta (INMO) é Não. Isso ocorre porque os 2 tipos de tabelas são criados por motivos diferentes. No entanto, de uma perspectiva de design de banco de dados, uma tabela de dimensão poderia ter uma tabela pai como o caso da tabela de fatos que sempre tem uma tabela de dimensão (ou mais) como pai. Além disso, as tabelas de fatos podem ser agregadas, enquanto as tabelas de dimensão não são agregadas. Outro motivo é que as tabelas de fatos não devem ser atualizadas no local, enquanto as tabelas de dimensão podem ser atualizadas no local em alguns casos.

Mais detalhes:

As tabelas de fatos e dimensões aparecem em um esquema comumente conhecido como Star Schema. O objetivo principal do esquema em estrela é simplificar um conjunto complexo de tabelas normalizadas e consolidar dados (possivelmente de sistemas diferentes) em uma estrutura de banco de dados que pode ser consultada de maneira muito eficiente.

Em sua forma mais simples, ele contém uma tabela de fatos (Exemplo: StoreSales) e uma ou mais tabelas de dimensão. Cada entrada de dimensão tem 0,1 ou mais tabelas de fatos associadas a ela (exemplo de tabelas de dimensão: geografia, item, fornecedor, cliente, tempo, etc.). Seria válido também que a dimensão tivesse um pai, caso em que o modelo seria do tipo "Floco de neve". No entanto, os designers tentam evitar esse tipo de design, pois ele causa mais junções que reduzem o desempenho. No exemplo de StoreSales, a dimensão Geografia pode ser composta pelas colunas (GeoID, ContenentName, CountryName, StateProvName, CityName, StartDate, EndDate)

Em um modelo Snow Flakes, você poderia ter 2 tabelas normalizadas para informações geográficas, a saber: Tabela de conteúdo, Tabela de país.

Você pode encontrar muitos exemplos no Star Schema. Além disso, verifique isso para ver uma visão alternativa no modelo de esquema em estrela Inmon vs. Kimball . Kimbal tem um bom fórum que você também pode querer conferir aqui: Fórum Kimball .

Edit: Para responder a comentários sobre exemplos para 4NF:

  • Exemplo de uma tabela de fatos que viola 4NF:

Fato de vendas (ID, BranchID, SalesPersonID, ItemID, Amount, TimeID)

  • Exemplo para uma tabela de fatos que não viola 4NF:

AggregatedSales (BranchID, TotalAmount)

Aqui a relação está em 4NF

O último exemplo é bastante incomum.

NoChance
fonte
1
Algumas tabelas de fatos refletem dados de nível de transação. Alguns refletem dados agregados. Uma tabela de fatos em um esquema em estrela não precisa ser uniforme em 3NF. Por exemplo, o fato de vendas pode conter dados como (ID, BranchID, Amount, SalesPerson, Time) - Isso viola 3NF, BCNF e 4NF porque a SalesPerson e a dependência de Branch. Consequentemente, não é verdade que uma tabela de fatos típica esteja em 4NF.
NoChance de
258

Na modelagem de data warehouse, um esquema em estrela e um esquema em floco de neve consistem em tabelas de fatos e dimensões .

Tabela de fatos:

  • Ele contém todas as chaves primárias da dimensão e fatos ou medidas associadas (é uma propriedade na qual os cálculos podem ser feitos) como quantidade vendida, quantidade vendida e vendas médias.

Tabelas de dimensão:

  • As tabelas de dimensão fornecem informações descritivas para todas as medidas registradas na tabela de fatos.
  • As dimensões são relativamente muito pequenas como comparação da tabela de fatos.
  • As dimensões comumente usadas são pessoas, produtos, lugar e tempo.

insira a descrição da imagem aqui

fonte de imagem

Premraj
fonte
52
isso é muito mais útil do que a resposta aceita
Booji Boy
15
Bem, uma imagem vale mais que mil palavras. Não entendi nada ao ler as outras respostas, mas esta me salvou.
The One
As dimensões parecem relativamente grandes em comparação com a tabela de fatos no diagrama, pois tem dados mais descritivos. E eles também estão mais numerosos
Nuvens Azuis
1
@Blue Clouds: Você tem que perceber que a Tabela de Fatos contém uma entrada para cada combinação possível de dim's (se houver dados, pelo menos). Enquanto a dimensão de localização conterá no máximo uma entrada para cada localização possível (digamos, 50 pontos de venda) e crescerá raramente, quando novos pontos de venda são adicionados, a tabela de fatos provavelmente aumentará a cada dia por localização x itens x ramos. Assim, os fatos aumentarão em número de registros muito rápido.
Daniel,
@Premraj A tabela de fatos pode existir sem a chave primária?
Kalana
109

Esta parece ser uma resposta muito simples sobre como diferenciar entre tabelas de fatos e dimensões!

Pode ajudar pensar nas dimensões como coisas ou objetos. Uma coisa como um produto pode existir sem nunca estar envolvida em um evento de negócios. Uma dimensão é seu substantivo. É algo que pode existir independentemente de um evento de negócios, como uma venda. Produtos, funcionários, equipamentos, são todas as coisas que existem. Uma dimensão faz algo ou tem algo feito a ela.

Funcionários vendem, clientes compram. Funcionários e clientes são exemplos de dimensões, eles o fazem.

Os produtos são vendidos, eles também são dimensões, pois têm algo feito com eles.

Fatos, são o verbo. Uma entrada em uma tabela de fatos marca um evento discreto que acontece a algo da tabela de dimensão. A venda de um produto seria registrada em uma tabela de fatos. O evento da venda seria anotado por qual produto foi vendido, qual funcionário o vendeu e qual cliente o comprou. Produto, Funcionário e Cliente são dimensões que descrevem o evento, a venda.

Além disso, as tabelas de fatos normalmente também contêm algum tipo de dados quantitativos. A quantidade vendida, o preço por item, o preço total e assim por diante.

Fonte: http://arcanecode.com/2007/07/23/dimensions-versus-facts-in-data-warehousing/

AeyJey
fonte
5
Ótima redação, foram necessários apenas 5 minutos para entender o conceito.
user1951
Para resumir: dimensões são atributos de eventos de fato. DAFE. O que você está fazendo, DAFE?
alcançar em
3
Sim, é assim que me lembro deles. É o contrário do que você pensa. Você pensaria que os fatos são gravados em pedra e as dimensões são dinâmicas, com base nas próprias palavras. Mas é o oposto: uma tabela dim básica é uma lista de pesquisa bastante estática e uma tabela de fatos básica são os dados vivos que estão sendo inseridos.
undrline
1
Essa foi minha explicação favorita e fez clique na minha cabeça, obrigado!
Arjun Arun
9

Achei essa resposta mais fácil de entender da perspectiva de uma pessoa que não conhece muito a terminologia DB / DW.

http://databases.about.com/od/datamining/a/Facts-Vs-Dimensions.htm

Recomendarei passar por isso primeiro e, em seguida, passar pela resposta de Emmad Kareem para obter mais detalhes. Espero que seja útil.

aa8y
fonte
1
Primeira explicação totalmente clara. Um exemplo muito útil, em linguagem simples e leiga, revelando alguns detalhes. Agora finalmente entendi.
sharon
Muito bom ... acho que você está certo ... leia esse primeiro. Todas as respostas são úteis ... mas esta tem uma maneira de verbalizar o conceito em termos mais 'humanos'.
Novato do código
4

Explicação super simples:

Tabela de fatos: uma tabela de dados que mapeia IDs de pesquisa juntos. Geralmente é uma das principais tabelas centrais de seu aplicativo.

Tabela de dimensão: uma tabela de pesquisa usada para armazenar valores (como nomes de cidades ou estados) que são repetidos com frequência na tabela de fatos.

RelativitySQL
fonte
2

Na forma mais simples, acho que uma tabela de dimensão é algo como uma tabela 'Mestre' - que mantém uma lista de todos os 'itens', por assim dizer.

Uma tabela de fatos é uma tabela de transações que descreve todas as transações. Além disso, dados agregados (agrupados) como vendas totais por vendedor, vendas totais por filial - esses tipos de tabelas também podem existir como tabelas de fatos independentes.

usuário5729371
fonte
2

Tabela de dimensão A tabela de dimensão é uma tabela que contém atributos de medidas armazenadas em tabelas de fatos. Esta tabela consiste em hierarquias, categorias e lógica que podem ser usadas para atravessar em nós.

A tabela de fatos contém a medição dos processos de negócios e contém chaves estrangeiras para as tabelas de dimensão.

Exemplo - Se o processo de negócios for a fabricação de tijolos

Número médio de tijolos produzidos por uma pessoa / máquina - medida do processo de negócios

Shriraj
fonte
1
  1. A tabela de fatos consiste principalmente em fatos de negócios e chaves estrangeiras que se referem às chaves primárias nas tabelas de dimensão. Uma tabela de dimensão consiste principalmente em atributos descritivos que são campos textuais.
  2. Uma tabela de dimensão contém uma surrogate key, natural key e um conjunto de atributos. Ao contrário, uma tabela de fatos contém uma chave estrangeira, medidas e dimensões degeneradas.
  3. As tabelas de dimensão fornecem informações descritivas ou contextuais para a medição de uma tabela de fatos. Por outro lado, as tabelas de fatos fornecem as medidas de uma empresa.
  4. Ao comparar o tamanho das duas tabelas, uma tabela de fatos é maior do que uma tabela dimensional. Em uma tabela de comparação, mais dimensões são apresentadas do que as tabelas de fatos. Em uma tabela de fatos, menos números de fatos são observados.
  5. A tabela de dimensões deve ser carregada primeiro. Ao carregar as tabelas de fatos, deve-se examinar a tabela de dimensões. Isso ocorre porque a tabela de fatos possui medidas, fatos e chaves estrangeiras que são as chaves primárias na tabela de dimensão.

Leia mais: Tabela de Dimensões e Tabela de Fatos | Diferença entre | Tabela de dimensões vs Tabela de fatos http://www.differencebetween.net/technology/hardware-technology/dimension-table-and-fact-table/#ixzz3SBp8kPzo

convidado
fonte
-3

Tabela de dimensão: Não é nada, mas podemos manter informações sobre a data caracterizada chamada de tabela de dimensão.

Exemplo: dimensão do tempo, dimensão do produto.

Tabela de fatos: não é nada, mas podemos manter informações sobre as métricas ou dados de pré-cálculo.

Exemplo: Fato de vendas, Fato do pedido.

Esquema estrela: um link de tabela de fatos com forma de tabela de dimensão como um esquema inicial.

insira a descrição da imagem aqui

Maheshwar Reddy
fonte
2
(Esta postagem não parece fornecer uma resposta de qualidade para a pergunta. Edite sua resposta ou apenas poste como um comentário à pergunta).
sɐunıɔ ןɐ qɐp