Differenza tra tabella dei fatti e tabella delle dimensioni?


112

Durante la lettura di un libro per oggetti di business, mi sono imbattuto nella tabella dei fatti e nella tabella delle dimensioni.

Sto cercando di capire qual è la differenza tra la tabella delle dimensioni e la tabella dei fatti?

Ho letto un paio di articoli su Internet ma non sono riuscito a capire chiaramente ..

Qualche semplice esempio mi aiuterà a capire meglio?


Il concetto è piuttosto lungo da descrivere in dettaglio, se hai un problema specifico oltre la definizione di base, parlacelo.
NoChance

Fondamentalmente, stavo cercando di capire se le tabelle delle dimensioni possono essere anche tabelle dei fatti o no?

Risposte:


52

Questo per rispondere alla parte:

Stavo cercando di capire se le tabelle delle dimensioni possono essere anche tabelle dei fatti oppure no?

La risposta breve (INMO) è No, perché i 2 tipi di tabelle vengono creati per motivi diversi. Tuttavia, dal punto di vista della progettazione del database, una tabella delle dimensioni potrebbe avere una tabella padre come nel caso della tabella dei fatti che ha sempre una tabella delle dimensioni (o più) come padre. Inoltre, le tabelle dei fatti possono essere aggregate, mentre le tabelle delle dimensioni non sono aggregate. Un altro motivo è che le tabelle dei fatti non dovrebbero essere aggiornate sul posto mentre le tabelle delle dimensioni potrebbero essere aggiornate sul posto in alcuni casi.

Più dettagli:

Le tabelle dei fatti e delle dimensioni vengono visualizzate in quello che è comunemente noto come schema a stella. Uno scopo principale dello schema a stella è quello di semplificare un complesso insieme normalizzato di tabelle e consolidare i dati (possibilmente da sistemi diversi) in una struttura di database che può essere interrogata in modo molto efficiente.

Nella sua forma più semplice, contiene una tabella dei fatti (Esempio: StoreSales) e una o più tabelle delle dimensioni. A ciascuna voce dimensione sono associate 0,1 o più tabelle dei fatti (esempio di tabelle dimensioni: area geografica, articolo, fornitore, cliente, ora e così via). Sarebbe valido anche per la dimensione avere un genitore, nel qual caso il modello è di tipo "Snow Flake". Tuttavia, i progettisti tentano di evitare questo tipo di progettazione poiché causa più join che rallentano le prestazioni. Nell'esempio di StoreSales, la dimensione Geography potrebbe essere composta dalle colonne (GeoID, ContenentName, CountryName, StateProvName, CityName, StartDate, EndDate)

In un modello Snow Flakes, potresti avere 2 tabelle normalizzate per le informazioni geografiche, ovvero: Tabella dei contenuti, Tabella dei paesi.

Puoi trovare molti esempi su Star Schema. Inoltre, controlla questo per vedere una vista alternativa sul modello di schema a stella Inmon vs. Kimball . Kimbal ha un buon forum che potresti voler controllare qui: Kimball Forum .

Modifica: per rispondere ai commenti sugli esempi per 4NF:

  • Esempio di una tabella dei fatti che viola 4NF:

Fattore di vendita (ID, BranchID, SalesPersonID, ItemID, Amount, TimeID)

  • Esempio per una tabella dei fatti che non viola 4NF:

AggregatedSales (BranchID, TotalAmount)

Qui la relazione è in 4NF

L'ultimo esempio è piuttosto raro.


1
Alcune tabelle dei fatti riflettono i dati a livello di transazione. Alcuni riflettono dati aggregati. Una tabella dei fatti in uno schema a stella non deve essere nemmeno in 3NF. Ad esempio, Sales Fact potrebbe contenere dati come (ID, BranchID, Amount, SalesPerson, Time) - Ciò viola 3NF, BCNF e 4NF perché la dipendenza SalesPerson e Branch.Di conseguenza, non è vero che una tipica tabella dei fatti è in 4NF.
NoChance

258

In Data Warehouse Modeling, uno schema a stella e uno schema a fiocco di neve sono costituiti da tabelle Fact e Dimension .

