- Orientato alle informazioni (“subject oriented”): i dati archiviati nei sistemi applicativi di base sono di norma orientati ad un problema specifico; nel DWH vengono, invece, ricostruite nella loro completezza (e contemporaneamente rese disponibili) le informazioni presenti in modo frammentario nei vari sottosistemi; in altre termini se nei sistemi operazionali l’accento è posto sulle applicazioni (modalità di manipolazione dei dati), nel DWH tale accento è posto sugli oggetti, sui fatti, sulle informazioni e non sulla loro manipolazione.
- Integrato (“integrated”): tipicamente i vari sistemi informatici di base utilizzano differenti (e spesso incompatibili) piattaforme tecnologiche, data-base, attributi fisici, codifiche, convenzioni sui nomi, dimensioni degli attributi ecc… L’inserimento dei dati in un DWH avviene proprio al fine di eliminare le incongruenze e le inconsistenze dei sistemi elementari.
- Non volatile (“nonvolatile”): nei sistemi applicativi di base i dati sono continuamente aggiornati mentre i DWH non prevedono l’aggiornamento di nessun dato bensì memorizzano foto successive della realtà, raccolte con cadenza fissa, in tal modo le modifiche che sul sistema operazionale andrebbero perse se non storicizzate vengono sul DWH memorizzate in maniera permanente.
- Varianza col tempo (“time variant”): l’orizzonte temporale dei dati “online” in un DWH è tipicamente molto più alto rispetto ai sistemi di base; questi ultimi mantengono solo la versione corrente dei dati mentre il DWH ne contiene tutta la “storia”.
Con l’ausilio alcuni livelli distinti, che possono essere schematizzati come in figura, è rappresentabile l’architettura del sistema:
La struttura gerarchica mostrata si pone come obiettivo l’evidenziare i vari livelli esistenti nel sistema informatico e rende l’idea con una metafora grafica che il peso dell’informazione aumenta in maniera proporzionale al livello di sintesi che si è in grado di fornire alle informazioni stesse: infatti risalendo dai sistemi di base fino al livello dei sistemi orientati al supporto decisionale, i volumi dei dati coinvolti sono via via decrescenti, ma il valore di ogni singolo dato aumenta poiché questo riassume in sé un sempre maggiore contenuto informativo.
Lo schema che segue pone l’accento sulle interazioni e scambi fra i vari moduli funzionali:
I sistemi di base sono quelli su cui ogni giorno gli operatori dei vari servizi interagiscono: sono costituiti prevalentemente da applicativi specifici, mirati ad ottimizzare l’attività operativa di alcuni servizi o settori dell’Azienda.
Il DWH aziendale, ovvero lo strato intermedio, consente di acquisire dei dati dai diversi sottosistemi di base oltre che la loro gestione mediante un sistema in grado di garantire le 4 caratteristiche fondamentali dei “magazzini di dati” già citate (“subject oriented”, “integrated”, “nonvolatile”, “time variant”).
Il DSS è la finestra multidimensionale sul Data Warehouse: offre una struttura semplice per l’interrogazione e la reportistica all’utente finale. L’accesso ai sistemi primari per le query specifiche, al contrario, è normalmente riservato agli esperti (statistici, informatici, analisti, ecc…), i quali hanno la necessità di compiere studi e controlli molto sofisticati, sulla base di corrispondenze complesse fra dati elementari.
I filtri di acquisizione verosimilmente rappresentano la parte più delicata dell’intera architettura: nel momento in cui acquisiscono, infatti, i dati dai vari sottosistemi, devono “ripulirli” in modo appropriato, mediante l’attuazione di opportune regole di validazione e mediante attività di transcodifica e normalizzazione: proprio tali operazioni rendono il contenuto del DWH realmente utile e significativo.
Un aspetto tecnico particolarmente importante nella realizzazione di un DWH sono i meccanismi di refresh dei dati a partire dai sistemi di base. Il DWH rappresenta, in effetti, la “storia ragionata” dei sistemi di base la quale viene periodicamente uniformato secondo i protocolli prefissati. Possono essere numerose le modalità di tali aggiornamenti, ad esempio:
- inserire un “time stamp” nelle informazioni più significative presenti nei sistemi di base,
- utilizzare un “delta file” comprendente solo le variazioni apportate agli archivi, o un “log file” creato direttamente dalle applicazioni;
- modificare i software di base in modo che, a fronte di eventi predefiniti, aggiornino direttamente il DWH;
- gestire una “before image” ed una “after image” del contenuto degli archivi di base in modo da poter estrarre direttamente le variazioni;
- operare ogni volta una copia integrale dei dati dell’intera banca dati.
Queste opzioni ipotizzate hanno ovviamente caratteristiche e costi molto diversi: presumibilmente la scelta più adeguata può essere costituita da un loro contemporaneo e coordinato utilizzo.
La parte denominata filtro di analisi può garantire ulteriori modalità di manipolazione dei fatti significativi a livello decisionale: è in tale contesto che possono venir fatti coincidere schemi distinti per rispondere ad interrogazioni elaborate di DRILL-ACROSS e valori calcolati che non dipendono direttamente da misure presenti nei fatti, ma da queste derivate, ecc…
Di seguito viene schematizzato il ciclo di sviluppo di un DWH:
- definizione Obiettivi e Pianificazione: definizione degli scopi, definizione dei limiti e stima delle dimensioni, scelta dell’approccio per la costruzione, stima del valore aggiunto;
- progettazione della infrastruttura: scelta degli strumenti, delle tecnologie, analisi delle soluzioni architetturali, risoluzione dei problemi di gestione;
- progettazione e sviluppo delle applicazioni: fase iterativa durante la quale si aggiungono data mart (insiemi di fatti specifici) e applicazioni al DWH.
La metodologia di progetto di un DWH si articola nelle seguenti fasi:
- analisi delle fonti dati;
- analisi dei requisiti;
- progettazione concettuale;
- raffinamento del carico di lavoro e validazione dello schema concettuale;
- progettazione logica;
- progettazione fisica;
- definizione del processo di estrazione dati.
Analisi delle fonti dati: l’obiettivo di questa fase è la raccolta della documentazione sui sistemi informativi operazionali preesistenti, E’ necessario identificare fonti che contengano dati
- validi;
- consistenti;
- su supporti accessibili;
- disponibili anche nel futuro.
I dati memorizzati nei vari sistemi informativi risultano spesso incompleti e insufficienti per le esigenze poste dagli utenti del DW, l’analisi dei dati può comportare quindi la necessità di ridefinire gli obiettivi.
Questa analisi produce: gli schemi concettuali o logici di parti dei sistemi informativi preesistenti.
Analisi dei requisiti: in questa fase il progettista raccoglie e filtra i requisiti degli utenti, l’obiettivo è quello di delineare quali sono le informazioni di interesse. Alcuni fattori critici sono:
- la scelta del livello di sintesi delle informazioni;
- l’intervallo di storicizzazione dei dati;
- l’individuazione dei tipi di analisi da effettuare.
Questa analisi produce: le specifiche sulla scelta dei fatti da gestire, le indicazioni preliminari sui carichi di lavoro.
Raffinamento del carico di lavoro e progettazione concettuale: in questa fase viene prodotto uno schema concettuale dei fatti curati a partire dalle specifiche preliminari raccolte. Via via le specifiche preliminari vengono arricchite da ulteriori dettagli sino ad arrivare ad uno schema concettuale soddisfacente e ad una definizione del carico di lavoro esaustivamente dettagliato.
Questa analisi produce: gli schemi concettuali del DW e i carichi di lavoro intesi come macro famiglie di interrogazioni e frequenze d’uso di tali interrogazioni.
Progettazione fisica, logica e definizione del processo di estrazione dati: le fasi di progettazione logica e fisica permettono l’implementazione del progetto concettuale in un DWH reale attraverso la definizione di un disegno logico e fisico (in stretta analogia con quanto avviene per i sistemi OLTP implementati su tecnologia relazionale). Come ultima fase occorre tradurre le necessità di accesso ai dati degli utenti in efficienti procedure di accesso che ottimizzino le prestazioni.