Data Warehousing - Schemi

Lo schema è una descrizione logica dell'intero database. Include il nome e la descrizione dei record di tutti i tipi di record, inclusi tutti gli elementi di dati e gli aggregati associati. Proprio come un database, anche un data warehouse richiede di mantenere uno schema. Un database utilizza il modello relazionale, mentre un data warehouse utilizza lo schema Star, Snowflake e Fact Constellation. In questo capitolo, discuteremo gli schemi utilizzati in un data warehouse.

Schema a stella

  • Ogni dimensione in uno schema a stella è rappresentata con una sola tabella a una dimensione.

  • Questa tabella delle dimensioni contiene la serie di attributi.

  • Il diagramma seguente mostra i dati di vendita di un'azienda rispetto alle quattro dimensioni, ovvero tempo, articolo, filiale e ubicazione.

  • C'è una tabella dei fatti al centro. Contiene le chiavi di ciascuna delle quattro dimensioni.

  • La tabella dei fatti contiene anche gli attributi, ovvero i dollari venduti e le unità vendute.

Note- Ogni dimensione ha solo una tabella delle dimensioni e ogni tabella contiene una serie di attributi. Ad esempio, la tabella delle dimensioni della posizione contiene il set di attributi {location_key, street, city, province_or_state, country}. Questo vincolo può causare la ridondanza dei dati. Ad esempio, "Vancouver" e "Victoria" entrambe le città si trovano nella provincia canadese della British Columbia. Le voci per tali città possono causare la ridondanza dei dati lungo gli attributi province_or_state e country.

Schema del fiocco di neve

  • Alcune tabelle delle dimensioni nello schema Snowflake sono normalizzate.

  • La normalizzazione suddivide i dati in tabelle aggiuntive.

  • A differenza dello schema Star, la tabella delle dimensioni in uno schema a fiocco di neve viene normalizzata. Ad esempio, la tabella delle dimensioni degli articoli nello schema a stella viene normalizzata e suddivisa in due tabelle delle dimensioni, ovvero la tabella degli articoli e quella dei fornitori.

  • Ora la tabella delle dimensioni dell'articolo contiene gli attributi chiave_articolo, nome_articolo, tipo, marca e chiave-fornitore.

  • La chiave del fornitore è collegata alla tabella delle dimensioni del fornitore. La tabella delle dimensioni del fornitore contiene gli attributi fornitore_key e fornitore_type.

Note - A causa della normalizzazione nello schema Snowflake, la ridondanza viene ridotta e quindi diventa facile da mantenere e risparmiare spazio di archiviazione.

Schema delle costellazioni dei fatti

  • Una costellazione dei fatti ha più tabelle dei fatti. È anche noto come schema della galassia.

  • Il diagramma seguente mostra due tabelle dei fatti, ovvero vendite e spedizione.

  • La tabella dei fatti sulle vendite è la stessa dello schema a stella.

  • La tabella dei fatti di spedizione ha le cinque dimensioni, ovvero item_key, time_key, shipper_key, from_location, to_location.

  • La tabella dei dati di spedizione contiene anche due misure, vale a dire dollari venduti e unità vendute.

  • È anche possibile condividere tabelle delle dimensioni tra tabelle dei fatti. Ad esempio, le tabelle delle dimensioni di ora, articolo e posizione vengono condivise tra la tabella dei fatti di vendita e di spedizione.

Definizione dello schema

Lo schema multidimensionale viene definito utilizzando DMQL (Data Mining Query Language). Le due primitive, definizione del cubo e definizione della dimensione, possono essere utilizzate per definire i data warehouse e i data mart.

Sintassi per la definizione del cubo

define cube < cube_name > [ < dimension-list > }: < measure_list >

Sintassi per la definizione della dimensione

define dimension < dimension_name > as ( < attribute_or_dimension_list > )

Definizione dello schema a stella

Lo schema a stella di cui abbiamo discusso può essere definito utilizzando DMQL (Data Mining Query Language) come segue:

define cube sales star [time, item, branch, location]:   
    	   
dollars sold = sum(sales in dollars), units sold = count(*)    	  

define dimension time as (time key, day, day of week, month, quarter, year)
define dimension item as (item key, item name, brand, type, supplier type)        	
define dimension branch as (branch key, branch name, branch type)              	
define dimension location as (location key, street, city, province or state, country)

Definizione dello schema del fiocco di neve

Lo schema Snowflake può essere definito utilizzando DMQL come segue:

define cube sales snowflake [time, item, branch, location]:

dollars sold = sum(sales in dollars), units sold = count(*)

define dimension time as (time key, day, day of week, month, quarter, year)
define dimension item as (item key, item name, brand, type, supplier (supplier key, supplier type))
define dimension branch as (branch key, branch name, branch type)
define dimension location as (location key, street, city (city key, city, province or state, country))

Definizione dello schema delle costellazioni dei fatti

Lo schema della costellazione dei fatti può essere definito utilizzando DMQL come segue:

define cube sales [time, item, branch, location]:

dollars sold = sum(sales in dollars), units sold = count(*)

define dimension time as (time key, day, day of week, month, quarter, year)
define dimension item as (item key, item name, brand, type, supplier type)
define dimension branch as (branch key, branch name, branch type)
define dimension location as (location key, street, city, province or state,country)
define cube shipping [time, item, shipper, from location, to location]:

dollars cost = sum(cost in dollars), units shipped = count(*)

define dimension time as time in cube sales
define dimension item as item in cube sales
define dimension shipper as (shipper key, shipper name, location as location in cube sales, shipper type)
define dimension from location as location in cube sales
define dimension to location as location in cube sales