sabato 5 giugno 2010

Fermarsi a riflettere su alcuni Concetti: Reportistica, Denormalizzazione e importanza della Query

La reportistica all’interno di una qualsiasi azienda risulta essere una fase delicata che necessita di una particolare attenzione. Creare un report significa infatti stendere un documento che presenti in maniera esaustiva quell’insieme di informazioni ricavate dall’analisi dei dati provenienti dai processi aziendali al fine di renderle disponibili a tutti gli stakeholdes dell’impresa.





L’alta mole di dati generati dai processi aziendali viene costantemente memorizzata all’interno di grandi archivi appunto nei DBMS, organizzati in database contenenti tabelle formate da campi e record, tabelle correttamente relazionate tra loro.

Una corretta memorizzazione deve certamente far leva su un processo di normalizzazione del dato, processo che consente di eliminare la ridondanza delle informazioni e generare così un database logicamente più leggero e più facilmente gestibile. E’ facile ora immaginare come la stesura di un qualsiasi report necessiti di un processo che ripristini quella ridondanza prima eliminata: questa attività prenderà il nome di Denormalizzazione del DBMS.
I vantaggi offerti dal processo di normalizzazione verranno quindi certamente persi: l’informazione verrà duplicata, generando così un aumento della memoria occupata e, se errata, dovrà essere corretta in molti più punti, con tutti gli errori che potrebbero essere generati. Bisogna però sottolineare come l’attività di reportistica basata su un processo di denormalizzazione, fa si che la presentazione dei dati e la loro ricerca possano avvenire in modo molto più rapido e intuitivo: l’informazione sarà infatti più accessibile e la struttura generata sarà più chiara rispetto a quella ottimizzata per la gestione dei dati.

Il modo migliore per estrarre dati da un DBMS è certamente l’uso di Query: si tratta di un’interrogazione ad un database che permette di ottenere dati contenuti in uno o più database. Si possono così creare delle nuove tabelle che ricostruiscono dati presenti in tabelle diverse all’interno del database, tabelle che certamente devono essere legate da relazioni ben fatte.
Una qualsiasi query sfrutta il linguaggio SQL, acronimo di Structured Query Language (linguaggio di interrogazione strutturato), che permette di immettere, estrarre, cancellare e aggiornare dati contenuti in un DBMS. Tale linguaggio nasce dall’evoluzione di SEQUEL, sviluppato da IBM Research nel 1974, poi commercializzato nel 1981 con il nome di SQL/DS. Basilare per la suaevoluzione e commercializzazione è stato il processo di standardizzazione avviato a partire dal 1986 dall’ANSI: si mirava così a omogeneizzare i diversi linguaggi utilizzati dalle diverse case (Microsoft, Oracle, ecc.) per la gestione dei DBMS relazionali. Nonostante ciò quest’ultime hanno nel tempo generato delle sostanziali implementazioni nelle sintassi dei programmi che sfruttano il linguaggio SQL al fine di differenziarsi sul mercato: alcuni programmi differiscono per l’uso di apici piuttosto che di virgolette; altri, quali access, consente l’uso di parentesi quadre; altri ancora non tollerano la presenza di spazi nei nomi dei campi. Da ciò ne consegue che le diverse implementazioni sono solitamente incompatibili tra loro e quindi il processo di omogeneizzazione non è stato mai portato del tutto a termine. Il metodo migliore per estrarre, trasformazione e caricare in un batabase dati provenienti dalle più svariate fonti sta nell’uso di ETL tools (acronimo di extract, transform and load). Tramite questi software si riesce ad estrarre dati da un DBMS, dati che verranno poi analizzati e presentati mediante software di reportistica.

Un REPORT conterrà certamente una matrice di dati definita dal risultato di quell’insieme di query effettuate su un database. La matrice è un qualcosa che non esiste nel mondo reale ma viene creata o per fini didattici o per effettuare una presentazione di dati. Ciò che in statistica viene definito matrice di dati, in informatica è il risultato di un’estrazione da un DBMS. In ambito statistico la matrice di dati sarà quindi una sorta di rettangolo contenente tante righe quante sono le unità di analisi considerate e tante colonne quante sono le variabili studiate; ogni singola risposta sarà poi traformata in codici inseriti poi nella corretta casella (tutto ciò permette quindi di effettuare un più rapido e corretto inserimento delle risposte date dagli intervistati al questionario e una conseguente celerità nelle operazioni di elaborazioni statistica dei dati).





SQL (Structured Query Language) è un linguaggio di interrogazione per database progettato per leggere, modificare e gestire dati memorizzati in un sistema basato sul modello relazionale, per creare e modificare schemi di database, per creare e gestire strumenti di controllo ed accesso ai dati. SQL è un linguaggio per interrogare e gestire basi di dati mediante l'utilizzo di costrutti di programmazione denominati query. La prima versione fu sviluppata da IBM all'inizio degli anni settanta. Chiamata originariamente SEQUEL era progettata per manipolare dati memorizzati nel database relazionale ideato e brevettato da IBM. Nel 1986 l' ANSI lo standardizzò con la sigla SQL-86. Negli anni successivi sono state rilasciate altre versioni, riconosciute anche dall' ISO. La maggior parte dei sistemi per la gestione di database implementano questi standard ed aggiungono funzionalità aggiuntive proprietarie. Con SQL si leggono, modificano, cancellano dati e si esercitano funzioni gestionali ed amministrative sul sistema dei database. La maggior parte delle implementazioni dispongono di interfaccia alla linea di comando per l'esecuzione diretta di comandi, in alternativa alla sola interfaccia grafica GUI. Originariamente fu progettato come linguaggio di tipo dichiarativo, successivamente si è evoluto con l'introduzione di costrutti procedurali, istruzioni per il controllo di flusso, tipi di dati definiti dall'utente e varie altre estensioni del linguaggio. A partire dalla definizione dello standard SQL:1999 molte di queste estensioni sono state formalmente adottate come parte integrante di SQL nella sezione SQL/PSM dello standard. Critiche più frequenti rivolte ad SQL: allcune critiche riguardano la mancanza di portabilità del codice fra vendors diversi, inoltre il modo inappropriato con cui vengono trattati i dati mancanti (Null), e la semantica a volte inutilmente complicata



Nessun commento:

Posta un commento