OLAP: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Annullata la modifica di 37.182.177.169 (discussione), riportata alla versione precedente di Erirus
Etichetta: Rollback
 
(86 versioni intermedie di 62 utenti non mostrate)
Riga 1:
{{F|basi di dati|aprile 2010}}
'''OLAP''', [[acronimo]] che sta per ldell'espressione ''On'O'''n-Line'''L'''ine''' AnalyticalA'''nalytical''' ProcessingP'''rocessing, designa un insieme di tecniche [[software]] per l'analisi interattiva e veloce di grandi quantità di dati, che è possibile esaminare in modalità piuttosto complesse. Questa è la componente tecnologica base del [[data warehouse]] e, serve ad esempio, serve alle aziende per analizzare i risultati delle vendite, l'andamento dei costi di acquisto merci, al [[marketing]] per misurare il successo di una campagna pubblicitaria, ada una università per organizzare i dati di un [[sondaggio (statistica)|sondaggio]] ed altri casi simili. Gli strumenti OLAP si differenziano dagli [[OLTP]] per il fatto che i primi hanno come obiettivo la performance nella ricerca e il raggiungimento di interrogazioni quanto più articolate sia possibile; i secondi, invece, mirano ad una garanzia di integrità e sicurezza delle transazioni.
 
L'applicazione tipica di OLAP è all'interno di strumenti di [[business intelligence]] (BI).
== Funzionalità ==
 
== Descrizione ==
La creazione di un database OLAP consiste nell'effettuare una fotografia di informazioni (ad esempio quelle di un database relazionale) in un determinato momento e trasformare queste singole informazioni in dati multidimensionali.
=== Funzionalità ===
La creazione di un [[database]] OLAP consiste nell'effettuare unaun'[[Snapshot|istantanea]] fotografia didelle informazioni (ad esempio quelle di un [[database relazionale]]) in un determinato momento e trasformare queste singole informazioni in dati multidimensionali.
Eseguendo successivamente delle interrogazioni sui dati, cosìin tal modo strutturati, è possibile ottenere risposte in tempi decisamente ridotti rispetto alle stesse operazioni effettuate su altre tipologie di database, anche perché il DBdatabase di un sistema [[OLTP]] non è stato studiato per consentire analisi articolate.
 
[[File:OLAP Cube.png|thumb|Esempio di cubo OLAP a 3 dimensioni: prodotti, città, tempo]]
Una struttura OLAP creata per questo scopo è chiamata "cubo" multidimensionale. Ci sono diversi modi per creare un cubo ma il più conosciuto è quello che utilizza uno schema "a stella"; al centro c'è la tabella dei "fatti" che elenca i principali elementi su cui sarà costruita l'interrogazione, e collegate a questa tabella ci sono varie tabelle delle "dimensioni" che specificano come i dati saranno aggregati.
[[File:Esquema en estrella.png|thumb|Esempio di schema a stella]]
Una struttura OLAP creata per questo scopo è chiamata "''[[Cube (OLAP)|cubo"]]'' multidimensionale. Ci sono diversi modi per creare un cubo, ma il più conosciuto è quello che utilizza uno schema "''a stella"''; al centro c'è la tabella maggiore dei "fatti"''facts'' che elenca i principali elementi su cui sarà costruita l'interrogazione, e collegate aad questaessa tabella ci sonosussistono varie tabelle delle "''dimensioni"'' che specificano come i dati saranno aggregati i dati.
 
Per esempio un archivio di clienti può essere raggruppato per città, provincia, regione; questi clienti possono essere relazionati con i prodotti ed ogni prodotto può essere raggruppato per categoria.
 
Il calcolo delle possibili combinazioni di queste aggregazioni forma una struttura OLAP che, potenzialmente, potrebbe contenere tutte le risposte per ogni singola combinazione. NellaIn realtà viene memorizzato solo un numero predeterminato di combinazioni viene memorizzato, mentre le rimanenti vengono ricalcolate solo al momento in cui quella richiesta viene materialmente effettuata.
 
Un sistema OlapOLAP permette di:
* studiare una grande quantità di dati
* vedereanalizzare i dati da prospettive diverse
* supportare i [[decisione|processi decisionali]] nell'ambito della [[Business Intelligence]].
 
=== TipologieTipi di sistemi OLAP ===
Partendo dai concetti di base appena descritti, possiamosi aggiungerepuò precisare che esistono tre tipologie di sistemi OLAP: multidimensionale ('''MOLAP''': ''Multidimensional OLAP''), relazionale ('''ROLAP''': ''Relational OLAP'') e ibrido ('''HOLAP''': ''Hybrid OLAP''). Ciascuna di queste tipologie presenta i propri benefici, benché non vi sia una concordanza completa relativamente ad essi.
* MOLAP è la tipologia più utilizzatausata e ci si riferisce ad essa comunemente con il termine OLAP. UtilizzaSfrutta un database di riepilogo cheavente haun unomotore specifico motore per l'analisi multidimensionale e crea le "''dimensioni"'' con un misto di dettaglio ed aggregazioni. Risulta la scelta migliore per quantità di dati ridotte, perché è rapido nel calcolare aggregazioni e restituire risultati; tuttavia crea enormi quantità di dati intermedi.
* ROLAP lavora direttamente con [[database relazionale|database relazionali]]; i dati e le tabelle delle dimensioni sono memorizzati come tabelle relazionali e nuove tabelle sono create per memorizzare le informazioni di aggregazione. È considerato più scalabile e presenta requisiti di archiviazione e memoria minori; tuttavia, è lento nella creazione delle tabelle e nel generare il rapporto circa le interrogazioni.
* HOLAP utilizza tabelle relazionali per memorizzare i dati e le tabelle multidimensionali per le aggregazioni "speculative". Come dice il nome, questo sistema è un ibrido, poiché viene creato più velocemente di un sistema ROLAP ed è al tempo stesso più scalabile di MOLAP.
La difficoltà nell'implementazione di un database OLAP partecomincia dalle ipotesi delle possibili interrogazioni utente; scegliere la tipologia di OLAP, lo schema e creare una base dati completa e consistente è un'operazione piuttosto complicata.complessa, Decisamentedecisamente complicata per una base di utenza ampia ed eterogenea.
 
MoltiPer venire incontro alle esigenze degli utenti, molti prodotti moderni forniscono una quantità enorme di schemi ed interrogazioni pre-impostate per venire incontro alle esigenze degli utenti.
Partendo dai concetti di base appena descritti, possiamo aggiungere che esistono tre tipologie di sistemi OLAP: multidimensionale (MOLAP: Multidimensional OLAP), relazionale (ROLAP: Relational OLAP) e ibrido (HOLAP: Hybrid OLAP).
 
=== Operatori OLAP ===
MOLAP è la tipologia più utilizzata e ci si riferisce ad essa comunemente con il termine OLAP. Utilizza un database di riepilogo che ha uno specifico motore per l'analisi multidimensionale e crea le "dimensioni" con un misto di dettaglio ed aggregazioni.
Gli operatori base di uno strumento OLAP per fare analisi multidimensionale dei dati sono:
 
* ''pivoting'': è l'operazione di rotazione delle dimensioni di analisi. È un'operazione fondamentale per analizzare totali ottenuti in base a dimensioni diverse o se si vogliono analizzare aggregazioni trasversali;
ROLAP lavora direttamente con database relazionali; i dati e le tabelle delle dimensioni sono memorizzati come tabelle relazionali e nuove tabelle sono create per memorizzare le informazioni di aggregazione.
* ''slicing'': è l'operazione di ''estrazione'' di un subset di informazioni dall'aggregato che si sta analizzando. L'operazione di slicing viene eseguita fissando uno specifico valore per una delle dimensioni del "cubo", estraendo quindi una "fetta" e ottenendo un nuovo cubo con una dimensione in meno rispetto a quello di partenza;
* ''dicing'': è l'operazione di ''estrazione'' di un subset di informazioni dall'aggregato che si sta analizzando. L'operazione di dicing viene eseguita quando l'analisi viene focalizzata su un sottoinsieme del "cubo" avente particolare interesse per l'analista. In alcuni casi l'operazione di dicing può essere "fisica" nel senso che non consiste solo nel filtrare le informazioni di interesse ma anche nell'estrarle dall'aggregato generale per distribuirne i contenuti;
* ''drill-down'': è l'operazione di "esplosione" del dato nelle sue determinanti. L'operazione di drill-down può essere eseguita seguendo due diversi percorsi: la ''gerarchia'' costruita sulla dimensione di analisi (p. es.: passaggio dalla famiglia di prodotti all'insieme dei prodotti che ne fanno parte) oppure la ''relazione matematica'' che lega un dato calcolato alle sue determinanti (p. es.: passaggio dal margine al ricavo e costo che lo generano). È comprensibile l'importanza di tale operazione ai fini analitici in termini di comprensione delle determinanti di un dato;
* ''drill-across'': è l'operazione mediante la quale si naviga attraverso uno stesso livello nell'ambito di una gerarchia. Come visto precedentemente, il passaggio dalla famiglia di prodotti alla lista dei prodotti è un'operazione di drill-down, il passaggio da una famiglia a un'altra famiglia è un'operazione di drill-across;
* ''drill-through'': concettualmente simile al drill-down, è l'operazione mediante la quale si passa da un livello aggregato al livello di dettaglio appartenente alla base dati normalizzata. Molti venditori proclamano che i loro prodotti hanno la capacità, mediante l'operazione di drill-through, di passare dal data warehouse ai sistemi transazionali alimentanti. Tale operazione, anche se tecnicamente fattibile sotto una serie di condizioni abbastanza rilevanti, è poco sensata per le problematiche di sicurezza e di performance indotti nei sistemi transazionali stessi.
 
=== Punti deboli ===
HOLAP utilizza tabelle relazionali per memorizzare i dati e le tabelle multidimensionali per le aggregazioni "speculative".
I punti deboli degli strumenti OLAP sono:
 
* Inaccessibilità/difficoltà ad accedere al livello atomico del dato: gli strumenti OLAP funzionano molto bene su dati di sintesi, non è conveniente usarli su dati analitici;
Ogni tipologia presenta vantaggi, ma non c'è un accordo completo relativamente a questi vantaggi .
* Sistemi di [[backup]], restore, security, [[rollback]] non molto sofisticati o inesistenti: pur essendo in molti casi dei motori database, gli strumenti OLAP non hanno ancora raggiunto il livello di completezza dei database relazionali, principalmente perché, a differenza di questi ultimi, non hanno un paradigma concettuale di riferimento come la [[12 regole di Codd|teoria di Codd]], ma sono soggetti alle interpretazioni dei diversi produttori software;
 
* Richiede una struttura denormalizzata per funzionare in maniera efficiente: i motori OLAP generano grandi masse di dati per il semplice fatto che per migliorare le prestazioni di accesso sono costretti a memorizzare chiavi ridondanti e sommarizzazioni;
MOLAP risulta la scelta migliore per quantità di dati ridotte, perché è più veloce nel calcolare le aggregazioni e restituire risultati, ma crea enormi quantità di dati intermedi.
* Possibile proliferazione del codice [[SQL]]: nel caso in cui il database su cui vengono effettuate le analisi OLAP non sia multidimensionale (MOLAP) ma sia relazionale (ROLAP), ognuna delle operazioni sopra descritte (''slicing'', ''dicing'', ''drilling'') provoca la generazione e l'esecuzione di [[query]] SQL estremamente complesse, che richiedono molte risorse di elaborazione.
 
ROLAP è considerato più scalabile e necessita di minor spazio disco e uso di [[RAM]], ma è il più lento nella fase di creazione tabelle e nel produrre il risultato delle interrogazioni.
 
HOLAP si pone nel mezzo, è in grado di essere creato più velocemente di ROLAP ed è più scalabile di MOLAP.
 
La difficoltà nell'implementazione di un database OLAP parte dalle ipotesi delle possibili interrogazioni utente; scegliere la tipologia di OLAP, lo schema e creare una base dati completa e consistente è un'operazione piuttosto complicata. Decisamente complicata per una base di utenza ampia ed eterogenea.
 
Molti prodotti moderni forniscono una quantità enorme di schemi ed interrogazioni pre-impostate per venire incontro alle esigenze degli utenti.
 
== Prodotti ==
Il primo prodotto che permetteva interrogazioni OLAP è stato rilasciato da Ted[[Edgar CoddF. Codd]] nel [[1970]] (ed acquisito da [[Oracle Corporation|Oracle]] nel [[1995]]). Comunque il termine OLAP non venne utilizzato fino al [[1993]], quando fu coniato da Ted Codd, che viene peraltro considerato il "padre dei database relazionali". Le ricerche di Codd furono tuttavia finanziate dalla Arbor, che rilasciò un anno prima il proprio prodotto OLAP ''Essbase'' (noto in seguito con il nome di ''Hyperion'', software recentemente acquisito da Oracle dal marzo 2007).
 
Altri prodotti molto conosciuti sono [[SAS enterprise intelligence platform]], IBM DB2 OLAP Server (una versione [[Original Equipment Manufacturer|OEM]] di Essbase), [[SAP BW(azienda)|SAP]] BW, [[Business Objects]], DataTime, [[Cognos]], [[MicroStrategy]], Lilith (Hicare), Sybase IQ, Microsoft Analysis Services (precedentemente chiamato OLAP Services) che è parte di [[Microsoft SQL Server]], [[Oracle Business Intelligence Suite]], Brio, [[DssMUSA di IG Consulting]], BIExplore di Sediin, Information Builders, QlikView ed altri ancora.
Il primo prodotto che permetteva interrogazioni OLAP è stato rilasciato da Ted Codd nel [[1970]] (ed acquisito da Oracle nel 1995). Comunque il termine OLAP non venne utilizzato fino al 1993, quando fu coniato da Ted Codd, che viene peraltro considerato il "padre dei database relazionali". Le ricerche di Codd furono tuttavia finanziate dalla Arbor, che rilasciò un anno prima il proprio prodotto OLAP Essbase (noto in seguito con il nome di Hyperion, software recentemente acquisito da Oracle).
 
Altri prodotti molto conosciuti sono [[SAS enterprise intelligence platform]], IBM DB2 OLAP Server (una versione [[Original Equipment Manufacturer|OEM]] di Essbase), [[SAP BW]], [[Business Objects]], DataTime, [[Cognos]], [[MicroStrategy]], Sybase IQ, Microsoft Analysis Services (precedentemente chiamato OLAP Services) che è parte di [[Microsoft SQL Server]], [[Oracle Business Intelligence Suite]], Brio, [[DssMUSA di IG Consulting]], Information Builders, QlikView ed altri ancora.
 
== Curiosità ==
 
== Voci correlate ==
E' il contrario della parola [[PALO]]
* [[ca:Cubo OLAP]]
 
== Altri progetti ==
[[Categoria:Database]]
{{interprogetto}}
[[Categoria:Software per base dati]]
 
== Collegamenti interniesterni ==
* [{{cita web|http://www.olapreport.com |Sito The Olap Report, curato da Nigel Pendse]}}
* [http://en.wikipedia.org/wiki/OLAP Voce: Online analytical processing]
* {{cita web | 1 = http://www.survey.com/olap | 2 = The OLAP Survey, rassegna annuale indipendente relativa al mondo OLAP | accesso = 17 agosto 2007 | urlarchivio = https://web.archive.org/web/20071014211706/http://www.survey.com/olap/ | dataarchivio = 14 ottobre 2007 | urlmorto = sì }}
* [{{cita web|http://www.datatime.eu/ |DataTime Universal: ROLAP product]}}
* [{{cita web|http://www.olap.it/Books.htm |Sito www.olap.it, curato da Andrea Vincenzi, in lingua italiana e inglese]}}
* {{en}}cita [web|http://dev.hyperion.com/resource_library/articles/olap_solutions.cfm |A chapter from Erik Thomsen's book ''OLAP Solutions: Building Multidimensional Information Systems'', 2nd Edition]|lingua=en}}
* {{cita web|url=http://rafware.it/ias/index.php?id=2706|titolo=Introduzione alla gestione dei dati multidimensionali in XBRL|urlmorto=sì|urlarchivio=https://web.archive.org/web/20071009052323/http://rafware.it/ias/index.php?id=2706|dataarchivio=9 ottobre 2007}}
 
{{Controllo di autorità}}
==Collegamenti esterni==
{{portale|informatica}}
* [http://www.olapreport.com Sito The Olap Report, curato da Nigel Pendse]
* [http://www.survey.com/olap The OLAP Survey, rassegna annuale indipendente relativa al mondo OLAP]
* [http://www.datatime.eu/ DataTime Universal: ROLAP product]
* [http://www.olap.it/Books.htm Sito www.olap.it, curato da Andrea Vincenzi, in lingua italiana e inglese]
*{{en}} [http://dev.hyperion.com/resource_library/articles/olap_solutions.cfm A chapter from Erik Thomsen's book ''OLAP Solutions: Building Multidimensional Information Systems'', 2nd Edition]
* [http://rafware.it/ias/index.php?id=2706 Introduzione alla gestione dei dati multidimensionali in XBRL]
{{Databases}}
 
[[deCategoria:Online Analytical Processing| ]]
[[be:Аператыўная аналітычная апрацоўка дадзеных]]
[[ca:OLAP]]
[[cs:OLAP]]
[[de:Online Analytical Processing]]
[[en:Online analytical processing]]
[[es:OLAP]]
[[fr:OLAP]]
[[ja:OLAP]]
[[nl:OLAP]]
[[pl:Online analytical processing]]
[[pt:OLAP]]
[[ru:OLAP]]
[[zh:線上分析處理]]