L’esempio contenuto in questa pagina è collegato alla guida: Sistemi Informativi e Data Warehouse, pertanto se ne consiglia la lettura. Consideriamo il seguente esempio: disponiamo di uno schema relazionale incaricato di descrivere il funzionamento di un piccolo sistema bancario, elencandone le banche, i clienti e le rispettive operazioni.

All’interno di questo schema le entità coinvolte sono:

  • CITTA, contenente gli attributi: Nome, Regione e Stato;
  • CLIENTE, contenente gli attributi: Identificativo, CITTA:Nome (quest’ultimo è un riferimento all’attributo “Nome” dell’entità “CITTA”);
  • BANCOMAT, contenente gli attributi: Identificativo, CLIENTE:Nome;
  • BANCA, contenente gli attributi: Nome, CITTA:Nome;
  • FILIALE, contenente gli attributi: Numero, BANCA:Nome;
  • OPERAZIONE, contenente gli attributi: Numero, BANCOMAT:Identificativo, FILIALE:Numero, Data, Mese, Anno, Importo;
  • VERSAMENTO, contenente gli attributi: OPERAZIONE:[Numero, BANCOMAT:Identificativo], Assegno, BANCA:Nome.

Il versamento deve essere considerato come una particolare tipologia di operazione, ovvero un suo sottoinsieme.

Gli attributi chiave per ogni entità sono stati sottolineati (Attributo_chiave), gli attributi che sono chiavi esterne sono preceduti dal nome dell’entità a cui appartengono (esempio: ENTITA’:Attributo).

Definizione del Diagramma ER

La richiesta è quella di convertire lo schema relazionale in un Diagramma ER (per maggiori informazioni si veda: Guida al Modello ER) e successivamente in un Fact Model (per maggiori informazioni si veda: Sistemi Informativi e Data Warehouse) . Iniziamo creando i box per le entità fondamentali e successivamente collegandole tra loro per mezzo delle relazioni. Illustriamo brevemente le criticità contenute all’interno del diagramma:

  • La chiave primaria dell’entità “OPERAZIONE” è composta dall’attributo “Numero” e della chiave primaria dell’entità “BANCOMAT”;
  • Le istanze dell’entità “VERSAMENTO” sono un sottoinsieme di tutte le istanze dell’entità “OPERAZIONE”.

Le cardinalità non ricavabili dallo schema relazionale sono state dedotte a logica.

Sistemi Informativi Esempio - Schema ER
Sistemi Informativi Esempio – Schema ER

Definizione del DFM

Rispondiamo ora alla seconda richiesta, convertire il Diagramma ER in un Dimensional Fact Model da utilizzare per la progettazione di un data warehouse. Concentriamoci sulla traduzione dell’entità “OPERAZIONE”, essa vanta tre attributi dimensionali:

  • Data, la data in cui l’operazione è stata eseguita;
  • Il bancomat e quindi il Cliente che l’ha effettuata;
  • Il versamento e quindi la Banca a cui il versamento si riferisce.

Le misure interessanti dal punto di vista dell’analisi sono:

  • Importo_medio, l’importo medio delle operazioni;
  • Importo_totale, l’importo totale delle operazioni.

Infine, dal diagramma emergono le seguenti dipendenze funzionali:

  • REGIONE \to STATO all’interno dell’entità “CITTA'”;
  • DATA \to MESE all’interno dell’entità “OPERAZIONE”;
  • MESE \to ANNO nuovamente all’interno dell’entità “OPERAZIONE”;

Di seguito vediamo il Dimensional Fact Model originato a partire dal Diagramma ER sovrastante. All’interno del Dimensional Fact Model sono evidenti le gerarchie per “CITTA'” (entità) e per “Data” (attributo), inoltre è anche evidente la presenza di una gerarchia condivisa.

Sistemi Informativi Esempio - Dimensional Fact Model
Sistemi Informativi Esempio – Dimensional Fact Model
Il secondo esempio di conversione di un Diagramma ER in un DFM è disponibile a questo indirizzo: Esempio di progettazione concettuale