martedì 1 giugno 2010

L' ETL


Extract, Transform, Load (ETL) si riferisce al processo di estrazione, trasformazione e caricamento dei dati in un sistema di sintesi. I dati vengono estratti da sistemi sorgenti quali database transazionali (OLTP), comuni file di testo o da altri sistemi informatici. Subiscono quindi un processo di trasformazione, che consiste ad esempio nel selezionare solo quelli che sono di interesse per il sistema; normalizzare i dati (per esempio eliminando i duplicati); tradurre dati codificati; derivare nuovi dati calcolati; eseguire accoppiamenti (join) tra dati recuperati da differenti tabelle; raggruppare i dati. Tale trasformazione ha lo scopo di consolidare i dati (cioè rendere omogenei dati provenienti da sorgenti diverse) e di fare in modo che siano più aderenti alla logica di business del sistema di analisi per cui viene sviluppato. Vengono infine memorizzati nelle tabelle del sistema di sintesi.
Gli ETL essendo strumenti “dedicati”, forniscono risultati tangibili in termini di documentazione e di velocità di sviluppo, per contro necessitano di un gruppo di lavoro specializzato in questo “linguaggio”.
Da qualche anno si sente sempre più spesso parlare di ETL, tipicamente parlando di progetti di Business Intelligence. Molte aziende li stanno adottando, generalmente spinte dall’ufficio IT.
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 non devono essere considerati solo come il “programma per caricare il DataWarehouse”, ma come lo strumento tramite cui far passare le grandi movimentazioni di informazioni sempre più presenti all’interno delle aziende. In questo modo si potranno sfruttare appieno ad esempio le caratteristiche di documentazione, rendendo molto più trasparente l’interoperabilità tra i diversi sistemi aziendali. 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 e permette di rendere esplicito molto 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.
In quest’ottica l’ETL non deve quindi essere interpretato come l’ennesima licenza software da acquistare, ma come uno strumento che se correttamente interpretato può portare un vero cambiamento all’interno dell’azienda, specie per le realtà dove siano presenti molti sistemi eterogenei, o dove le necessità di interoperabilità dei sistemi costringano a numerosi e frequenti sistemi di allineamento delle informazioni per poter mantenere consistenza nei dati aziendali.
Tra i software più comuni di ETL troviamo DataStudio, Integrator, SSIS Microsoft, Oracle Data e Integration Suite.

lunedì 31 maggio 2010

DATABASE MULTIDIMENSIONALI (OLAP)



Un database multidimensionale (OLAP) è un sistema software che organizza i dati all'interno di una struttura cubica chiamata "data cube". I dati, dunque, vengono immagazzinati all'interno di tale database tendendo conto di tre dimensioni e non due, come nei classici database relazionali, che organizzano le informazioni in una struttura bidimensionale composta da righe e colonne.
Inoltre, rispetto al database relazionale, il sistema OLAP consente di studiare una maggiore quantità di dati e permette di osservare tali dati da diverse prospettive.
Le operazioni che possono essere eseguite su database multidimensionali sono le seguenti:
- DRILL-DOWN (perforare): con questo termine si intende la possibilità, una volta visualizzato il dato complessivo relativo ad una dimensione gerarchizzata di analisi, di esplorare tutta la gerarchia, in pratica consente di disaggregare i dati.
- ROLL-UP (accumulare): svolge la funzione opposta al drill-down, in quanto consente di ricompattare e raggruppare i dati sotto una modalità.
- SLICE AND DICE (affettare e ruotare): indicano la possibilità di restringere l'analisi solo ad alcune delle occorrenze delle dimensioni e solo ad alcune delle dimensioni proposte, queste operazioni, consentono appunto di ritagliare e ruotare i cubetti che compongono il data cube.
- FILTERING: tecnica utilizzata per filtrare i dati attraverso l'uso di un algoritmo.
- PIVOTING: in matematica e in informatica il "pivot" di una matrice è il primo elemento della matrice scelto da un algoritmo. Lo scopo del pivot è quello di far funzionare correttamente l'algoritmo e proprio per questo motivo esso deve rispettare determinate proprietà. Il "pivoting" è la tecnica che, attraverso una serie di scambi di righe e colonne della matrice, consente al pivot di rispettare le proprietà necessarie al corretto funzionamento dell'algoritmo.

TABELLE DI CONTINGENZA

