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.