Tabella dei fatti:

  • Contiene tutte le chiavi primarie della dimensione e fatti o misure associati (è una proprietà su cui è possibile effettuare calcoli) come la quantità venduta, l'importo venduto e le vendite medie.

Tabelle dimensionali:

  • Le tabelle dimensionali forniscono informazioni descrittive per tutte le misure registrate nella tabella dei fatti.
  • Le dimensioni sono relativamente piccole rispetto alla tabella dei fatti.
  • Le dimensioni comunemente utilizzate sono persone, prodotti, luogo e tempo.

inserisci qui la descrizione dell'immagine

fonte dell'immagine


52
questo è molto più utile della risposta accettata
Booji Boy

15
Ebbene, un'immagine vale più di mille parole. Non ho capito niente leggendo le altre risposte, ma questa mi ha salvato.
The One

Le dimensioni sembrano relativamente grandi rispetto alla tabella dei fatti nel diagramma in quanto contiene dati più descrittivi. E sono anche più numerosi
Blue Clouds il

1
@Blue Clouds: Devi renderti conto che la tabella dei fatti contiene una voce per ogni possibile combinazione di for dim (se ci sono dati, almeno). Sebbene la dimensione della posizione conterrà al massimo una voce per ogni posizione possibile (ad esempio 50 punti vendita) e crescerà raramente, quando vengono aggiunte nuove posizioni, la tabella dei fatti probabilmente crescerà ogni giorno per posizione x elementi x rami. Quindi, il numero di record aumenterà abbastanza velocemente.
Daniel

@Premraj Può esistere una tabella dei fatti senza chiave primaria?
Kalana

109

Questa sembra essere una risposta molto semplice su come distinguere tra tabelle dei fatti e tabelle dimensionali!

Può essere utile pensare alle dimensioni come cose o oggetti. Una cosa come un prodotto può esistere senza mai essere coinvolta in un evento aziendale. Una dimensione è il tuo sostantivo. È qualcosa che può esistere indipendentemente da un evento aziendale, come una vendita. Prodotti, dipendenti, attrezzature, sono tutte cose che esistono. Una dimensione o fa qualcosa o le ha fatto qualcosa.

I dipendenti vendono, i clienti comprano. Dipendenti e clienti sono esempi di dimensioni, lo fanno.

I prodotti vengono venduti, sono anche dimensioni in quanto hanno qualcosa fatto su di loro.

I fatti, sono il verbo. Una voce in una tabella dei fatti contrassegna un evento discreto che accade a qualcosa dalla tabella delle dimensioni. La vendita di un prodotto verrebbe registrata in una tabella dei fatti. L'evento della vendita sarebbe annotato da quale prodotto è stato venduto, quale dipendente lo ha venduto e quale cliente lo ha acquistato. Prodotto, Dipendente e Cliente sono tutte dimensioni che descrivono l'evento, la vendita.

Inoltre, le tabelle dei fatti in genere contengono anche qualche tipo di dati quantitativi. La quantità venduta, il prezzo per articolo, il prezzo totale e così via.

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


5
Ottima scrittura, sono necessari solo 5 minuti per comprendere il concetto.
user1951

Per riassumere: le dimensioni sono attributi di fatti-eventi. DAFE. Cosa stai facendo, DAFE?
Youucantryreachingme

3
Sì, è così che li ricordo. È il contrario di quello che penseresti. Penseresti che i fatti siano scolpiti nella pietra e le dimensioni siano dinamiche, basate sulle parole stesse. Ma è l'opposto: una tabella dim di base è un elenco di ricerca abbastanza statico e una tabella dei fatti di base è i dati viventi che vengono inseriti.
Annulla scadenza

1
Questa era la mia spiegazione preferita e mi ha fatto scattare in testa, grazie!
Arjun Arun

9

Ho trovato questa risposta più facile da capire dal punto di vista di una persona che non conosce molto la terminologia DB / DW.

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

Ti consiglio di esaminare prima questo e poi di esaminare la risposta di Emmad Kareem per una maggiore granularità. Spero sia utile.


