giovedì 11 dicembre 2008

Volendo tirare le somme...

Oggi si chiude un percorso importante, importante perchè mi ha portato a comprendere, non solo una miriade di termini e strumenti statistici e informatici lontani dal mio back ground ma, anche e soprattutto, perchè mi ha dimostrato che comunicazione e informazione in senso tecnico non vadano visti come percorsi paralleli e antitetici ma come due facce di una stessa medaglia: due momenti di un unico percorso, quello che porta alla condivisione della conoscenza, la quale diventa, ad un livello ancora più alto, saggezza o saper fare di tutti i coloro che vi partecipano.
Si tratta di un percorso che mi ha insegnato che è necessario prendere consapevolezza della tecnologia che ci circonda al fine di essere sempre e comunque degli utilizzatori critici e che il ruolo del comunicatore è sicuramente un ruolo importante, ma che le sue doti, qualora egli voglia svolgere davvero bene il proprio lavoro, non si fermano all'Ars oratoria. Il comunicare fine a stesso non ha senso.

E' solo quando l'abilità e la tecnica si uniscono ad una ricchezza di contenuti, quando la forma si unisce con la sostanza, che si crea quel connubbio perfetto che porta all'eccellenza.

E' solamente quando le diverse nozioni che apprendiamo durante i diversi percorsi della vita, distillate dall'esperienza, acquistano un senso ulteriore, quasi circolare, che ne prendiamo una reale consapevolezza. Così dall'unità, passando per la molteplicità, arriviamo ad una perfetta sintesi che, altro non è che, piena consapevolezza della coesistenza dei momenti appena trascorsi. Ed in questo processo triadico, hegelianamente parlando, prendiamo via via coscienza di noi e del nostro intorno, acquisendo saggezza, ovvero saper fare, saper vivere.
Proprio per questo vorrei chiudere questo percorso con una immagine che ha aperto questo blog ed ha silenziosamente accompagnato anche tutti i post che via via lo hanno popolato, essendone un postulato fondamentale. Si tratta di una rappresentazione biblica dell'Albero della conoscenza del bene e del male. Questo albero può essere visto come una rappresentazione allegorica di quella che circa duemila anni dopo verrà concettualizzata dal Knowledge Management come Piramide della conoscenza: solo da piccolissimi e selezionati ramoscelli, posti in cima, o meglio all'estremità, di un articolato sistema di circolazione di linfa vitale nascono i frutti. Ed il frutto, dal latino fructus, è proprio ciò che viene goduto di una cosa, qualsiasi rendita o profitto, premio o remunerazione, il giovamento che prova chi raggiunge la cima, la saggezza.


Questo è proprio l'augurio che faccio a tutti i coloro che si troveranno a diverso titolo a "navigare" per questa terra di passaggio, ovvero questo piccolo blog nato per caso: raggiungere la saggezza.

Formalizzazione dei concetti statistici di base

Come precedentemente specificato, il processo che all'interno di un'organizzazione porta alla creazione e condivisione di conoscenza è complesso e delicato, e chi vi ha a che fare deve necessariamente avere, a prescindere dal ruolo che ricopre, una certa dimistichezza, oltre che con termini e strumenti informatici, con quelli che sono concetti e strumenti statistici di base.
Ecco che una seppur sommaria formalizzazione di concetti statistici di base, già ampiamente utilizzati in questo blog, potrà tornare utile.

Carattere o variabile. Per carattere si intende qualsiasi fenomeno (o particolare aspetto di un fenomeno) che ha rilevanza nell'ambito di un particolare obiettivo. Le modalità del carattere sono, invece, i diversi modi con i quali il carattere può manifestarsi sulle varie unità statistiche. Le diverse possibilità di rappresentare le modalità dei caratteri portano alla seguente classificazione:
  1. caratteri misurabili su scala nominale qualora non esista un ordine naturale (es. tipo azienda o stato civile);
  2. caratteri misurabili su scala ordinale laddove esista un ordine in senso naturale o meno (titolo di studio, grado in un organizzazione di tipo gerarchico);
  3. caratteri misurabili su scala ad intevalli quando le modalità sono esprimibili con numeri che hanno il significato di una vera e propria misura, nella scala di misura utililzzata si può però scegliere l'origine in modo arbitrario (es. le temperature);
  4. caratteri misurabili su scala di rapporto quando le unità sono esprimibili con numeri che hanno l'ordinario significato di misura però l'origine delle misure è unica e non fissata in modo arbitrario (es. statura, reddito).
La natura dei caratteri ha implicazioni molto importanti sui metodi utilizzabili per l’elaborazione degli stessi.

Classificazione. In statistica è identificabile come l’ operazione che che permette di passare dalle proprietà alle variabili. In questo caso le categorie nelle quali vengono classificati gli stati della proprietà studiata devono rispettare tre condizioni:
  • esaustività: ogni caso deve cioè essere collocato in una delle categorie previste;
  • mutua esclusività: un caso non può essere classificato in più di una categoria;
  • unicità del fundamentum divisionis: per cui il principio che regola la scelta delle categorie deve essere quello della unidimensionalità.

Dimensioni. Numero dei parametri in base ai quali si determinano gli elementi di un insieme.

Funzioni di aggregazione. Identificano quelle funzioni che elaborano un insieme di righe ma restituiscono sempre un risultato.

Matrice dei dati. Per poter analizzare i dati con tecniche statistiche è necessario che questi vengano organizzati in base ad uno schema di classificazione comune. A tal scopo si ricorre appunto ad una matrice rettangolare di numeri, la cosiddetta matrice "Casi per Variabili" (C x V), in cui in riga sono presenti i casi, in colonna le variabili ed in ogni cella (incrocio tra riga e colonna) un dato, ossia il valore assunto da una variabile su di un particolare caso

Unità statistica.Unità elementare della popolazione statistica. Si tratta di ogni ente portatore del carattere (o dei caratteri) che può avere rilevanza nell'ambito di uno specifico obiettivo di ricerca. Può trattarsi di una persona fisica, di una persona giuridica (l'impresa), di un'istituzione (un istituto scolastico), di un evento (un matrimonio, una nevicata), ecc.. Si possono individuare vari tipi di unità statistiche: in relazione alla completezza della rilevazione, si hanno unità campionarie e unità della popolazione, in relazione alla fase dell'indagine, si hanno unità di campionamento, unità di rilevazione, unità d'informazione, unità di analisi, unità di tabulazione etc..

giovedì 4 dicembre 2008

Elementi teorici e strutturali del report

Il report, come già specificato in altri post, è un documento agile e sintetico focalizzato su quelli che sono i dati di interesse per il soggetto, o i soggetti, cui è rivolto. Proprio la sua vocazione sintetica e focalizzata obbliga i sistemi di reportistica, software creati per generare simili documenti, ad effettuare una selezione e magari anche ricombinazione di quella mole enorme di dati che un'organizzazione si trova a vario titolo a collezionare.


Per tali ragioni gli elementi che caratterizzano fortemente un report sono:

- Le matrici di dati. Rispetto ad una semplice tabella il report si contraddistingue per il fatto di essere un'aggregazione (join) di più tabelle e, dunque, un composto di dati in forma aggregata.
- Dimensioni. I report nelle loro particolari elaborazioni dei dati selezionati ed estratti dai DB finiscono col mostrare una particolare dimensione del cubo multidimensionale dei dati, ovvero una particolare vista o sezione tra le tante che possono essere estratte da un magazzino veramente grande ed eterogeneo di dati;
- Misure. Eleborazioni calcolate su unità statistiche che soddisfino la condizione di possedere una certa combinazione di modalità;
- Aggregazioni di valori, contenuti in una o più abelle attraverso delle funzioni predefinite dette appunto funzioni di aggregazione. Quest'ultime, veri e propri operatori (+, -, *, /, <, >,..), eseguono un calcolo su un insieme di valori restituendo un valore singolo e si applicano all'istruzione SQL "SELECT" con la quale possiamo appunto creare delle interrogazioni al DB di nostro interesse dette query.

martedì 2 dicembre 2008

Creazione di un Data Source con Data Time

1. Le regole per l'estrazione dei dati

