Modulo 2 — DW design · Capitolo 15

Modulo 2: TPC-D e Indyco Builder

~50 min di lettura5 widget interattivi8 tavole

In questo capitolo

  1. Il programma del Modulo 2
  2. Il software e le licenze
  3. L'esame del Modulo 2
  4. Indyco Builder
  5. Il caso di studio TPC-D
  6. L'albero degli attributi: Sales e Orders
  7. La progettazione concettuale e logica
  8. La progettazione fisica: i DDL
  9. Verifica le tue conoscenze

Il capitolo 14 ha introdotto l'interrogazione OLAP con Power BI; questo capitolo ricostruisce il Modulo 2 del corso nella sua interezza: il programma, il software usato in laboratorio con le relative licenze, le modalità d'esame (un esercizio da 30 minuti valutato 6/32), e il percorso di progettazione guidato sul benchmark TPC-D con Indyco Builder — dalla progettazione concettuale (DFM) a quella logica, fino ai DDL della progettazione fisica. È il ponte fra i due mondi del corso: la metodologia dei capitoli 1–13 e la pratica di laboratorio dei capitoli 14–16.

1. Il programma del Modulo 2

L'obiettivo del Modulo 2 è creare, alimentare e interrogare un data warehouse, lavorando sul benchmark TPC-D. Il percorso si articola in due grandi blocchi:

MODULO 2 — CREARE, ALIMENTARE E INTERROGARE UN DW Progettazione concettuale e logica esempio guidato sul benchmark TPC-D strumento: Indyco Builder (DFM design) Querying impostare le gerarchie eseguire query OLAP strumento: Power BI poi il DW di riferimento è quello costruito sul benchmark TPC-D
Tavola 15.1 — Il programma del Modulo 2. Si progetta il data warehouse sul benchmark TPC-D con Indyco Builder, poi lo si interroga con Power BI: creare, alimentare e interrogare.

2. Il software e le licenze

Gli strumenti del Modulo 2 non possono essere usati per scopi commerciali. Le macchine del laboratorio sono già pronte, ma gli strumenti possono essere installati anche sulle macchine personali:

StrumentoLicenza
Indyco BuilderLicenza necessaria — può essere richiesta al docente
Power BI DesktopNessuna licenza necessaria — la versione Desktop è gratuita
Nota del redattore

La distinzione licenze/software ricorre nelle domande d'esame: Indyco Builder richiede una licenza (richiedibile), Power BI Desktop è gratuito. La licenza educativa di Indyco Builder, come si vedrà nella sezione 4, non supporta la generazione automatica del modello logico né il reverse-engineering.

3. L'esame del Modulo 2

Il contenuto del Modulo 2 fa parte dell'esame finale del corso. La prova consiste in un singolo esercizio da 30 minuti, nel quale lo studente deve:

La valutazione è di 6/32 punti — la quota del Modulo 2 all'interno dell'esame complessivo del corso.

ESAME — MODULO 2 Un singolo esercizio, 30 minuti 1. connettersi a un DW (Power BI) 2. configurare le gerarchie 3. definire query e grafici Valutazione: 6/32 punti dell'esame finale il contenuto del modulo è parte dell'esame finale del corso
Tavola 15.2 — L'esame del Modulo 2. Un esercizio di 30 minuti: connessione al DW, configurazione delle gerarchie, definizione di query e grafici. Valutazione: 6/32 punti.

4. Indyco Builder

Definizione — Indyco Builder

Indyco Builder è un software commerciale di Iconsulting che supporta la progettazione concettuale di un data warehouse: fornisce funzionalità di validazione DFM e metriche di valutazione, una GUI web per l'esplorazione del DW, e la generazione automatica del modello logico (non supportata dalla licenza educativa). Anche il reverse-engineering non è supportato dalla licenza educativa.