Le tabelle di contingenza o associazione sono tabelle utilizzate in statistica per analizzare le relazioni tra due o più variabili e rappresentare con che frequenza tali variabili si presentano in modalità congiunta.
Per fare un esempio, si possono prendere in considerazione due variabili: "età" e "luogo di nascita". Per ciascuna unità in esame avremo una coppia di modalità associate a queste due variabili e probabilmente avremo coppie di modalità simili, ovvero soggetti che hanno la stessa età o nati nello stesso luogo. Lo scopo delle tabelle di contingenza è proprio quello di riportare, per ogni coppia di modalità, le unità corrispondenti ad esse.


Nella presente tabella di contingenza, ad esempio, la coppia di modalità "LUOGO DI NASCITA- Roma" e "ETA'- 25" anni compare con la frequenza di 70 volte, ossia è associata a 70 unità di analisi.

ESEMPIO COSTRUZIONE DATABASE ACCESS

CONCETTI STATISTICI DI BASE


Unità statistiche: l'oggetto di osservazione della ricerca, l'entità sulle quali si opera il processo di quantificazione, possono essere persone, oggetti, transazioni, o qualunque entità che rappresenti una fonte di interesse dal punto di vista del trattamento dei dati.
Carattere: il carattere o variabile è il fenomeno oggetto di studio. Le diverse manifestazioni attraverso cui si esprime il fenomeno sono dette "modalità del carattere".
Abbiamo due tipologie distinte di caratteri: i caratteri "qualitativi", che sono discreti, sconnessi e ordinati, e i caratteri "quantitativi", che possono essere discreti o continui ma sempre ordinabili.
Su ogni unità statistica possono essere rilevati diversi caratteri ottenendo in questo modo dei "valori",che sarebbero appunto le modalità del carattere.
Classificazione: procedimento finalizzato all'organizzazione della conoscenza. Consiste nel disporre le entità appartenenti ad un determinato dominio in opportune classi o categorie. Questa operazione si basa sull'individuazione di differenze tra le entità, che possono in questo modo essere classificate in classi distinte.
Matrice dei dati: tabella in cui i dati sono organizzati in righe e colonne. Nelle righe troviamo le unità statistiche, nelle colonne i caratteri. Nelle celle risultanti dall'intersezione di righe e colonne troviamo i "valori", che rappresentano dunque la combinazione di una unità statistica con un particolare carattere.
Funzioni di aggregazione: eseguono un calcolo su un set di valori e restituiscono un valore singolo. Vediamo in che senso. La dimensione di un report si riferisce ad uno spazio K-dimensionale in cui si collocano le unità statistiche, è una forma di visualizzazione geometrica. Nel momento in cui più unità presentano le medesime modalità in più caratteri, sarà possibile aggregarle mediante una funzione che vada a sintetizzarle per poterle poi rappresentare in una semplice matrice di dati.
La funzione di aggregazione è detta "misura", per ricondurre il tutto ad uno schema matriciale, io opero una misurazione di ciascuna modalità, per l’appunto metto in atto una sintesi, una aggregazione.
Nei database, le funzioni di aggregazione più diffuse sono Count, Sum, Avg, Min, Max.
COUNT
Restituisce il numero di righe che soddisfano la condizione specificata nella clausola WHERE.
SUM
Questa funzione somma tutti i valori di una colonna. La funzione SUM opera soltanto con i numeri, se viene applicata a un campo non numerico, si ottiene un messaggio di errore.
AVG (average)
Calcola la media aritmetica dei valori di una colonna, anche questa funzione opera soltanto con i numeri.
MAX
Questa funzione serve a trovare il valore massimo di una colonna. La funzione MAX opera anche con i caratteri.
MIN
Questa funzione opera in modo analogo a MAX, ad eccezione del fatto che restituisce il valore minimo di una colonna. La funzione MIN opera anche con i caratteri, ad esempio, la stringa ‘AA’ è minore della stringa ‘BB’.
Dimensione: gerarchia organizzata di livelli che descrivono i dati della tabella e dei fatti.
Cubo multidimensionale: struttura attraverso la quale i dati sono rappresentati in dimensioni multiple attorno ad un soggetto centrale, i fatti.

venerdì 28 maggio 2010

NORMALIZZAZIONE INFORMATICA

La normalizzazione è una prassi finalizzata alla eliminazione della ridondanza e del rischio di inconsistenza dai database. Questo processo presenta differenti livelli, demominati forme normali che certificano la qualità dello schema del database. Si tratta di una procedura di tipo graduale, che realizza un’ottimizzazione progressiva a partire da relazioni non normalizzate fino a raggiungere un certo livello di normalizzazione.
Si fonda su un assunto tanto semplice quanto basilare: se una relazione presenta più concetti tra loro indipendenti, la si decompone in relazioni più piccole, una per ogni concetto. Questo tipo di processo non è purtroppo sempre applicabile in tutte le tabelle, dato che in taluni casi potrebbe comportare una perdita d'informazioni. Due concetti sono fondamentali all'interno della normalizzazione, quello di ridondanza,che si riferisce alla situazione in cui gli stessi dati vengono memorizzati inutilmente più volte e il concetto di anomalia, che si riscontra nel momento in cui si verificano irregolarità dei dati.
Tornando alle forme normali,la decomposizione di una relazione dovrebbe sempre garantire che non avvenga una perdita, affinché possa esserci la ricostruzione delle informazioni originarie e che si conservino le dipendenze, per il mantenimento dei vincoli di integrità originari.
Di seguito le forme normali:

Prima forma normale:

Una relazione si dice in prima forma normale (1NF) se e solo se tutti i suoi attributi sono valori atomici.
Ciò implica che né gli attributi, né i valori da questi assunti possono essere scomposti ulteriormente.
Ad esempio, la relazione NOME e INDIRIZZO non è in prima forma normale, in quanto l’attributo INDIRIZZO non è atomico: può essere suddiviso in Indirizzo e Città. La relazione si normalizza trasformandola in NOME, INDIRIZZO e CITTA’.

Seconda forma normale:
Una relazione è in seconda forma normale se e solo se soddisfa la 1NF e inoltre ciascun attributo che non fa parte della chiave è indipendente funzionalmente da una qualunque chiave candidata.
Per normalizzare la relazione è necessario estrarre la dipendenza funzionale riscontrata tra un sottoinsieme della chiave e l’attributo in questione, che darà luogo ad un’altra relazione.
Esempio:
Abbiamo una relazione che rappresenta delle scrivanie da ufficio prodotte da una azienda industriale, la chiave primaria è data Tipo_tavolo e Tipo_legno.


Tipo_finitura è dipendente funzionalmente da un sottoinsieme della chiave primaria, ovvero da Tipo_legno, dunque la tabella non è in 2NF.
È possibile normalizzare la relazione trasformandola in:




Terza forma normale:

La terza forma normale ha come scopo l’eliminazione dalla relazione delle dipendenze funzionali transitive.
Una relazione è in terza forma normale (3NF) se, oltre ad essere in 2NF, ciascun attributo che non partecipa alla chiave non è transitivamente dipendente da una qualunque chiave candidata.

lunedì 15 marzo 2010

SOFTWARE PROPRIETARI E SOFTWARE OPEN SOURCE

SOFTWARE PROPRIETARIO

Con il termine software proprietario si indica quel software che ha restrizioni sul suo utilizzo, sulla sua modifica, riproduzione o ridistribuzione, solitamente imposti da un proprietario. Queste restrizioni vengono ottenute tramite mezzi tecnici o legali.
I mezzi tecnici rendono pubblico solo il codice binario del software, trattenendone il codice sorgente. In questi casi la modifica del software risulta molto difficile, ottenibile solo grazie a disassemblatori e ad elevate capacità informatiche, mentre, attraverso i mezzi legali si ottengono licenze, copyright e brevetti.

Alcuni pacchetti software liberi sono disponibili anche con termini di software proprietario, come per esempio MySQL e SSH. I possessori del copyright originale di un determinato software libero, anche se rilasciato con copyleft, possono utilizzare una doppia licenza per far sì che sia loro, sia gli altri, possano ridistribuirne versioni proprietarie. Il software libero senza copyleft, o software libero "con licenza permissiva", permette a chiunque di creare delle versioni proprietarie da ridistribuire. Accanto a questi pacchetti troviamo anche il codice sorgente di un software proprietario, in questi casi gli utenti sono liberi di usare ed anche studiare e modificare il software, ma sono vincolati da licenze o accordi di non divulgazione per la ridistribuzione delle modifiche o anche per la semplice condivisione del software.
Alcuni esempi di software proprietario sono: Microsoft Office, RealPlayer, Winzip, Adobe Photoshop.

OPEN SOURCE

In informatica, open source indica un software i cui autori ne permettono il libero studio e l'apporto di modifiche da parte di altri programmatori indipendenti e questo perché, la collaborazione di più parti, permette al prodotto finale di raggiungere una complessità maggiore di quanto potrebbe ottenere un singolo gruppo di lavoro. L'open source ha tratto grande beneficio da Internet, perché esso permette a programmatori geograficamente distanti di coordinarsi e lavorare allo stesso progetto.
I software open source attualmente più diffusi sono Firefox, OpenOffice, VLC.
Alla filosofia del movimento open source si ispira il movimento open content (contenuti aperti): in questo caso ad essere liberamente disponibile non è il codice sorgente di un software ma contenuti editoriali quali testi, immagini, video e musica.