domenica 24 marzo 2013

Basi di dati: alcuni concetti base

Il database Con il termine database (base di dati) si indica l’insieme dei dati utilizzati in uno specifico sistema informativo, di tipo aziendale, scientifico, amministrativo o altro.


Un database è composto da due diversi tipi di informazione, appartenenti a distinti livelli di astrazione:
I dati, che rappresentano le entità del sistema da modellare. Le proprietà di tali entità sono descritte in termini di valori (di tipo numerico, alfanumerico ecc.). I dati, inoltre, sono raggruppati o classificati in categorie in base alla loro struttura comune (per esempio Libri, Autori);
Le strutture (metadati), che descrivono le caratteristiche comuni delle varie categorie di dati, quali i nomi e i tipi dei valori delle proprietà (1)


Il DBMS (Data Base Management System) Le basi di dati sono gestite mediante un un sistema di gestione di basi di dati, che prende il nome di DBMS. Sono prodotti software che vengono elaborati da case produttrici più o meno grandi e successivamente messi sul mercato dove chiunque può comprarli.



Perchè viene utilizzato il DBMS ? Il sistema permette di gestire dati che sono grandi, condivise (tra le diverse applicazioni) e persistenti (i dati non sono limitati ad un singolo utilizzo da parte di una applicazione) assicurando la loro affidabilità (intesa come integrità dei dati anche in caso di malfunzionamenti hardware o software) e privatezza (un utente è autorizzato a lavorare sui dati in quanto è riconosciuto mediante un sistema di autenticazione).

Tra i più diffusi DBMS open source troviamo:


I più diffusi sistemi commerciali sono:


Modelli di basi di dati. Il modello descrive la struttura dei dati. Si distinguono due tipi di modelli:
  1. modelli logici
  2. modelli concettuali
Modelli logici descrivono l’organizzazione dei dati nei DBMS “visibile” all’utente. Essi sono inoltre indipendenti dalle strutture fisiche, ovvero possono essere utilizzati qualunque sia la sua struttura fisica (organizzazione dei files). Esempi: modello relazionale, modello reticolare, modello gerarchico, modello a oggetti.

Il modello concettuale costituisce la più recente categoria di modelli elaborata. Questi modelli hanno l’obiettivo di “descrivere” i concetti del mondo reale. Il più noto modello concettuale va sotto il nome di Entity-Relationship (Entità-Relazione)

Schema e istanza Nelle basi di dati esiste una parte che non subisce alcun tipo di variazione nel corso del tempo, questo è lo schema, mentre la parte variabile è l'istanza.

Linguaggi. Per poter operare su una base di dati si utilizzano principalmente due tipologie di linguaggi:
  • DDL (Data Definition Language), linguaggio che permette operazioni sullo schema.
  • DML (Data Manipulation Language), linguaggio che opera sui dati
Uno di essi è l’SQL (structured query language)  che presenta istruzioni per specificare schemi (a livello di DDL) e istruzioni per specificare interrogazioni (es. select estrazione di informazioni, operazioni sui dati, a livello di DML).

Database relazionali Storicamente i DBMS relazionali (RDBMS, Relational Database Management System) furono i primi a essere basati su un modello dei dati precedentemente formalizzato. Tale modello venne sviluppato nel 1970 da Edward Codd presso l’IBM San Josè Research Laboratory. L’approccio adottato è basato sulla teoria matematica delle relazioni tra insiemi. Esso prescinde da specifiche tecniche realizzative e da considerazioni relative alla facilità di realizzazione e all’efficienza delle prestazioni (1).




I due concetti fondamentali del database relazionale sono: relazione e tabella, e sono proprio questi due concetti ad aver contribuito al grande successo del modello relazionale. La relazione è un concetto che proviene dalla matematica, in particolare dalla teoria degli insiemi. La tabella è invece un concetto che tutti conosciamo, ovvero la struttura composta da righe e da colonne.
La relazione viene espressa con "R", chiamato nome della relazione a cui seguono un insieme di attributi. Lo schema della base di dati viene quindi espresso:

R={R1(X1), R2(X2) ....... Rn(Xn)} NOME CATEGORIA={Autovettura, Furgone, Motociclo, Rimorchio


Database distribuiti. 
 
La definizione di Wikipedia: "Un database distribuito è un database che si trova sotto il controllo di un Database management system (DBMS) nel quale gli archivi di dati non sono memorizzati sullo stesso computer. Il database in senso fisico può essere dislocato in più computer situati nello stesso luogo, oppure distribuito in una rete di computer connessi tra loro sotto forma appunto di sistema distribuito." Si tratta di database con informazioni che costituiscono una sola struttura logica ma che sono fisicamente memorizzate su diversi elaboratori autonomi che comunicano tra loro tramite scambio di dati e messaggi. La locazione fisica dei dati risulta essere trasparente all’utente e viene garantita l’esistenza e la correttezza dei dati.

Questi database sono nati per permettere la collaborazione tra diverse organizzazioni. Infatti permettono di realizzare i sistemi in modo modulare con divisione delle risorse e loro distribuzione geografica, cercando di migliorare le prestazioni degli utenti e garantendo affidabilità e sicurezza.

OLTP E OLAP

Con l'acronimo OLAP (On-Line Analytical Processing) si intendono l'insieme degli strumenti e delle metodologie di analisi automatica di grandi quantità di dati.

OLAP è utilizzato anche a causa della grande quantità di dati che si è prodotta negli ultimi anni nelle organizzazioni, ciò ha provocato due effetti che non dovrebbero esistere in un sistema di basi di dati: ridondanza e inconsistenza. Quando i dati sono ripetitivi e incosistenti non possono offrere un buon supporto per prendere delle decisioni. Ad esempio, il management vuole conoscere il volume delle vendite registrate tra il 2010 e il 2012 in alcune regioni specifiche e suddividendo i prodotti venduti per categoria.



A differenza delle analisi con tecnologia OLAP (Online Analytical Processing), la tecnologia OLTP non prevede la creazione di banche dati separate, infatti le analisi vengono effettuate direttamente sui dati di esercizio. Questa soluzione permette di avere i dati sempre aggiornati ed evita fasi intermedie di trasformazione dei dati, tuttavia per la sua stessa natura non è facilmente applicabile in situazioni dove la quantità di dati da analizzare sia molto elevata ed in questi casi viene generalmente preferito l'utilizzo di analisi di tipo OLAP.
Entrambi costiuisco un sistema informativo di tipo DSS (Decision Support System), ovvero un sistema integrato che svolge un compito di supporto alle decisioni

A sua volta OLAP è un sistema di data warehousing 

Cubo OLAP. Struttura per la memorizzazione di dati che permette di eseguire analisi in tempi rapidi, superando un limite dei database relazionali. I database relazionali non sono adatti ad elaborazioni istantanee e alla visualizzazione di una grande mole di dati. Al contrario, sono adatti all'elaborazione di record derivanti dall'esecuzione di transazioni note come OLTP (2).
Il Cubo OLAP può essere immaginato come un'estensione del foglio di lavoro a due dimensioni. Il cubo OLAP ha da tre a un arbitrario numero di caratteristiche o dimensioni di analisi.




Data Warehouse

Il data warehouse, “magazzino di dati”, costituisce l’elemento fondamentale di un’architettura OLAP, lo possiamo definire come una collezione di dati, o meglio di informazioni, che vengono analizzate per ottenere,  un supporto alle decisioni aziendali.

Il DW non raccoglie solo le informazioni che provengono dal DB dell'organizzazione, ma si estende anche a fonti esterne.

William H. Inmon, colui che per primo ha parlato esplicitamente di data warehouse, lo definisce come una raccolta di dati integrata, orientata al soggetto, variabile nel tempo e non volatile di supporto ai processi decisionali (3).

Il DW può essere utilizzato nell'ambito del controllo di gestione; Risk e Asset Management, Supporto alle vendite, Sistema informativo di marketing, Supporto al Call Center, Knowledge Base, Engineering di prodotto(3).


I componenti fondamentali(4) di un Data Warehouse sono: sorgenti, il DW Server (che ha il compito di memorizzare i dati in opportune strutture fisiche realizzando interrogazioni molto complesse); il sistema di alimentazione; Strumenti di analisi.
Nella realizzazione di un data warehouse è possibile prendere in considerazione due modelli:
  • ROLAP (Relational OLAP), con il quale viene realizzato con la tecnologia relazionale, opportunamente adattata ed estesa, e utilizzando strutture fisiche opportune, concepite appositamente per questo tipo di applicazione. È la tecnologia utilizzata dalle grandi case produttrici.
  • MOLAP (Multidimensioanl OLAP), nel quale i dati vengono effettivamente memorizzati in forma multidimensionale, mediante strutture dati proprietarie e appositamente concepite. 
Data mining (4)

Il data mining  è un processo che mira ad estrarre informazioni nascoste all’interno dei dati di un data warehouse. Tali informazioni devono essere in precedenza non note, devo essere rappresentate in un formato facilmente comprensibile (solitamente mediante espressioni  ch emettono in evidenza delle regolarità e che perciò sono dette pattern) e devono essere di supporto alle decisioni di carattere strategico.
Si tratta quindi di un problema interdisciplinare, che richiede conoscente riguardanti la statistica, l’algoritmi ca, le reti neurali, i frattali, … . Il data mining si può utilizzare per effettuare analisi di mercato, per analizzare un comportamento (ad esempio, individuare un comportamento fraudolento dall’analisi dell’uso di una carta di credito), effettuare previsioni o esercitare un controllo (ad esempio, della produzione industriale).

----------------
(1) Manuale di SQL - Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica
(2) Cubo OLAP. (20 febbraio 2013). Wikipedia, L'enciclopedia libera. Tratto il 24 marzo 2013, 10:29 da //it.wikipedia.org/w/index.php?title=Cubo_OLAP&oldid=56498666.
(3) Data warehouse. (21 febbraio 2013). Wikipedia, L'enciclopedia libera. Tratto il 24 marzo 2013, 10:37 da //it.wikipedia.org/w/index.php?title=Data_warehouse&oldid=56518893.
(4) Basi di Dati 2. Corso del Prof. Stefano Ceri, Stefano Invernizzi, Facoltà di Ingegneria dell’Informazione Corso di Laurea Magistrale in Ingegneria Informatica, Politecnico di Milano, Anno Accademico 2010/2011

Nessun commento:

Posta un commento