Nel Modulo 2, Indyco Builder viene usato per definire i modelli concettuale (DFM) e logico del data mart di esempio. Le funzionalità escluse dalla licenza educativa — generazione automatica del modello logico e reverse-engineering — vanno quindi svolte a mano, ed è esattamente ciò che il corso insegna: la progettazione concettuale e logica si fanno con la metodologia dei capitoli 7–11, Indyco Builder serve a validare ed esplorare.

INDYCO BUILDER (ICONSULTING) Progettazione concettuale supporta il DFM design Esplorazione GUI web per l'esplorazione del DW Validazione DFM e metriche validazione e metriche di valutazione Modello logico automatico non supportato dalla licenza educativa licenza educativa: niente generazione logica automatica, niente reverse-engineering
Tavola 15.3 — Le funzionalità di Indyco Builder. Progettazione concettuale DFM, validazione e metriche, GUI web di esplorazione; la generazione automatica del modello logico e il reverse-engineering non sono supportati dalla licenza educativa.

5. Il caso di studio TPC-D

Il caso di studio del Modulo 2 è il benchmark TPC-D, con le sue tabelle relazionali. La legenda delle slide spiega come leggere lo schema:

CASO DI STUDIO: TPC-D — COME LEGGERE LO SCHEMA PART (p_) cardinalità: 200.000 SUPPLIER (s_) cardinalità: 10.000 LINEITEM (l_) cardinalità: 6.001.215 1:n opz. PARENTESI prefisso dei nomi di colonna FRECCE direzione 1:n TRATTEGGIO tabelle/relazioni opzionali NUMERO cardinalità della tabella i due cubi del Modulo 2: il fatto principale è il cubo Sales, il fatto alternativo è il cubo Orders
Tavola 15.4 — Come leggere lo schema TPC-D. Le parentesi danno il prefisso delle colonne, le frecce la direzione delle relazioni one-to-many, il tratteggio le opzionalità, il numero sotto il nome la cardinalità.

Lo schema TPC-D dà origine a due cubi: il fatto principale è il cubo Sales, il fatto alternativo è il cubo Orders. La differenza è nell'evento primario: per Sales il fatto è la linea d'ordine (la riga di LINEITEM), per Orders il fatto è l'ordine stesso. Di conseguenza i due cubi hanno misure e dimensioni diverse, come mostra l'albero degli attributi.

6. L'albero degli attributi: Sales e Orders

Per ciascun cubo, Indyco Builder visualizza l'albero degli attributi: le dimensioni con le loro gerarchie e gli attributi caratterizzati dalla legenda delle slide:

LegendaSignificato
not interestingattributi non interessanti per l'analisi
descriptiveattributi descrittivi (usabili solo con l'attributo che descrivono)
key swappedattributi la cui chiave è stata scambiata (la chiave diventa descrittiva)
measuremisure del fatto
sharedattributi condivisi fra più dimensioni (collegamenti fra tabelle)

L'albero del cubo Sales ha il fatto LINEITEM con le misure l_quantity, l_extendedprice, l_discount, l_tax; le dimensioni PART (p_, con la gerarchia partkey → mfgr → brand → type → size → container...), SUPPLIER (s_), CUSTOMER (c_, con la gerarchia custkey → nation → region), ORDER (o_, con la gerarchia orderkey → orderdate...), DATE, e la partizione di PARTSUPPLIER (ps_, con ps_partkey+ e ps_suppkey+ che collegano due dimensioni). Le chiavi con il simbolo + (l_partkey+, l_suppkey+, ps_partkey+, ps_suppkey+) sono chiavi importate: attributi condivisi che realizzano il collegamento fra il fatto e le dimensioni.

ALBERO DEGLI ATTRIBUTI — SALES FT LINEITEM misure: l_quantity, l_extendedprice, l_discount, l_tax DT_PART p_partkey · p_name (desc) p_mfgr · p_brand · p_type p_size · p_container p_retailprice · p_comment DT_SUPPLIER s_suppkey · s_name (desc) s_address · s_phone s_acctbal · s_comment → n_nationkey (shared) DT_CUSTOMER c_custkey · c_name (desc) c_address · c_phone c_acctbal · c_mktsegment → n_nationkey (shared) DT_ORDER o_orderkey · o_orderdate o_orderstatus · o_totalprice o_orderpriority · o_clerk o_shippriority · o_comment l_partkey+ l_suppkey+ c_custkey o_orderkey le chiavi con «+» sono importate (shared) · PARTSUPPLIER collega PART e SUPPLIER
Tavola 15.5 — L'albero degli attributi del cubo Sales. Il fatto LINEITEM importa le chiavi delle dimensioni (l_partkey+, l_suppkey+, c_custkey, o_orderkey); PARTSUPPLIER collega PART e SUPPLIER attraverso chiavi condivise.

Il cubo Orders ha come fatto l'ordine (DT_ORDER diventa il fatto FT_ORDERS): cambiano le misure (per esempio o_totalprice diventa misura) e le dimensioni che si collegano direttamente al fatto. La differenza fra i due cubi è esattamente ciò che la progettazione concettuale deve decidere: qual è l'evento primario, la linea d'ordine o l'ordine?

SALES vs ORDERS Sales (fatto principale) evento primario: la linea d'ordine fatto: FT LINEITEM misure: l_quantity, l_extendedprice, l_discount, l_tax dimensione DEGENERATA: l_linestatus, l_returnflag; junk: l_shipmode, l_shipinstruct Orders (fatto alternativo) evento primario: l'ordine fatto: FT ORDERS misura: o_totalprice richiede BRIDGE_PS per collegare l'ordine ai prodotti/fornitori (arco multiplo PART-SUPPLIER) la scelta dell'evento primario determina misure, dimensioni e architettura logica
Tavola 15.6 — Sales e Orders. Il fatto principale (Sales) ha come evento primario la linea d'ordine; il fatto alternativo (Orders) l'ordine: cambiano misure e architettura logica, con BRIDGE_PS per l'ordine.

7. La progettazione concettuale e logica

La progettazione concettuale

Per ciascun cubo si definisce lo schema di fatto (DFM) con Indyco Builder: dimensioni, gerarchie e misure emergono dall'albero degli attributi. La progettazione concettuale del cubo Sales porta alle dimensioni PART, SUPPLIER, CUSTOMER, ORDER, DATE (con la gerarchia temporale) e alle dimensioni degenerate; il cubo Orders, avendo come evento primario l'ordine, richiede di gestire l'arco multiplo fra PART e SUPPLIER (un ordine può contenere prodotti di più fornitori).

La progettazione logica: dimension table, degeneri e junk

La progettazione logica del cubo Sales combina gli strumenti classici dei capitoli 8 e 11:

LOGICAL DESIGN — SALES FT l_linestatus · l_returnflag (degenerate) DT_PART snowflake/redundancy su p_mfgr… DT_SUPPLIER → nation, region DT_CUSTOMER → nation, region DT_ORDER → date JDT_SHIPMENT l_shipmode · l_shipinstruct junk
Tavola 15.7 — Lo schema logico del cubo Sales. La fact table conserva le dimensioni degenerate; la junk dimension JDT_SHIPMENT raccoglie shipmode e shipinstruct; le dimensioni standard seguono snowflake o redundancy per le gerarchie.

Il cubo Orders e la BRIDGE_PS

La progettazione logica del cubo Orders introduce la bridge table BRIDGE_PS: poiché un ordine può contenere prodotti di più fornitori (la relazione molti-a-molti fra PART e SUPPLIER attraverso PARTSUPPLIER), il collegamento diretto fatto-dimensioni non basta. La bridge table esplicita le associazioni PART–SUPPLIER, e la fact table FT si collega a DT_PART, DT_SUPPLIER, JDT_ORDER e alle dimensioni data, come mostra lo schema logico delle slide.

LOGICAL DESIGN — ORDERS FT o_totalprice DT_PART p_partkey… DT_SUPPLIER s_suppkey… DT_CUSTOMER c_custkey… JDT_ORDER o_… (degenerate) BRIDGE_PS associazioni PART–SUPPLIER bridge
Tavola 15.8 — Lo schema logico del cubo Orders. La bridge table BRIDGE_PS esplicita le associazioni PART–SUPPLIER che l'arco multiplo rende necessarie; la fact table si collega a DT_PART, DT_SUPPLIER, DT_CUSTOMER, JDT_ORDER e DT_DATE.

Simulazione: dal concettuale alla fisica

Avanzate le tre fasi del percorso di progettazione del Modulo 2.

8. La progettazione fisica: i DDL

Per la progettazione fisica, le tabelle sono già state create: i DDL sono disponibili su Virtuale (ddl_sales.sql e ddl_orders.sql). La slide è esplicita su un punto importante per l'esame: nessun DDL è necessario per l'esame.

Attenzione

Il Modulo 2 non richiede di scrivere DDL: la progettazione fisica del data mart TPC-D è già data, e l'esame del modulo si concentra su connessione, gerarchie, query e grafici (capitolo 16). I DDL restano però materia dei quesiti teorici del corso — la metodologia della progettazione fisica è quella del capitolo 13.

Verifica le tue conoscenze

Qual è l'obiettivo e la struttura del Modulo 2?

Creare, alimentare e interrogare un data warehouse basato sul benchmark TPC-D: progettazione concettuale e logica con Indyco Builder (DFM), interrogazione con Power BI (gerarchie e query OLAP).

Quali licenze servono per gli strumenti del Modulo 2?

Indyco Builder: licenza necessaria, richiedibile al docente. Power BI Desktop: nessuna licenza, la versione Desktop è gratuita. Gli strumenti non possono essere usati per scopi commerciali.

Come è fatto l'esame del Modulo 2?

Un singolo esercizio da 30 minuti: connettersi a un DW con Power BI, configurare le gerarchie, definire query e grafici. Valutazione: 6/32 punti.

Che cosa è Indyco Builder e che cosa non supporta la licenza educativa?

Un software commerciale di Iconsulting per la progettazione concettuale (DFM): validazione e metriche, GUI web di esplorazione. La licenza educativa non supporta la generazione automatica del modello logico né il reverse-engineering.

Come si legge lo schema TPC-D?

Le parentesi dopo il nome della tabella contengono il prefisso dei nomi di colonna; le frecce puntano nella direzione delle relazioni one-to-many; le linee tratteggiate sono tabelle/relazioni opzionali; il numero o formula sotto il nome è la cardinalità della tabella.

Quali sono il fatto principale e il fatto alternativo di TPC-D?

Il fatto principale è il cubo Sales (evento primario: la linea d'ordine, FT LINEITEM); il fatto alternativo è il cubo Orders (evento primario: l'ordine, FT ORDERS).

Che cosa indica la legenda dell'albero degli attributi?

not interesting: attributi non interessanti; descriptive: attributi descrittivi (usabili solo con l'attributo che descrivono); key swapped: chiave scambiata; measure: misure; shared: attributi condivisi fra dimensioni (le chiavi con «+» come l_partkey+).

Quali soluzioni logiche usa il cubo Sales?

Dimension table per le dimensioni standard; dimensioni degenerate per l_linestatus e l_returnflag (restano nella fact table); junk dimension JDT_SHIPMENT per l_shipmode e l_shipinstruct; snowflake o redundancy per le gerarchie derivate (es. nation/region del customer).

Perché il cubo Orders richiede la bridge table BRIDGE_PS?

Per l'arco multiplo fra PART e SUPPLIER: un ordine può contenere prodotti di più fornitori (relazione molti-a-molti attraverso PARTSUPPLIER). La bridge table esplicita le associazioni PART–SUPPLIER che il collegamento diretto fatto-dimensioni non può rappresentare.

Che cosa serve per la progettazione fisica del Modulo 2?

Niente: le tabelle sono già state create con i DDL disponibili su Virtuale (ddl_sales.sql, ddl_orders.sql). Nessun DDL è necessario per l'esame.