Nella creazione del nostro report, un passo davvero importante è la definizione delle regole di estrazione dei dati a partire dai quali metteremo in rilievo una particolare vista del cubo multidimensionale.
Se, infatti, pensiamo anche solo un attimo al fatto che il nostro DataWarehouse è un'architettura davvero complessa e che si configura come un magazzino di dati davvero eterogenei possiamo capire la reale importanza della scelta di mettere in rilievo una dimensione piuttosto che un'altra dei dati.


A questo proposito DataTime mette a disposizione dell'utente due opzioni:

- una che potremmo definire "QIUCK", nella quale sarà il software che automaticamente definirà delle regole molto generali (di ETL ovviamente) di estrazione per il passaggio dei dati direttamente dalla tabella al report, premendo un semplice pulsante "Quick Report" con il mouse.
Si tratta di un approccio semplificato, utile per utenti non troppo esperti ma soprattutto quando il report viene realizzato a partire da un DB semplice. Nel caso di un DW complesso, invece, un simile approccio risulterebbe di certo molto riduttivo non permettendo di cogliere appieno la multidimensionalità di dati attraverso i più svariati Slice&Dice.

- nell'altra opzione, che potremmo definire "NON QUICK", sarà direttamente l'utente, attraverso la creazione di uno o più DataSource, a definire viste potenzialmente infinite di dati. Questo è l'approccio che meglio valorizza la multidimensionalità di un DataWarehouse nella resa di un report, dal momento che sarà possibile creare nel report tanti DataGrid, che pescano i dati dai differenti DataSource che abbiamo scelto di impostare, quante sono le differenti sezioni del cubo multidimensionale dei nostri dati che decidiamo di mettere in evidenza.



2. Come creare un Data Source

