Risposte:
Pensa a un processo o evento che desideri analizzare.
Supponiamo che tu stia creando Lougle Analytics e desideri analizzare le visite (anziché le richieste a pagina singola) sul tuo sito. La visita di un sito Web è un processo.
Una tabella dei fatti rappresenta un processo o un evento che si desidera analizzare, in questo caso è un elenco di visite al sito. Puoi avere tutte le tabelle dei fatti che desideri, una per processo o evento.
Quali cose potrebbero esserti utili nell'analisi delle visite al sito?
Tecnicamente, potresti mettere tutto in una tabella - come faresti in Excel, ma sarebbe molto grande molto velocemente, quindi faremo UN livello di normalizzazione. Il design dimensionale è spesso semplicemente "metti tutto ciò che ti serve per un'analisi in una grande tabella", quindi normalizza un livello.
Quindi la tua tabella dei fatti sarà simile a questa:
web_browser_key bigint
ip_address_key bigint
start_date_key int
referring_page_key bigint
landing_page_key bigint
exit_page_key bigint
duration_seconds int
number_of_pages_visited int
Ha un sacco di valori chiave che fanno riferimento a valori in altre tabelle † e due non chiavi. Le non chiavi sono valori numerici e si chiamano Misure . Puoi prendere la media del marchio del browser web? No, quindi è una dimensione. Puoi prendere la media della durata della visita? Sì, quindi è una misura.
Gli altri tavoli sono chiamati Dimension tavoli, e la ip_address
tabella di dimensioni potrebbe essere simile a questo:
ip_address_key bigserial primary key, /* use meaningless surrogate keys */
ip_address inet unique,
country text,
division text,
locality text,
latitude numeric(8,6),
longitude numeric(9,6)
Si noti che non è normalizzato: il paese potrebbe essere derivato dalla città (località). Tuttavia, in un data warehouse, ci preoccupiamo innanzitutto di facilitare l'analisi . Facilitando l'analisi, intendo evitare unioni profonde.
Si noti che alcuni dei dati nella tabella delle dimensioni sono gerarchici : paese> divisione> località. Il tuo server OLAP (si spera) capisce le gerarchie per supportare le operazioni di drill-down.
Un cubo logico è solo la raccolta di dimensioni e misure con cui stai lavorando. A differenza del cubo di Rubik, può avere più di 3 dimensioni. Pensa a una dimensione come a una colonna nel tuo set di dati.
OLAP è un insieme di operazioni che è possibile eseguire su un set di dati, ad esempio perno, taglio, taglio a cubetti, perforazione. Pensa alle tabelle pivot di Excel. Un server OLAP facilita le operazioni OLAP.
† di solito senza chiavi esterne
Nell'immagine sotto che è un esempio di uno schema a stella di base. Le dimensioni sono Dim_Tables.
Questi sono generalmente i valori per cui si desidera analizzare i dati. Quindi vuoi esaminare le vendite di un determinato prodotto, in un determinato paese, in un determinato intervallo di date.
Nella tabella fact_sales hai solo la misura che è Units_Sold.
Le misure (al livello più semplice) sono solo cose che vuoi aggregare quando analizzi in base a criteri nelle dimensioni.
Se c'è qualcos'altro di più specifico che vorresti sapere, per favore fatemelo sapere.
city
nei tuoi schemi, quindi quando dicicountry could be derived from city
che non sono positivo cosa intendi.