Archivio per Novembre 2008

Funzione dell’ETL e i principali TOOLS di ETL

intdati_fig4

L’ETL è un software data integration che permette di trasferire dati da una o più sorgenti a una o più destinazioni secondo l’algoritmo estrazione, trasformazione e caricamento. Le versioni più evolute di questi strumenti usano le features di fastdump e fastload dei db, e un set di regole dichiarative per le trasformazioni. In altri casi le trasformazioni sono effettuate mediante programmi scritti ad hoc.

I processi ETL (Extraction, Transformation and Loading – estrazione, trasformazione e caricamento) sono i componenti più importanti e con più valore aggiunto di un’infrastrutturadi Business Intelligence (BI).

Tali  processi (di estrazione, trasformazione e caricamento) comprendono step multipli che hanno come obiettivo il trasferimento dei dati dalle applicazioni di produzione ai sistemi di Business Intelligence :

·     Estrazione dei dati dalle applicazioni di produzione e dai database (ERP, CRM, RDBMS, file ecc.)

·     Trasformazione di questi dati per la loro riconciliazione su tutti i sistemi sorgente, eseguire calcoli o parsing di stringhe, arricchirli con informazioni di lookup esterne e confrontare il formato richiesto dal sistema target (Third Normal Form Star Schema, Slowly Changing Dimensions, ecc.)

·     Caricamento dei dati risultanti nelle varie applicazioni BI: Data Warehouse o Enterprise Data Warehouse, Data Mart, applicazioni Online Analytical Processing (OLAP) o “cubi”, ecc.

 

I maggiori TOOLS di Query Reporting sono:

·     ACCESS di Microsoft;

·     BOAD;

·     COGNOS;

·     SAP;

·     BUSINESS OBJECTS.

 

 

Architetture per i sistemi informativi aziendali: DBMS TRANSAZIONALI, DATA MART

In informatica, una transazione è una sequenza di operazioni, che può concludersi con un successo o un insuccesso; in caso di successo, il risultato delle operazioni deve essere permanente, mentre in caso di insuccesso si deve tornare allo stato precedente all’inizio della transazione.Le transazioni sono normalmente implementate da DBMS o da gestori di transazioni.Nei linguaggi di accesso ai DBMS, la gestione delle transazioni fa parte del Data Manipulation Language (linguaggio di manipolazione dei dati). Infatti, le modifiche allo schema del database o alle autorizzazioni non sono facilmente gestibili con transazioni. Un utilizzo tipico delle transazioni è il seguente:

·     Prima di eseguire una transazione, si esegue un’istruzione di “inizio transazione“.

·     Si eseguono le operazioni di interrogazione e modifica dei dati.

·     Se si riscontra qualche anomalia, si esegue un’istruzione detta di “rollback“, per abortire la transazione.

·     Se si sono eseguite tutte le operazioni senza riscontrare anomalie, si esegue un’istruzione detta di “commit“, per confermare la transazione.

figura-5

Un Data mart è un raccoglitore di dati specializzato in un particolare soggetto. Un Data mart contiene un’immagine dei dati che permette di formulare strategie sulla base degli andamenti passati.
Normalmente si colloca a valle di un Datawarehouse più globale ed è alimentato a partire da esso, di cui costituisce, in pratica, un estratto. Detto in termini più tecnici, un Data mart è un sottoinsieme logico o fisico di un Datawarehouse di maggiori dimensioni.

La differenza fondamentale consiste nel fatto che la creazione del Datawarehouse avviene in maniera generalizzata per poi venire incontro alle specifiche esigenze, mentre il Data mart viene generalmente creato per venire incontro ad un’esigenza specifica e già determinata.I datamart sono creati basandosi sui concetti di fatti, dimensioni e misure. Ad esempio se prendiamo come fatti le vendite, le dimensioni possono essere cosa (il prodotto), quando (in che data), dove (quale rivenditore). I fatti poi possono avere associate diverse misure es: peso, costo, numero.

 

La necessità di creare un sistema separato per il Data mart rispetto al Datawarehouse può riassumersi nelle seguenti motivazioni:

·     La necessità di utilizzare un diverso schema.

·     Migliorare le performance separando il computer dedicato.

·     Garantire una maggiore sicurezza dovendo autorizzare l’accesso ad un insieme minore di dati.

 

Che cosa sono i DATAWAREHOUSE e cosa li differenzia dai sistemi OLTP

photo-data-warehousing

Un Datawarehouse (o DW) ,magazzino di dati, è un archivio informatico contenente i dati di un’organizzazione. I DW sono progettati per consentire di produrre facilmente relazioni ed analisi. Il problema dell’accesso unificato e omogeneo ai database operazionali può essere risolto introducendo un elemento architetturale nel sistema informativo: l’Enterprise datawarehouse (EDWH). L’EDWH è un database relazionale che raccoglie e storicizza tutte le informazioni in unico punto.
Esso svolge il ruolo di layer di integrazione dati allo stesso modo in cui i middleware di integrazione svolgono il ruolo di layer di integrazione fra applicazioni.

Vengono considerati componenti essenziali di un sistema Datawarehouse anche gli strumenti per localizzare i dati, per estrarli, trasformarli e caricarli, come pure gli strumenti per gestire un dizionario dei dati. Le definizioni di DW considerano solitamente questo contesto ampio. Una definizione ampliata comprende inoltre gli strumenti per gestire e recuperare i metadati e gli strumenti di business intelligence.

Il datawarehouse è 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.