1
Prima spiegazione che è stata del tutto chiara. Un esempio molto utile, in un semplice linguaggio laico, che rivela alcuni dettagli. Ora finalmente ho capito.
sharon

Molto carino ... penso che tu abbia ragione ... leggi prima quello. Tutte le risposte sono utili ... ma questa ha un modo per verbalizzare il concetto in termini più "umani".
Code Novice

4

Spiegazione super semplice:

Tabella dei fatti: una tabella di dati che mappa insieme gli ID di ricerca. Di solito è una delle tabelle principali al centro della tua applicazione.

Tabella delle dimensioni: una tabella di ricerca utilizzata per memorizzare valori (come nomi di città o stati) che vengono ripetuti frequentemente nella tabella dei fatti.


2

Nella forma più semplice, penso che una tabella dimensionale sia qualcosa come una tabella "principale", che mantiene un elenco di tutti gli "elementi", per così dire.

Una tabella dei fatti è una tabella delle transazioni che descrive tutte le transazioni. Inoltre, dati aggregati (raggruppati) come le vendite totali per addetto alle vendite, le vendite totali per filiale: tali tipi di tabelle potrebbero anche esistere come tabelle dei fatti indipendenti.


2

Tabella delle dimensioni La tabella delle dimensioni è una tabella che contiene gli attributi delle misurazioni memorizzate nelle tabelle dei fatti. Questa tabella è composta da gerarchie, categorie e logica che possono essere utilizzate per attraversare i nodi.

La tabella dei fatti contiene la misurazione dei processi aziendali e contiene chiavi esterne per le tabelle delle dimensioni.

Esempio: se il processo aziendale è la produzione di mattoni

Numero medio di mattoni prodotti da una persona / macchina - misura del processo aziendale


1
  1. La tabella dei fatti è costituita principalmente da fatti aziendali e chiavi esterne che fanno riferimento a chiavi primarie nelle tabelle delle dimensioni. Una tabella delle dimensioni è costituita principalmente da attributi descrittivi che sono campi testuali.
  2. Una tabella delle dimensioni contiene una chiave surrogata, una chiave naturale e un set di attributi. Al contrario, una tabella dei fatti contiene una chiave esterna, misure e dimensioni degenerate.
  3. Le tabelle delle dimensioni forniscono informazioni descrittive o contestuali per la misurazione di una tabella dei fatti. D'altra parte, le tabelle dei fatti forniscono le misurazioni di un'impresa.
  4. Quando si confrontano le dimensioni delle due tabelle, una tabella dei fatti è più grande di una tabella dimensionale. In una tabella di confronto, vengono presentate più dimensioni rispetto alle tabelle dei fatti. In una tabella dei fatti, si osserva un numero inferiore di fatti.
  5. La tabella delle dimensioni deve essere caricata prima. Durante il caricamento delle tabelle dei fatti, si dovrebbe guardare la tabella delle dimensioni. Questo perché la tabella dei fatti contiene misure, fatti e chiavi esterne che sono le chiavi primarie nella tabella delle dimensioni.

Per saperne di più: tabella dimensionale e tabella dei fatti | Differenza tra | Tabella delle dimensioni e tabella dei fatti http://www.differencebetween.net/technology/hardware-technology/dimension-table-and-fact-table/#ixzz3SBp8kPzo


-3

Tabella delle dimensioni: non è altro che possiamo mantenere le informazioni sulla data caratterizzata chiamata tabella delle dimensioni.

Esempio: dimensione temporale, dimensione prodotto.

Tabella dei fatti: non è altro che possiamo mantenere le informazioni sulle metriche o sui dati di precalcolo.

Esempio: fatto di vendita, fatto di ordine.

Schema a stella: un collegamento alla tabella dei fatti con il modulo della tabella delle dimensioni come schema iniziale.

inserisci qui la descrizione dell'immagine


2
(Questo post non sembra fornire una risposta di qualità alla domanda. Modifica la tua risposta o pubblicala come commento alla domanda).
sɐunıɔ ןɐ qɐp
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.