Creare un Data Source è molto semplice. Dopo aver creato e salvato col nome un nuovo progetto attraverso il tasto "New Project", clicchiamo su "Open Project". Si aprirà così una nuova finestra dalla quale sarà possibile, dopo aver creato la connessione col DBMS di nostro interesse (attraverso il tasto "New Connection"), scegliere l'opzione "Quick Report" oppure optare per la creazione di un DataSource attraverso il tasto "New Data Source".
Ciò che si aprirà sarà una nuova schermata, "Data Source Designer", nella quale in cima vengono visualizzati i diversi step (7 per l'esattezza) da seguire per la creazione del Data source.

Il primo passo "Design" è sicuramente il più importante e consiste nel definire le tabelle dalle quali vogliamo estrarre i dati per creare la nostra particolare vista del cubo multidimensionale. Nel caso di più tabelle selezionate (join) sarà necessario specificare la relazione che le lega. E questo sarà possibile o manualmente, trascinando il mouse da un campo all'altro della relazione, oppure col tasto destro del mouse scegliendo la prima opzione della finestra a tenda che si apre "Map DBMS Relationships on Objects on Designer Panel" e che permette appunto di visualizzare quelle che sono le relazioni memorizzate nel DB. Ovviamente per i più esperti sarà possibile utilizzare direttamente la sintassi SQL.
Una volta selezionati i campi, provato e salvato il risultato, sarà possibile passare alle fasi successive.
Soprattutto merita rilievo la fase 6 "Manual Refine" nella quale sarà possibile definire nello specifico quelle che sono le rifiniture delle nostre tabelle e dei rispettivi grafici correlati.
Una volta creato il o i Data Source di nostro interesse sarà possibile dedicarsi alla creazione del report nello specifico, il quale conterrà tanti Data Grid, ovvero griglie di dati, che vanno a pescare le informazioni da quelli che sono i Data Source salvati.

lunedì 1 dicembre 2008

Reporting, Elementi stilistici e Charting con Data Time

Le soluzioni di reportistica fornite da DataTime si caratterizzano anche per la grande flessibilità e il forte impatto visivo dei suoi grafici 3D. Il sistema di rappresentazione grafica di DataTime è, infatti, oggi il più avanzato e potente sul mercato.

Il charting di DataTime dispone di un motore di rendering 3D che permette la massima flessibilità nel posizionamento e nella strutturazione dei grafici 3D. I grafici godono della massima flessibilità e modellabità, offrendo all'utente la possibilità di sezionarli e definirli a proprio piacimento. I chart sono collegati direttamente con i dati di riferimento e questo fa sì che i primi riflettano costantemente i secondi in quelle che sono le rigenerazioni drill dell'utente.
Datatime consente, inoltre, di creare cruscotti personalizzati, i cosiddetti "Dashboards", che superano i canonici strumenti della cruscottistica poichè permettono all'utente di creare personalmente i propri gauges. Ovviamente anche i cruscotti sono linkabili direttamente ai dati ai quali si riferiscono.

Più nello specifico...

Dalla finestra di "report composer" è possibile inserire: testi, immagini grafici e gauge con un elevato livello di personalizzazione.

  • I titoli possono essere creati attraverso la finestra "text box properties" che permette di personalizzarne elementi quali: dimensione testo, colore, carattere, allineamento, border style, ecc..

  • Lo sitle della tabella può essere modificato semplicemente con un click sul tasto destro del mouse e selezionando "grid styles". Si aprirà così una finestra "bulk style changes" dalla quale sarà possibile modificare il layout della nostra tabella attraverso il ricorso a stili predefiniti oppure sviluppandone di nuovi (tramite il tasto Bulk changes to styles).

  • DataTime da la possibilità di inserire nel nostro report una serie di immagini predefinite o personali. Anche in questo caso si tratterà di un'operazione davvero semplice: basterà cliccare sul tasto destro del mouse e selezionare nel menù a tendina "new image".

  • Potremo migliorare la comprensibilità del nostro report attraverso il ricorso a dei grafici che sarà possibile personalizzare in ogni aspetto. La schermata "Multichart designer", infatti, offre la possibilità di scegliere tra una serie di grafici bi e tridimensionali dei quali poter modificare proprietà e colori.

  • Tra gli altri elementi stilistici offerti si distinguono i gauges (cruscotti). Si tratta di un oggetto molto simile ad un grafico, ma che si differenzia da quest’ultimo per il fatto di rappresentare i valori delle singole celle (anche appartenenti a diversi ReportGrids). Anche qui le possibilità di scelta e personalizzazione sono molte. Per apportare delle modifiche sarà solamente necessario cliccare sul menù "Multigauge Designer".

Introduzione a Data Time Reporting System: un semplice report

Data Time Reporting Solution è la soluzione di reportistica open source più moderna e potente attualmente sul mercato. Esso si caratterizza per:

- Una connettività universale verso i DB. Basato, infatti, sul protocollo OleDB Data Time è in grado di connettersi a qualsiasi DBMS. Qusto significa connettiità verso Oracle, SQL Server, Access, Sybase, DB2, MySQL, ecc., ma anche fogli Excell e file di testo delimitato.

- Il sistema di reportistica più flessibile attualmente sul mercato. E' possibile creare qualunque tipo di layout con possibilità pressochè illimitate di Slice & Dice del cubo multidimensionale dei dati. E' possibile quindi realizzare:
  • Sezioni verticali e orizzontali;
  • Interruzioni orizzontali e verticali;
  • Totali su livelli multipli;
  • Drill down/Roll up sul qualsiasi livello.
I report creati sono ad alto impatto visivo dal momento che tutti gli elementi stilistici e grafici possono essere controllati dall'utente. E' inoltre possibile pubblicare i report su Web mediante due possibili architetture: Updatable, per i report destinati alla sola consultazione; e Interactive per quelli nei quali è consentito all'utente di interagire. I report web di DataTime sono altamente conformi alle specifiche del W3C e compatibili con tutti i tipi di browser.
I report sono anche esportabili su Excell e rendibili in file PDF o pagine HTML.

- Modalità di impostare le regole di estrazione dei dati customer oriented. Il motore ETL di DataTime rende, infatti, possibile scegliere tra:
  • un approccio QUICK, nel quale è lo stesso programma che si fa carico di impostare delle regole basilari per il passaggio dalla tabella dati al report;
  • un approccio NON QUICK nel quale attraverso la creazione di DataSource sarà proprio l'utente a definire nello specifico le regole di estrazione dei dati. Questo approccio consente davvero una grande flessibilità, rendendo possibile impostare un report con tanti DataGrid che pescano i dati dai più svariati DataSource.
Il potere di questo software sta proprio nella semplicità con la quale trasforma le nostre richieste ed esigenze, formulate con semplici movimenti del mouse, in articolato linguaggio SQL.

- Task di caricamento. Data Time consente di integrare DBMS eterogenei verso un DataWarehouse target.

- Schedulazione settimanale e ad eventi. Sia i report che i task di caricamento sono schedulabili ed oltre alla possibilità di realizzare la schedulazione settimanale è possibile impostare anche una schedulazione ad eventi. E' infatti possibile ad esempio far partire un determinato task caricando un certo file in una certa directory.

- Il sistema di Charting, ovvero di rappresentazione grafica, è molto potente. Esso integra un motore di rendering 3D (intendendo con rending la resa di un'imagine tridimensionale a partire dalla sua descrizione matematica attraverso algoritmi che ne definiscono il colore di ogni punto dell'immagine, la geometria, il punto di vista, l'illuminazione o le caratteristiche ottiche delle superfici) con controller a quaternioni per garantire la massima flessibilità dei grafici, i quali possono essere sezionati o riclorati a piacimento. I chart, inoltre, sono direttamente collegatai ai dati e li riflettono in maniaera costante attraverso le rigenerazioni e i drill dell'utente.

I principali tool software di query reporting: B.O., Microstrategy, Data Time

Con il termine Business Intelligence (BI), termine coniato nel 1958 da Hans Peter Luhn, ricercatore e inventore tedesco impiegato dell'IBM, ci si può solitamente riferire:

1. al PROCESSO, ovvero a un insieme di processi aziendali per raccogliere ed analizzare informazioni strategiche per le organizzazioni al fine di conseguire un vantaggio competitivo. Generalmente queste informazioni vengono raccolte per scopi direzionali interni e per il controllo di gestione, opportunamente elaborate e utilizzate per supportare concretamente, sulla base di dati attuali, le decisioni di chi occupa ruoli direzionali.

2. alla TECNOLOGIA utilizzata per realizzare questi processi. Infatti, i dati generati dai sistemi più svariati (produzione, contabilità, R&S, CRM,...) vengono archiviati in particolari DB chiamati DataWareHouse, che conservano le qualità informative. Le persone coinvolte nei processi di business intelligence sono pertanto tenute ad utilizzare applicazioni software ed altre tecnologie per RACCOGLIRE, IMMAGAZZINARE, ANALIZZARE e DISTRIBUIRE le INFORMAZIONI.

3. al RISULTATO, cioè le informazioni ottenute come prodotto di questi processi.




Tra i sistemi di REPORTISTICA più diffusi in tale ambito meritano particolare attenzione:

-Business Objects. Con circa 3.000 aziende partner in tutto il mondo e 46.000 clienti in più di 80 paesi, fondata nel 1990, è il principale fornitore mondiale di soluzioni per la BI. Essa consente alle organizzazioni di tracciare, comprendere e gestire le prestazioni aziendali, per ottenere una visione completa del proprio business, migliorare il processo decisionale e ottimizzare le prestazioni. Tutto ciò attraverso fondamentali strumenti:
  • il reporting
  • la gestione di dashboard e scorecard
  • le applicazioni per la customer intelligence
  • il reporting finanziario e le extranet rivolte sia a clienti che a partner.

Tutte queste soluzioni consentono alle aziende di ottenere visibilità sul proprio business, acquisire e mantenere relazioni profittevoli con i clienti, ridurre i costi, ottimizzare la supply chain, incrementare la produttività e migliorare le prestazioni finanziarie.


- Microstrategy. Si tratta di una società che offre soluzioni di Business Intelligence sin dal 1989, fornendo una gamma ineguagliabile di funzionalità di Monitoraggio, Reporting e Analisi tutte in una sola architettura software. Tre sono a tal proposito le parole chiave che rappresentano la mission della società: CONTROLLO, REPORT, ANALISI. Infatti, attraverso il software Microstrategy è possibile realizzare:
  1. Un controllo delle prestazioni in tempo reale, fornendo agli utenti aziendali una tecnologia che permette un monitoraggio costante delle metriche per informare e allertare i responsabili di business circa le attività in corso e le decisioni da prendere sulla base di parametri prestabiliti;
  2. Informazioni dettagliate per le decisioni operative, permettendo di ricavare informazioni preziose sulle performance passate e presenti, in modo da rilevare cosa accade nell'impresa e come procede il business. E tutto ciò attraverso una tecnologia avanzata di reporting, che consente un utilizzo davvero intuitivo da parte dell'utente, la possibilità di operare via Web e una grande scalabilità.
  3. Anali dei dati per scoprire trend significativi nelle performance aziendali, consentendo di vedere le informazioni aziendali da molte angolazioni differenti. In questo modo i manager potranno evidenziare con maggiore facilità le cause di problemi nelle performance, scoprire nuove opportunità di business e prevedere i risultati dell'azienda.

- Cognos. Si tratta di un'azienda, fondata nel 1969 e dal 2007 parte del gruppo IBM, leader a livello mondiale nel campo della Business Intelligence (BI) e del Performance Management. Essa fornisce soluzioni per migliorare le performance aziendali a tutti i livelli organizzativi (gestione delle relazioni con i clienti, analisi di vendita, controllo di gestione, pianificazione e reporting, analisi multidimensionale, applicazioni analitiche, ecc.) e le sue soluzioni sono state implementate da oltre 23.000 clienti in più di 135 Paesi.
Con il software e le soluzioni fornite da Cognos è possibile rispondere alle domande aziendali essenziali tipiche del Performance Management, ovvero: Come stiamo procedendo?, Perché? e Come dovremmo agire?
Rispondere alle suddette domande per Cognos diveta possibile offrendo:
  1. il prezioso supporto di scorecard e dashboard per monitorare le performance aziendali con sistemi di valutazione appropriati;
  2. strumenti di reporting e di analisi mirati per esaminare i dati, contestualizzarli per una panoramica più completa, approfondire e valutare le tendenze e identificare eventuali anomalie.
  3. strumenti per applicare un'accorta strategia di budgeting, pianificazione e previsione per definire e condividere una visione affidabile del futuro.

- Data Time Reporting Solution. E' un software open source diretto competitors di quelli appena sopra elencati. Si tratta della soluzione di reportistica più moderna e potente attualmente disponibile sul mercato. Gode di una notevole flessibilità, consentendo di creare Report con qualsiasi tipo di Layout (verticale, orizzontale, cross e misto), con possibilità pressoché illimitate di Slice and Dice del cubo multidimensionale dei dati. Esso riesce a creare report ad alto impatto visisvo, dove l'utente è davvero in grado di controllare tutti gli elementi grafici e stilistici ed inoltre un efficace sistema di formattazione consente di creare Alerts complessi e basati su codice utente per qualsiasi tipo di evento.

Tutti i software di query reporting sopraelencati sono sostanzialmente equivalenti nelle funzioni che mettono a disposizione dell'utente. Tutti infatti consentono flessibilità su 3 livelli operativi fondamentali:
  1. Connettività universale verso i database: ovvero la possibilità di creare report a partire da qualsiasi DBMS utilizzato per la creazione dei DB.
  2. Regole di estrazione: cioè la possibilità di creare con semplici movimenti del mouse le proprie regole generali di ETL per l'estrazione dei dati.
  3. Layout del report: overo la possibilità di impostare delle regole generali di organizzazione del layout che rimangonomemorizzate facendo sì che il report possa ripristinarsi automaticamente con l'immissione dei dati più aggiornati.

sabato 29 novembre 2008

Scopo dei software di query reporting: i prodotti software più diffusi e i più semplici da usare

I sistemi di Query reporting rappresentano una parte importante dei Sistemi Informativi aziendali e costituiscono la base di un'ampia strategia di Business Intelligence(BI), la quale viene definita dalla letteratura come il processo di trasformazione di dati e informazioni in conoscenza. Questi, infatti, forniscono le informazioni più richieste in modo affidabile e sicuro, tramite il Web o incorporandole nelle applicazioni aziendali e sono inscindibilmente legati allo sviluppo dell'informatica.


Lo scopo fondamentale di un Sistema di Reportistica all’interno dei Sistemi Informativi è generalmente quello di fornire della documentazione analitica su quelle che sono attività di rilievo nell’organizzazione al fine di semplificare il processo decisionale sia a livello di singoli dipendenti che a livello del management. Questa base informativa deve pertanto essere la più aggiornata e rappresentativa, risultato di un'univoca prassi organizzativa e pertanto non suscettibile di incongruenze interpretative.

Più nello specifico, i Sistemi di Reportistica vengono sviluppati in ambiti organizzativi altamente complessi che hanno magari già optato per una soluzione di DataWarehouse. Infatti, un processo di Datawarehousing ha proprio tra le sue finalità principali que
lla di implementare un contesto informativo hardware-software capace di rispondere in maniera tempestiva all'evoluzione continua di un contesto organizzativo che deve tenersi al passo con le veloci turbolenze dell'ambiente circostante.

Sviluppando adeguatamente tali sistemi è possibile conseguire:
- Coerenza e consolidamento dei dati (riuscire cioè a raggruppare in maniera coerente dati eterogenei perchè provenienti da varie origini);
- Velocità di accesso alle informazioni,

- Supporto per l’analisi dei dati.

La quantità di dati che oggi un'organizzazione riesce ed ha interesse a conservare cresce in maniera esponenziale di anno in anno. E col crescere dei dati accumulati crescono anche i vantaggi di un'elaborazione veloce e centralizzata dei singoli documenti di reportis
tica: la particolare configurazione hardware delle postazioni su cui vengono fisicamente ospitate le risorse del sistema permette un'ottimizzazione delle richieste al sistema stesso e ne diminuisce il carico di attività rispetto alla situazione in cui singoli utenti ricercano informazioni sul sistema individualmente. Risulta, dunque, possibile creare veri e propri portali aziendali per la pubblicazione di dati di business accedendo direttamete alle fonti aziendali, in tempi brevissimi e costi contenuti. Grazie a questo i dipendenti di un’azienda possono visionare in maniera sicura i dati estraendoli dalle diverse applicazioni, possono eseguire query, creare report, condividere le informazioni sulla Rete.

La standardizzazione dei documenti consente inoltre una migliore distribuzione strategica delle conoscenza critica (know-how) per tutta l'organizzazione ed una visione dell'attività più conforme e aggioranta fra le varie e diverse funzioni della stessa.
Un documento, infatti, una volta elaborato e generato viene validato dalle strutture
preposte e distribuito. Esso viene, inoltre, aggiornato con cadenza periodica per i membri dell’organizzazione che ne diventano i fruitori.

Tra i prodotti di Query Reporting più diffusi e semplici da usare toviamo:
- BusinessObjects Desktop Intelligence, particolarmente utile per coloro che hanno bisogno di fare analisi ed eseguire query per creare report personalizzati;
- BusinessObjects Web Intelligence, consente di poter usufruire in maniera semplice dei dati già memorizzati sia per fare degli studi che per prendere decisioni più consapevoli, oppure di realizzare nuove query in base a esigenze specifiche.
- Sap Query Reporting, consente ai dipendenti di esplorare i dati aziendali attraverso percorsi altamente individuali, riuscendo a garantire un'accesso protetto alle informazioni SAP e non SAP, sia strutturate che non. I risultati della ricerca e le misure consigliate riflettono il ruolo di un dipendente nell'azienda e soddisfano il contesto aziendale della query.

venerdì 28 novembre 2008

Funzione dell'ETL e i principali tool software di ETL

1. Una breve definizione


L’espressione ETL, sigla composta delle parole inglesi Extract, Transform, Load, si riferisce al processo di estrazione, trasformazione e caricamento dei dati in un sistema di sintesi come ad esempio un DW o un Data Mart. Più nello specifico:





EXTRACT perché i dati vengono estratti da sistemi sorgenti quali database transazionali, comuni file di testo o da altri sistemi informatici (si pensi ai diffusi sistemi di CRM).


TRANSFORM perché, una volta estratti, i dati subiscono un processo di trasformazione che consiste nella selezione, normalizzazione, codifica e accoppiamento di quei dati che realmente interessano al sistema. Tutto ciò con lo scopo di consolidare i dati, ovvero di far divenire omogenei quelli che sono dati provenienti da sorgenti diverse, e di fare in modo che questi risultino anche più conformi alla logica di business del sistema di analisi sviluppato.


LOAD perché i dati, consolidati rispetto alle logiche di business, vengono infine memorizzati nelle tabelle del sistema di sintesi.


Dunque per ETL si intende lo strumento, o l’insieme di strumenti, con il quale è possibile sviluppare una particolare architettura di alimentazione tra dati reperibili a diversi livelli di un’azienda. Tali dati, riprendendo il concetto di Piramide della Conoscenza elaborata dal Knowledge Management e descritta nei precedenti post, senza questa rielaborazione rimarrebbero bloccati al livello di semplici dati o al massimo potrebbero assurgere al rango di mera informazione, perdendo però l’opportunità di divenire conoscenza critica e competitiva a vantaggio di tutta l’azienda. Una tale architettura a rigore, però, potrebbe anche essere implementata con strumenti standard. Ma allora...



2. ...Perché investire in strumenti di ETL?


Valorizzare il Know-How interno, quello che è il saper fare che caratterizza significativamente un'organizzazione, significa gestire la complessità dell’ambiente esterno ponendosi in maniera proattiva. Le aziende, che intendono far ciò oggi, infatti, si trovano a dover fronteggiare diverse sfide tra le quali: volumi di dati che crescono in maniera esponenziale; un'aumentata disparità delle sorgenti, determinata dall'aumento della complessità dei sistemi informatici; trasformazioni di dati che diventano sempre più complesse; la necessità di realizzare un sistema di business intelligence che tenda al real-time anche per quei procedimenti che solitamente necessitano maggiori tempi di caricamento e analisi(DataWarehose e Data Mart).



Più nello specifico i vantaggi degli strumenti di ETL risiedono nelle caratteristiche di una tecnologia che si caratterizza per:


- interfaccia grafica: gli strumenti di ETL sono pensati per persone che hanno esperienza con le basi di dati, pur non essendo necessariamente dei programmatori: sono stati, infatti, implementati per rendere più semplice e visuale lo sviluppo di trasformazioni complesse sui dati;

- manutenibilità: la semplicità e visualità evidenziate nel punto precedente consentono chiaramente non solo una più facile realizzazione di progetti, ma anche e soprattutto una loro manutenzione molto più rapida e immediata, evitando i lunghi periodi di analisi spesso necessari per comprendere gli impatti di una modifica al codice, anche se di lieve entità;

- analisi degli impatti: molti degli strumenti presenti sul mercato mettono a disposizione diverse interfacce per l'analisi delle trasformazioni già realizzate che consentono di comprendere con pochi click quali passaggi della trasformazione usino determinate informazioni, e dove si propaghino a cascata eventuali modifiche in corso di realizzazione;

- integrazione con gli strumenti di reporting: alcuni vendor di ETL propongono all’interno del loro catalogo anche strumenti di analisi dei dati e reportistica; in questi casi si può sfruttare una tale integrazione fra strumenti per visualizzare graficamente quali report siano impattati da una modifica al sistema gestionale o viceversa;

- auto-documentazione: gli strumenti di ETL offrono tipicamente molte opzioni tramite le quali commentare le trasformazioni sviluppate a diversi livelli di dettaglio; tutte queste informazioni qualitative vengono poi messe a disposizione dell'utente tramite apposite interfacce che costruiscono della documentazione tecnica automaticamente generata. Ciò consente di documentare i diversi passi che trasformano i dati aziendali in preziose informazioni per il management ma anche e soprattutto di avere la sicurezza di una documentazione sempre aggiornata;

- indipendenza dalla base dati: gli ETL consentono di far dialogare basi di dati eterogenee in modo completamente trasparente. Ecco che da un'unica interfaccia, con un unico software visuale, si riesce a far realmente dialogare le diverse fonti informative dislocate nell'azienda, integrando e consolidando il patrimonio informativo dell'azienda;

- ambiente di debug: gli strumenti di ETL forniscono un ambiente di debug, in cui cioè è possibile testare le operazioni eseguite, verificando step by step se le trasformazioni effettuate sono effettivamente efficaci nella comprensione di qualsiasi problematica;

- schedulatore e monitor interni: ogni prodotto viene tipicamente fornito con uno schedulatore interno e con un relativo strumento di monitoraggio che consentono in modo del tutto integrato di gestire la pianificazione e la verifica dei caricamenti.


Le caratteristiche fin qui evidenziate permettono facilmente di capire come in molte realtà aziendali l'acquisto di un prodotto di questo genere sia velocemente ammortizzabile tramite un aumento di efficienza ed efficacia dell'ufficio IT, naturalmente una volta che sia trascorso un seppur breve periodo di apprendimento.


Questa tipologia di strumenti viene spesso introdotta all’interno delle aziende in occasione di grandi progetti di Business Intelligence, spesso di DataWarehouse. Questo perché le loro potenzialità li rendono uno strumento ottimo per la realizzazione di questi sistemi.

Per sfruttare appieno l'investimento, però, questi strumenti devono essere considerati come: non un mero "programma per caricare il DataWarehouse", bensì lo strumento tramite cui far passare le grandi movimentazioni di informazioni sempre più presenti all'interno delle aziende.

In quest'ottica l'ETL non è più solo un software che velocizza il lavoro dell'ufficio IT, ma diventa parte integrante della Business Intelligence aziendale, facendo sì che venga reso esplicito del know-how spesso isolato all'interno di poche persone, conoscenza questa difficilmente documentabile e tramandabile senza degli strumenti adeguati a causa del suo evolversi spesso frammentato e sedimentato negli anni.



3. I principali tool software ETL


I principali tool software di ETL presenti sul mercato sono:


- SmartDB Workbench
- DataStudio
- Integrator
- Informatica PowerCenter
- Datastage IBM
- SSIS Microsoft
- I-service IngeniumTechnology
- Scriptella ETL
- Benetl
- Oracle Data Integration Suite
- Kettle Pentaho Data Integration.

Creatori e fruitori di contenuti web: vantaggi e svantaggi del software per la distribuzione dell'informazione sul Web

Nell' Era dell'User Generated Content (UGC), nella quale chiunque può esprimere il proprio parere su scala planetaria (o quasi), popolando il Web di contenuti personalissimi (attraverso miriadi di applicazioni che gli consentono di muoversi nel mondo ostico dei protocolli e dei linguaggi specifici pur senza nessuna conoscenza settoriale), si parla sempre più di democratizzazione della Rete o dell'Informazione.


Ma è tutto oro quel che luccica?

In realtà una simile "rivoluzione copernicana", prorpio per la sua vasta portata, implica delle più critiche riflessioni in merito, poichè tanti sono i vantaggi ma molti possono essere anche gli svantaggi di un utilizzo acritico di uno strumento così potente.

Infatti, da un lato, oggi Web (nella sua accezione di Web 2.0) significa vantaggio per creatori e fruitori divenendo sinonimo di: maggiore circolazione di informazione, facilità di accesso e creazione di contenuti, possibilità di interazione e confronto potenzialmente senza confini. Si parla a tal proposito di democratizzazione del sistema dal momento che non vi è più un autore preferenziale che stabilisce e seleziona quali contenuti andranno fruiti e in quale maniera o ordine, ma ciascuno che può pubblicare proprie idee e ricerche e confrontarsi magari con esperti che replicheranno a prescindere dal consenso che il contenuto dei loro discorsi potrebbe avere. Si rompe il monopolio dei tradizionali organi di informazione. Ma si fa anche avanti, esaltata dalla natura particolarissima dell'Ipertesto, una nuova, perchè prima sottovalutata, tipologia di apprendimento non più sistematico, legato ad un rigido ordine logico-consequenziale tra i concetti, bensì "costruttivista", tipico di un soggetto che costruisce attivamente la propria conoscenza dando sfogo alla propria creatività.
E persino i tradizionali creatori di informazione trovano un loro vantaggio, poichè se da una parte perdono almeno parzialmente il monopolio nella scelta dei contenuti da diffondere, dall'altra guadagnano la possibilità di fornire contenuti in tempo reale, essere sempre aggiornati e raggiungere un pubblico assai diverso dal loro bacino d'utenza, amplificando in maniera notevole la propria diffusione.

Tuttavia, dall'altro lato, in questo paradiso ritrovato è possibile cogliere delle anomalie, dei risvolti negativi. Infatti, il moltiplicarsi più che esponenziale delle informazioni e delle fonti può trasformarsi in rumore che finisce col disorientare l'utente. Al di là di una estrema e aumentata complessità, con la quale il navigatore medio deve imparare a convivere, diventa sempre più difficile controllare la veridicità della fonte e sempre più spesso ci si può imbattere in dati falsati, come può capitare anche che delle "bufale" si diffondano come virus su tutto il globo nel semplice tempo di un click.
Inoltre, le logiche di mercato che comunque stanno dietro l'ingegneria dei motori di ricerca fanno sì che non si possa proprio parlare di pari opportunità nella probabilità di diffusione dei contenuti informativi. Non che si possa parlare, invece, di vera e propria censura (almeno non in Italia, credo!?!) ma sicuramente di squilibrio.
Infine, l'informazione non viene ancora fruita da tutti nello stesso modo e con l'espressione digital divide si intende proprio il divario esistente oggi tra chi può accedere alle nuove tecnologie e chi invece no (vedere per approfondimentite il post precedente "A proposito di accessibilità: Il Web 2.0").

Quanto appena scritto non ha lo scopo di dipingere il Web come un mostro da evitare, quanto più che altro di mettere in guardia chiunque da una visione troppo semplicistica e riduttiva dei fenomeni. Qualsiasi potente tecnologia porta con sè vantaggi e svantaggi, possiede luci ed ombre, e ciò che noi possiamo fare per utilizzarla senza invece essere usati è imparare a gestirla in maniera critica, consapevole e responsabile.

giovedì 27 novembre 2008

Architettura dei sistem informativi aziendali: dai DBMS TRANSAZIONALI a quelli DIMENSIONALI

1. Introduzione

Come si potrà ben capire, non esiste un'architettura perfetta in assoluto, ma l'architettura perfetta sarà di volta in volta quella che permetterà di risolvere il problema preso in considerazione nella maniera più efficace e semplice possibile.
Tra le architetture che nel corso degli anni si sono avvicendate nel panorama dei database, tre sono le prevalenti: Single Tier, Two Tier, Three Tier. L'intera struttura è composta fondamentalmente dai dati presenti nel DB e dall'applicazione che a questi dati dovrà accedre. E' possibile pertanto dividere i servizi erogati in strati o livelli (detti lyer o tier):
- Presentation Tier: include tutti gli aspetti che riguardano l'interfaccia utente e come i dati dovranno essere presentati a livello di formattazione.
- Business Tier: strato conosciuto anche come l'insieme delle regole di business. Un esempio di regola potrebbe essere ad esempio il fatto che durante una transazione bancaria, magari un prelievo, il sistema si colleghi al server dei certificati digitali per convalidare l'identità di colui che sta effettuando la transazione.
- Data Tier: inerente a come i dati vengono fisicamente memorizzati e recuperati. In questa fase un problema importante sarà l'integrità dei dati.



2. Le Tipologie Architetturali sono principalmente:

- Il Single Tier: è il modello clessico dei sistemi mainframe degli anni '70-'80 (computer a quel tempo chiamati 'host'). Non viene effettuato nessun controllo nel terminale (non si può infatti parlare di 'client') e tutte le elaborazioni sono realizzate dalla macchina host a qualunque livello. Il terminale riceve solo le schermate contenente i dati da visualizzare e la possiblità di inserirne di nuovi. Si tratta di un'architettura che sta attualmente riprendendo vigore, anche se in una rielaborazione più ricca di contenuti. Il modello presenta, infatti, indubbi vantaggi: il traffico di rete è limitato, il sistema è altamente affidabile e l'aggiornamento del software è estremamente facile. Di contro, i costi sono molto elevati.
- Il Two Tier: anche detto client-server, è il modello che nacque quando il prezzo dei computer iniziò a scendere, consentendo di distribuire il più possibile tra i vari client il carico del lavoro svolto prima solo dal server. Infatti, l'accesso ai dati viene svolto esclusivamente dal server, mentre gli strati di presentazione e business vengono eseguiti localmente dai client, aumentando però il traffico di rete.
Con questo sistema a fronte di un carico di lavoro distribuito e una capacità di potenziare la velocità relativamente poco costosi si riscontrano alti costi di gestione.
- Il Three Tier: è il modello oggi più diffuso. L'idea di fondo è dividere tutti e tre gli strati dell'aplicazione in modelli logici separati. I client sono responsabili solo delle problematiche connesse con l'interfaccia utente e due server separati si occupano ripettivamente del livello di business e di quello dati.
Il sistema garantisce elevato livello di scalabilità e stabilità ed è facile da estendere e manutenere, ma le prestazioni possono degradarsi a causa del passaggio di informazioni tra i vari livelli separati, inoltre bisogna porre particolare attenzione alle problematiche inerenti la sicurezza.



3. Tipologia degli accessi ai DB

Solitamente ogni applicazione che opera all'interno di un DB aziendale necessita di memorizzare quotidianamente informazioni vitali per la crescita del business, provocando un aumento del DB con conseguente impatto negativo sulle prestazioni delle applicazioni stesse. Inoltre, all'interno di un'azienda spesso utenti differenti necessitano di dati differenti. E' possibile dividere queste tipologie di utenti in 2 categorie:
  1. Coloro che accedono giornalmente ai dati aggiungendo, cancellando, modificando o recuperando singoli record o gruppi di record già esistenti.
  2. Utenti che lavorano con grosse quantità di dati prelevati dal DB per generare stampe di riepilogo o calcolare statistiche utili al fine di delineare le strategie aziendali.
Questi utenti utilizzano differenti modalità di accesso ai dati chiamate rispettivamente OLTP e OLAP:

- OLTP (On-Line Transaction Processing). Come si evince dalla sigla, questi sistemi consentono l'esecuzione di transazioni, ovvero la possibilità di eseguire inserimenti, cancellazioni e aggiornamente all'internodelle tabelle del DB. Si tratta dunque di sistemi progettati per consentire a molti utenti di accedere in maniera concorrente agli stessi dati per eseguire le elaborazioni di cui hanno bisogno.
Le varie applicazioni accedono al DB per consultare piccole porzioni di dati effettuando le volute transazioni (aggiunte, modifiche o cancellazioni di dati) direttamente tramite il server o collegandosi in rete. Tipici sistemi OLTP sono quelli della banche o dei sistemi di prenotazione voli online (che sarà capitato a tutti di effettuare).
Gli obiettivi di un sistema OLTP sono fondamentalmente:
  • processare i dati coinvolti nelle transazioni;
  • assicurare l'integrità dei dati;
  • avere un alto grado di efficienza;
  • eliminare i dati ridondanti.


- OLAP (On-Line Analytical Processing). Gli OLAP rientrano nella categoria dei sistemi di supporto alle decisioni aziendali. Lo scopo di questi sistemi è analizzare grosse quantità di dati generando riepiloghi e aggregazioni tra gli stessi in svariate maniere per agevolare chi poi, all'interno dell'azienda, dovrà prendere le decisioni strategiche per lo sviluppo della stessa.
Tali sistemi non sottostanno alle regole classiche della teoria relazionale ma focalizzano l'attenzione quasi esclusivamente sulla veocità di recupero dei dati mediante interrogazioni (query) svolte in linguaggio SQL. Questi DB sono anche chiamati database dimensionali e sono composti da rappresentazioni multidimensionali dei dati, realizzate effettuando fotografie di informazioni (ad es. quelle di un DB relazionale), che ne facilitano l'analisi e migliorano le prestazioni delle interrogazioni. Le dimensioni di questi cubi di dati rappresentano le varie categorie dei dati presenti nell'azineda, come linee di prodotto, distribuzioni geografiche e temporali. A tal proposito un Data Mart è un raccoglitore di dati specializzato su un particolare soggetto, ovvero contenente un'immagine dei dati che permetta di formulare strategie sulla base degli andamenti passati. Normalmente si colloca a valle di un Data Warehouse (archivio informatico contenete i dati di un'organizzazione, realizzato proprio al fine di produrre facilmente relazioni ed analisi) più globale del quale ne è, appunto, un estratto.




4. ESEMPIO: Quale sistema scegliere?

Formuliamo l'ipotesi dover realizzare il sistema informativo per una banca...

1) Una banca durante il normale orario di apertura svolge le tradizionali operazioni di deposito, prelievo e trasferimento fondi; durante l'orario di chiusura, invece, i clienti della banca possono accedere al proprio conto tramite Bancomat, Web o ancora attraverso acquisti mediante carta di credito. Per rispondere a queste esigenze utilizzeremo certamente il sistema OLTP proprio al fine di consentire un accesso multiplo alla stessa base di dati a qualsiasi ora del giorno e della notte.
2) All'interno della stessa, però, banca non ci sono solo clienti e operatori di sportello ma anche altre figure, come per esempio il promotore finanziario, che si occupano degli sviluppi futuri. Qusti ultimi hanno bisogno, invece, di guardare i dati sotto un altro punto di vista, elaborando grandi quantità di dati anche in periodi lontani nel tempo. Se questi utilizzassero lo stesso sistema degli utenti precedenti si potrebbe verificare un degrado delle prestazioni. Se, infatti, si volesse sapere quali sono le operazioni svolte da un dato utente negli ultimi 12 mesi, si dovrebbe interrogare il DB e con molta probabilità le informazioni necessarie si troverebbero sparse in decine di tabelle per tutto il DB. L'interrogazione dovrebbe navigare in tutte queste tabelle scorrendone tutte le righe ed eseguendo magari calcoli per generare totali e subtotali. Tutto questo appesantirebbe ovviamente il sistema OLTP in maniera notevole, ralentando anche quegli utenti che stanno agendo suelle stesse tabelle e che nulla hanno a che fare con il cliente che l'operatore finanziario sta analizzando.
Per questa ragione sarà necessario costruire parallelamente un differente sistema basato su uno schema OLAP.
Se, infatti le prestazioni hanno un ruolo importante, si deve necessariamente separare anche fisicamente i due sistemi ponendo i dati su DB differenti e nei casi più estremi su server differenti.

DATAWAREHOUSE e sistemi OLTP

Un Data warehouse (o DW), termine che in inglese significa letteralmente magazzino di dati, è un archivio informatico contenente i dati di un'organizzazione.

L'imprenditore William H. Inmon, il padre riconosciuto del Data Warehousing, definisce il DW come una raccolta di dati integrata, orientata al soggetto, variabile nel tempo e non volatile di supporto ai processi decisionali.



Secondo Inmon, dunque, un DW deve essere una raccolta di dati:

- Integrata: requisito fondamentale di un DW poichè in esso confluiscono dati provenienti da più sistemi transazionali e da fonti esterne. L'obiettivo dell'integrazione può essere raggiunto tramite l'utilizzo di metodi di codifica uniformi, il perseguimento di una omogeneità semantica di tutte le variabili, l'utilizzo delle stesse unità di misura;

- Orientata al soggetto: il DW è orientato a temi aziendali specifici piuttosto che alle applicazioni o alle funzioni. In un DW i dati vengono archiviati in modo da essere facilmente letti o elaborati dagli utenti. L'obiettivo, quindi, non è più quello di minimizzare la ridondanza mediante la normalizzazione, ma quello di fornire dati organizzati in modo tale da favorire la produzione di informazioni. Si passa dalla progettazione per funzioni ad una modellazione dei dati che consenta una visione multidimensionale degli stessi;

- Variabile nel tempo: i dati archiviati all'interno di un DW coprono un orizzonte temporale molto più esteso rispetto a quelli archiviati in un sistema operativo. Nel DW sono, infatti, contenute una serie di informazioni che tentano di restituire un determinato fenomeno in un determinato intervallo temporale solitamente piuttosto esteso. Di conseguenza i dati saranno aggiornati ma solo fino ad un certo punto, diversamente da quanto si verifica in un sistema transazionale, nel quale i dati corrispondono sempre ad una situazione aggiornata, solitamente incapace di fornire un quadro storico del fenomeno analizzato;

- Non volatile: tale caratteristica indica la non modificabilità dei dati contenuti nel DW che consente accessi in sola lettura. Ne deriva una maggiore semplicità di progettazione del database rispetto a quella di un'applicazione transazionale. In tale contesto, infatti, non si considerano le possibili anomalie dovute agli aggiornamenti, né tanto meno si ricorre a strumenti complessi per gestire l'integrità referenziale o per bloccare record a cui possono accedere altri utenti in fase di aggiornamento.



Gli elementi costitutivi dell'architettura di un DW sono:


- I dati provenienti dai sistemi transazionali dell’azienda e non: tali dati possono essere contenuti all'interno dello stesso DB, provenire da diversi DB o essere anche esterni all'azienda. Spesso l'architettura di un data warehouse prevede l'integrazione dei dati interni con quelli esterni. L'utilizzo di questi ultimi consente di arricchire il patrimonio informativo.

- Il data movement: tale componente è responsabile dell'estrazione dei dati dai sistemi transazionali, dell'integrazione tra dati aziendali e dati esterni, del pre-processing dei dati, del controllo della consistenza dei dati, della conversione delle strutture dati, e dell'aggiornamento dei dizionari dei dati.

- Il data warehouse: i dati estratti dagli archivi transazionali vengono memorizzati internamente al data warehouse. Nel data warehouse l'accesso ai dati è consentito in sola lettura. Tali dati hanno una dimensione storica e sono riferiti a soggetti di business. Essi possono essere memorizzati in un archivio centrale o in un Data Mart, termine che identifica un DW di dimensioni ridotte, specializzato per una particolare area di attività. Si pensi, ad esempio, al Data Mart per il marketing in cui i dati filtrati dagli archivi transazionali sono memorizzati per consentire l'analisi della clientela. All'interno della banca dati possono quindi esistere più Data Mart, aventi finalità diverse e orientati a coprire diverse aree di business. I dati contenuti nel data warehouse possono essere aggregati e indicizzati per rispondere a specifiche necessità informative.

- I metadati: informazione aggiuntiva che arricchisce i dati contenuti nel data warehouse. Spesso essi vengono chiamati in gergo "data about data" indicando la provenienza, l'utilizzo, il valore o la funzione del dato.

- L'utente finale: i dati contenuti nel DW vengono presentati all'utente finale, il quale dispone di un insieme di strumenti per effettuare elaborazioni e produrre informazioni appropriate. I tools a disposizione dell'utente possono essere semplici generatori di query e report, interfacce grafiche che consentono la rappresentazione dei dati o sistemi di analisi dati più complessi.



Il DW è organizzato su quattro livelli architetturali:


1. Trasformazione dei dati: è il livello che si occupa di acquisire i dati e validarli;

2. Preparazione e "stoccaggio" dati: è il livello che fornisce i dati agli utenti e alle applicazioni analitiche;

3. Interpretazione e analisi dati: è il livello, ad elevato valore aggiunto, che presiede alla trasformazione dei dati in informazioni aventi valore strategico;

4. Presentazione dati: è il livello, a basso valore aggiunto, che presiede alla presentazione finale agli utenti delle informazioni e quindi delle risposte cercate.




I principali approcci per sviluppare un ambiente di DW sono:


L'approccio di DW centrale, creato usando dati dal sistema principale ed altre fonti, il quale può essere poi usato per creare/aggiornare DW dipartimentali o Data Mart locali. E’ possibile, dunque, iniziare con un DW semplice, ampliabile nel tempo per soddisfare utenti con richieste crescenti e diventare un ambiente che contenga sistemi di DW interconnessi.


L’approccio con Data Mart indipendenti ognuno memorizzato direttamente dal sistema centrale e altre fonti dei dati. La creazione di un solo Data Mart orientato a risolvere un particolare problema rappresenta una soluzione semplice. Poiché questo ambiente non contiene grandi volumi di data warehouse esso è più maneggevole. Nel caso si adotti una tale semplice soluzione il compito dell'amministratore sarebbe relativamente facile. Questo approccio, però, non si ferma di solito ad un Data Mart e, una volta che ne vengono aggiunti altri, la situazione diventa più complicata. Il compito di portare numerosi Data Mart separati in un solo ambiente di DW è estremamente difficile. Questa situazione si evita solamente se esiste un'architettura centralizzata di amministrazione dello sviluppo del sistema.


Il data warehouse, quindi, descrive il processo di acquisizione, trasformazione e distribuzione di informazioni presenti all'interno o all'esterno delle aziende come supporto ai decision makers.

Esso si differenzia in modo sostanziale dai normali sistemi gestionali che, al contrario, hanno il compito di automatizzare le operazioni di routine.

Se il focus viene posto sulla capacità di supportare il processo decisionale, il data warehouse può essere costruito secondo modalità differenti, che possono andare da una logica completamente accentrata a una logica completamente distribuita.


Il data warehouse è un sistema OLAP (On-Line Analytical Processing) che differisce dai sistemi OLTP (On Line Transaction Processing), sebbene i dati provengano da questi ultimi. I sistemi OLAP sono sistemi orientati al soggetto, integrati, storici e permanenti. Non comprendono dati analitici e statici come i sistemi OLTP, inoltre i dati OLAP non sono adatti ad uso corrente, ma vengono usati per analisi.

Un DW è sempre diviso dal suo ambiente operativo. I dati del DW non vengono mai cambiati; sono memorizzati all'inizio e messi a disposizione, e non sono aggiornati come nei sistemi OLTP. Prima di essere memorizzati nel DW, i dati sono integrati seguendo diverse strategie. Infatti, la fonte dei dati per un DW è un sistema operativo, anche se la prima non è una pura copia del secondo: i dati in un sistema decisionale sono filtrati, classificati cronologicamente, sono aggiunti dei valori riassuntivi e sono cambiati prima di essere caricati nel data warehouse.

Esercitazioni con SQL: query semplici e join in Access

Riprendendo una definizione data in post precedenti, possiamo definire Access un'applicazione per la gestione di basi di dati (DB) relazionali (per questo classificabile con la sigla RDBMS). In Access le informazioni sono contenute in oggetti che si chiamano tabelle ed è possibile interrogare queste tabelle estraendo solo le informazioni necessarie o creando delle relazioni fra di esse.


1. Introduzione alle Query in Access
Le Query sono lo strumento che permette di estrerre le informazioni di una base di dati. I tipi di Query che è possibile creare in Access sono:

Selezione
Cancellazione
Modifica(aggiornamento)
Accodamento
Creazione tabella
Campi incrociati
Query speciali

Le Query in Access possono essere espresse sia graficamente, utilizzando il linguaggio QBE (query by example) sia utilizzando il linguaggio SQL. Queste vengono create in un'apposita pagina di creazione query e le risposte vengono visualizzate direttamente sotto forma di tabelle.
Con il pulsante in alto a destra si possono alternare 3 visualizzazioni diverse:
  1. Struttura: per creare la query graficamente;
  2. SQL: per creare la query utilizzando il linguaggio SQL;
  3. Foglio dati per visualizzare i risultati della query.
Access trasforma automaticamente le query grafiche in SQL e viceversa quando si alternano le due modalità di visualizzazione.


2. Le Query di Selezione
Questo tipo di query permette di filtrare una o più tabelle, essendo capace di isolare solamente qualche riga o colonna di una tabella o qualche combinazione di colonne fra tabelle.
L'operazione più semplice che si può fare con le query di selezione è quella di selezionare solamente alcune colonne di una stessa tabella. Chiameremo a tal proposito questo tipo di query "Query Semplice".


2.1. Come realizzare una Query Semplice
Dopo aver aperto il DB di nostro interesse, scegliamo, nella colonna di sinistra contenente gli oggetti, l'ogetto "Query" e selezioniamo l'opzione "Crea una query in visualizzazione Struttura". Normalmente la query non visualizza alcun campo, occorrerà pertanto scegliere manualmente quale campo visualizzare, trascinandolo nello spazio sottostante. Per cui, dopo aver aggiunto attraverso la finestra "mostra tabella" la tabella di nostro interesse nella finestra "Query di selezione", trasciniamo manualmente i campi desiderati nell'area sottostante di questa finestra. Teniamo presente che il simbolo "*" indica tutti i campi di una tabella ed equivarrà a portare manualmente nella query tutti questi.
Ogni campo nella tabella di risposta mantiene il nome che aveva nella tabella originale, è però possibile cambiare il nome del campo nella tabella risposta scrivendo Nuovonome:nome_campo o anche attraverso il linguaggio SQL specificando un alias (ad esempio data_nascita "AS" data di nascita). Inoltre, alcuni campi possono essere calcolati a partire dal valore dei record dei campi considerati. In questo caso è sufficiente inserire nella riga "Campo" la formula capace di calcolare il nuovo valore. In questo caso sarà ovviamente necessario o almeno consigliabile cambiare il nome del campo.
I campi del record di partenza utilizzati nella formula devono, inoltre, essere scritti tra parentesi quadre (comunque qualora le dimenticassimo Access ci viene in aiuto facendolo per noi). Ad esempio: [anno_immatricolazione] - [anno_nascita] restituirà un nuovo campo che potrebbe chiamarsi Età immatricolazione.




2.2 Degli esempi concreti


ESEMPIO 1. Dal nostro DB Northwind creiamo una query in visualizzazione struttura. Supponiamo di essere interessati ad isolare dalla tabella clienti solamente alcune informazioni, per esempio: il codice ID del cliente, il suo nome e la sua nazione.

- In visualizzazione struttura non dovremo far altro che aggiungere la tabella di nostro interesse ("Customers"), trascinare manualmente i campi (CustomerID, ContactName e Country) e cliccare "!" per visualizzare la tabella risultato. Andando su visualizza "linguaggio SQL" potremo anche vedere la sintassi della nostra query.

- Utilizzando il linguaggio SQL non dovremo far altro che usare una sintassi molto semplice:


SELECT Nome_campo

FROM Nome_tabella


Ovvero


SELECT Customers.CustomerID, Customers.ContactName, Customers.Country

FROM Customers;



ESEMPIO 2. Se volessimo affinare la nostra ricerca basterebbe aggiungere ulteriori criteri di estrazione dati. Per esempio potremmo voler ottenere solamente il nome dei clienti francesi e il loro indirizzo.

- In visualizzazione struttura basterà agginugere tra i "criteri" del campo Country "France", aggiungere un ulteriore campo "Address" e cliccare ovviamente "!".

- Utilizzando il linguaggio SQL basterà aggiungere alla sintassi di sopra la clausola WHERE.


SELECT Customers.CustomerID, Customers.ContactName, Customers.Country, Customers.Address
FROM Customers
WHERE (Customers.Country)="France";


ESEMPIO 3. Se, invece, volessimo raggruppare i clienti per regione e sapere quanti ne abbiamo in ogni regione basterebbe:
- In visualizzazione struttura selezionare la tabella Customers e i campi ContactName e Country, col tasto destro sulla colonna ContactName selezionare "Totali" e la formula "Conteggio" specificando magari l'Ordinamento "Crescente" ed infine specificare la formula "Raggruppamento" per la colonna Country.
- Utilizzando il linguaggio SQL la sintassi sarebbe invece:

SELECT Count(Customers.ContactName) AS ConteggioDiContactName, Customers.Country
FROM Customers
GROUP BY Customers.Country
ORDER BY Count(Customers.ContactName);


3. JOIN in Access: le relazioni fra tabelle
Access, essendo un database relazionale, si caratterizza proprio per il fatto di essere composto da tabelle collegate tra loro tramite relazioni logiche. Tali relazioni consentono di collegare le tabelle in base ai campi comuni. In una query la relazione che può venirsi a instaurare tra due tabelle è legata al concetto di Join e di Integrità referenziale tra le tabelle.
La relazione, nello specifico, è un legame che si viene a creare tra i campi comuni delle tabelle. Un campo comune è un campo presente in due o più tabelle che consente di unire le informazioni dei record di una tabella con quelle contenute nei record di un'altra. Tale campo è la chiave primaria in una tabella e la chiave esterna (campo con vincolo di integrità) nell'altra. Il tipo di campo è importante dal momento che i campi da collegare devono avere lo stesso tipo di dati.

I tipi di relazioni che possono venirsi a creare possono essere del tipo:
-UNO a UNO: quando a un record della tabella principale corrisponde un solo record della tabella correlata e viceversa;
-UNO a MOLTI: quando ad ogni record della tabella principale corrispondono più record della tabella correlata (ma non viceversa);
-MOLTI a MOLTI: quando ogni record della tabella principale corrisponde a più record della tabella correlata e viceversa. Qusto tipo di relazione non può essere rappresentato direttamente ma occorrerà creare una tabella di congiunzione.

A seconda del modo in cui le tabelle vengono unite, è possibile creare principalmente 3 tipi di Join di base, ovvero inner join, outer join di tipo left e outer join di tipo right.


3.1 L'INNER JOIN (Join interno)
Questo tipo do join consente la selezione di un record, per essere incluso in una Query di selezione, soltanto quando nelle 2 tabelle esiste l'esatta corrispondenza tra i campi posti in relazione. Per realizzare un INNER JOIN, se in precedenza sono state create le relazioni fra tabelle, non è necessario eseguire alcuna operazione specifica. Esso verrà creato automaticamente quando verranno aggiunte le tabelle correlate in visualizzazione struttura della query. Inoltre, se viene applicata l'integrità referenziale, visualizzaremo "1" sulla linea di join per indicare la tabella che si trova sul lato "uno" di una relazione "UNO a MOLTI" e il simbolo di infinito "
∞" per indicare la tabella che si trova sul lato "molti".
La sintassi SQL è molto semplice:


SELECT nome_campo
FROM nome_tabella1 INNER JOIN nome_tabella2 ON nome_tabella1.nome_campo1 operatorediconfronto nome_tabella2.nome_campo2

ESEMPIO:
Prendendo sempre in considerazione il nostro DB Northwind, potremmo voler sapere il nome dei prodotti forniti da ciascun fornitore.
- In visualizzazione struttura basterà aggiungere le due tabelle di nostro interesse, ovvero Supplier e Products, e aggiungere alla query i campi SupplierID o CompanyName dalla prima tabella e ProductName dalla seconda.
- Utilizzando il linguaggio SQL la sintassi sarebbe invece:

SELECT Suppliers.SupplierID, Products.ProductName
FROM Suppliers INNER JOIN Products ON Suppliers.SupplierID = Products.SupplierID;


3.2 Gli OUTER JOIN
Gli altri due tipi di join appartengono alla categoria OUTER JOIN. Questo tipo di join, al pari del primo, viene effettuato sulla base di una corrispondenza di alcuni valori sulle tabelle. La differenza sta però nel fatto che in questo caso è possibile anche estrarre le righe di una tabella che non hanno corrispondenti nell'altra. Le outer join si distinguono in left outer join e right outer join. Più nello specifico:

- LEFT OUTER JOIN (join a sinistra). Se da un DB chiamato, per esempio, Olimpiadi volessimo ottenere un prospetto contenente tutte le Nazioni del mondo e a fianco di ciascuna di esse l'indicazione del numero di medaglie vinte nel corso di tutte le edizioni faremmo un'operazione di JOIN tra la tabella Nazioni e la tabella Risultati. In questo caso il campo che le lega sarebbe il campo IdNazione. Se eseguissimo una INNER JOIN otterremmo un elenco che escluderebbe tutte le Nazioni che non hanno mai vinto una medaglia d'oro, perchè la INNER JOIN prevede la presenza del valore del campo relazionato in entrembe le tabelle; eseguendo una OUTER JOIN di tipo LEFT, ponendo "sulla sinistra" la tabella delle Nazioni, otterremo invece l'elenco completo delle Nazioni. Naturalmente otteremo molti valori uguali a zero.
In modalità visualizzazione struttura selezioniamo "Totali" quindi la Formula "Raggruppamento" per il campo Nazione e la Formula "Conteggio" per il campo Vincitore. Facciamo doppio click sulla linea che congiunge le 2 tabelle, nella parte alta della finestra facendo apparire la finestra di dialogo "Proprietà join". Noteremo che la tabella di sinistra è Nazioni, mentre quella di destra è "Risultati". Definire una JOIN di tipo LEFT OUTER JOIN equivale a selezionare l'opzione 2 e cioè includi tutti i record di "Nazioni" e solo i record di "Risultati" in cui i campi collegati sono uguali. Facciamo click su "OK" e notiamo ancora che la linea che collega le 2 tabelle presenta una freccia rivolta verso destra: questo sta ad indicare è stato impostato un LEFT JOIN (la regola è inversa).


Se avessimo impostato '3' la freccia sarebbe rivolta verso sinistra ma in quel caso si tratterebbe di RIGTH JOIN.

- RIGHT OUTER JOIN (join a destra), una SELECT che include tutti i record della seconda tabella (quella di destra) di due tabelle, anche se non vi sono valori corrispondenti ai record della prima tabella (quella di sinistra).