Nel suo complesso il data warehouse è un sistema periferico, cioè non risiede fisicamente sul sistema informativo centrale. Il motivo di ciò va ricercato nel tipo di attività svolto: una piattaforma di tipo transazionale è maggiormente orientata all’esecuzione costante di operazioni di aggiornamento, per cui l’ottimizzazione viene fatta soprattutto sull‘I/O; una piattaforma di supporto alle decisioni invece deve essere ottimizzata per effettuare un numero limitato di query particolarmente complesse. Un’eccezione a tale regola può essere rappresentata da soluzioni di tipo mainframe, dove la possibilità di definire macchine virtuali all’interno della stessa macchina fisica consente la coesistenza sullo stesso server fisico delle applicazioni transazionali e delle applicazioni di decision support.

il data warehouse è un sistema OLAP che differisce dai sistemi OLTP (On Line Transaction Processing), sebbene i dati provengano da questi ultimi. I sistemi OLAP sono sistemi orientati al soggetto, sono 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 datawarehouse è sempre diviso dal suo ambiente operativo. I dati del datawarehouse 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 datawarehouse, i dati sono integrati seguendo diverse strategie.

La fonte dei dati per un data warehouse è 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. In particolare, per i microdati, i dati sono riassunti a due livelli di aggregazione distinti: il primo livello (primo livello di data mart) specifica l’unità del tempo, e nel secondo livello (data mart finale) sono memorizzati permanentemente soltanto dati a più alta frequenza.

 

CMS : CONTENT MANAGEMENT SYSTEM

cms-example1

Il Content management system (CMS), letteralmente “Sistema di gestione dei contenuti” è una categoria di sistemi software che serve a organizzare e facilitare la creazione collaborativa di documenti e di altri contenuti. Tecnicamente il CMS è un’applicazione lato server, divisa in due parti: il back end, ovvero la sezione di amministrazione, che si occupa di organizzare e supervisionare la produzione del contenuto, e il front end, cioè la sezione dell’applicazione che l’utente usa per realizzare fisicamente modifiche, aggiornamenti ed inserimenti.

 Cenni storici 

I Content Management System sono nati negli Stati Uniti e sono stati inizialmente sviluppati da alcune organizzazioni che producevano notevoli quantità di pubblicazioni, per il loro uso interno. Nel 1995 la CNET rese pubblici gli studi e i prodotto sviluppati internamente, distribuendoli con l’etichetta “Vignette”. La compagnia cominciò a mettere a disposizione il software come sistema di gestione dei contenuti che si appoggia sul web, permettendo ai siti di creare interfacce di presentazione dei propri contenuti web su di un software precedentemente sviluppato. Nel 1998, la Pencom Web Works, una compagnia di consulenza aziendale, introdusse il server di trasformazione dati (DTS) Metaphoria, che permetteva agli sviluppatori Java di scrivere applicazioni che potevano essere collegate con i contenuti e permettevano di distribuire tali contenuti su canali diversi. Il prodotto non ebbe successo, ma il concetto che era stato introdotto costituì le basi di ciò che è diventato il CMS odierno.

Il problema della gestione dei contenuti 

In un approccio sistematizzato al problema della gestione dell’informazione si affrontano le seguenti fasi:

 

·     Identificazione degli utenti e dei relativi ruoli di produzione o fruizione dell’informazione

·     Assegnazione di responsabilità a differenti categorie di utenti per distinti tipi di contenuti (in un progetto complesso il prodotto finito non è frutto del lavoro del singolo, che pertanto non ha possibilità o esigenza di intervenire in tutti gli ambiti)

·     Definizione delle attività di workflow, cioè formalizzazione di un percorso per l’assemblaggio del prodotto finale che, in quanto frutto di produzione frammentaria, deve acquisire la sua unitarietà sottostando a opportune procedure di supervisione. Più prosaicamente, per poter rendere efficiente la comunicazione tra i vari livelli della gerarchia, è necessaria un’infrastruttura di messaggistica, con la quale i gestori del contenuto possono ricevere notifica degli avvenuti aggiornamenti.

·     Tracciamento e gestione delle versioni del contenuto

·     Pubblicazione del contenuto.

Nonostante i CMS non siano stati concepiti per il Web, oggi il loro utilizzo più diffuso è rivolto alla gestione di siti web, soprattutto se di grandi dimensioni e frequentemente aggiornati.
Una delle applicazioni più utili dei sistemi di CMS, infatti, è nella gestione dei portali, dove vengono impiegati come strumento di pubblicazione flessibile e multiutente.
Ad esempio, gestione di contenuti testuali (notizie, articoli ecc.), link, immagini, liste di discussione, forum, materiale scaricabile. Può essere modificata anche la struttura stessa delle pagine in numero ed organizzazione. A volte i WCMS danno la possibilità di gestire anche più versioni dello stesso sito (ad esempio, HTML o WAP).

Esistono CMS specializzati, cioè appositamente progettati per un tipo preciso di contenuti (un’enciclopedia on-line, un blog, un forum etc.) e CMS generici, che tendono ad essere più flessibili per consentire la pubblicazione di diversi tipi di contenuti.

Approfondimenti su SQL: clausole where, having, group by

I comandi :

SELECT lista_elementi_selezione
FROM lista_riferimenti_tabella
[ WHERE espressione_condizionale ]
[ GROUP BY lista_colonne HAVING Condizione ]


WHERE indica l’espressione condizionale cioè rappresenta l’elenco delle condizioni, ovvero dei requisiti che un campo deve rispettare per poter essere prelevato dall’ interrogazione (le condizioni sono specificate mediante gli operatori di confronto, connettori logici e comparatori come between, in, like, is null);
GROUP BY  ha la funzione di associare una funzione di aggregazione con dei gruppi di righe;
HAVING  è un ulteriore condizione da imporre alla ricerca.