ARCHITETTURE PER I SISTEMI INFORMATIVI AZIENDALI: DBMS TRANSAZIONALI, DATA MART, DW

•7 Dicembre 2008 • Lascia un Commento

Come dice una recente pubblicità della 3..“il telefonino ha cambiato il modo di vivere”..è verissimo…e allora l’informatica??? penso che sia arrivata anche a cambiare i nostri pensieri, il nostro modo di procurarci le informazioni…insomma…tutto quello che ci circonda!Abbiamo già parlato nel blog di DATI INFORMAZIONI e CONOSCENZA. Ma cosa veicola le informazioni che noi ricerchiamo e accumuliamo? È semplicemente un sistema informativo.
Questo argomento, personalmente, mi sta parecchio a cuore dato che fu argomento di discussione della mia tesi di laurea: un aspetto importante che va sottolineato è la distinzione profonda tra sistema informativo e sistema infobermau1rmatico (vi consiglio qualche libro del Prof. Camussone su questo argomento appunto) . Il Sistema Informativo è costituito dall’insieme delle informazioni utilizzate, prodotte e trasformate da un’azienda durante l’esecuzione dei processi aziendali, dalle modalità in cui esse sono gestite e dalle risorse, sia umane, sia tecnologiche, coinvolte. Non va confuso con il sistema informatico, che indica la porzione di sistema informativo che fa uso di tecnologie informatiche e automazione. Diverso, invece, è il Sistema Informatico, che è invece una parte del sistema informativo appena citato. È una parte molto delicata di una organizzazione (in questo caso parliamo di organzizzaione aziendale) che include in se la sezione software e hardware.

Indipendentemente dalla loro composizione specifica, i sistemi informativi aziendali svolgono, secondo combinazioni differenti, tre funzioni principali: acquisizione di dati e comunicazione, registrazione (storage) e ricerca dei dati, trattamento e reporting

Parliamo ora delle  principali architetture per i nostri sistemi informativi aziendali:

Database e Data Warehouse rappresentano gli strumenti principali tramite i quali realizzare l’archiviazione e il recupero dei dati, sui quali poggia la quasi totalità delle altre applicazioni.  È un sistema software in grado di gestire collezioni di dati molto grandi e condivise, in modo che applicazioni e utenti diversi possano accedervi anche simultaneamente, secondo le opportune modalità. Oltretutto deve garantire affidabilità, intesa come la capacità del sistema di conservare intatta la base di dati anche in caso di malfunzionamenti hardware e software, e privatezza, intesa come la capacità di vincolare le azioni sui dati in funzione dei permessi associati alle persone che le eseguono. DBMS possono essere adeguati molto facilmente al cambiamento delle richieste informative dell’organizzazione. Possono essere aggiunte al database nuove categorie di dati senza dover stravolgere il sistema esistente.
dw1La crescita dell’importanza dell’analisi dei dati ha portato a una separazione architetturale dell’ambiente transazionale da quello dedicato all’analisi rappresentato dai Data Warehouse (DW= depositi di dati). Sono destinati a conservare grandi quantità di dati con un livello di profondità temporale molto elevato (a differenza dei DBMS che hanno una “capienza” limitata ai dati correnti e non “storici” dell’azienda). Si sfalda anche il ruolo di immagazzinamento dati: il DBMS serve come contenitore di dati facilemente “uploadabile”, il DW è invece impostato maggiormente come database consultabile nel tempo.
A loro volta, i DW possono essere suddivisi nuovamente in sottoinsiemi di dati specificamente selezionati per fini di analisi, i quali prendono il nome di Data Mart (DM). I DM sono, quindi, delle collezioni di dati con una profondità temporale elevata e relativi ad uno specifico obiettivo di analisi. Poiché contengono meno dati rispetto ad un DW, le operazioni di analisi sui DM sono in genere più veloci.

APPROFONDIMENTI SU SQL: CLAUSOLE where, having, group by

•7 Dicembre 2008 • Lascia un Commento

sql33Cercherò di essere breve su questa argomentazione nonché approfondimento sull’SQL:

  • WHERE: specifica una condizione di ricerca per la restrizione delle righe restituite. Where limita le selezioni ed include solo le righe che corrispondono ai criteri specificati. L’utilizzo generale è: WHERE campo predicato valori
  • HAVING: rappresenta un vincolo sui dati risultanti dall’operazione di raggruppamento. Il suo funzionamento è molto simile a quello della clausola WHERE ma anziché operare sui campi del database opera sui raggruppamenti
  • GROUP BY: tutti i campi devono rappresentare un raggruppamento, dettato da un’aggregazione oppure da una clausola GROUP BY. Questa è la ragione per cui questa clausola costituisce il complemento delle funzioni

COSA SONO I DATA WAREHOUSE E COSA LI DIFFERENZIA DAI SISTEMI OLTP

•7 Dicembre 2008 • Lascia un Commento

datawarehouse-pharmamarketingUn Datawarehouse è un archivio informatico contenente i dati di un’organizzazione. Sono progettati per consentire di produrre facilmente relazioni ed analisi.
Vengono considerati DW anche gli strumenti per localizzare, estrarre, trasformare, gestire e caricare i dati. Requisiti fondamentali di un DW sono: l’ integrazione dei dati raccolti, l’orientamento al soggetto (temi aziendali specifici piuttosto che applicazioni o funzioni), variabilità nel tempo, non volatilità dei dati.

I sistemi di datawarehouse sono OLAP (On Line Analytical Processing) e la struttura dati OLAP  è costituita da poche tabelle non normalizzate. I sistemi OLTP, invece, sono On Line Transaction Processing e si differenziano dai sistemi OLAP per diverse caratteristiche:

Accuratezza:

  • OLTP sul dettaglio
  • OLAP sul consolidato

Copertura:

  • OLTP funzionale
  • OLAP Integrata

Ampiezza temporale/aggiornamento:

  • OLTP limitata, immediato
  • OLAP vasta (giorni o settimane)

Granularità:

  • OLTP dettagli
  • OLAP dettagli e aggregati

Query ad hoc:

  • OLTP rare
  • OLAP frequenti

ANSI SQL

•7 Dicembre 2008 • Lascia un Commento

CB067676Abbiamo già parlato dell’SQL, del suo fondatore Chamberlin. Vediamo ora di parlare dell’ANSI SQL (Structured Query Language della American National Standard Institute). È uno “standard” che permette a tutti di parlare la stessa lingua, ed appena è nato sono nati così tanti dialetti che non parlano l’ uno con l’altro (purtroppo è la relatà!).

L’SQL è composto da tre livelli di conformità: Entry, Intermediate e Full

1) Livello entry: costituisce un sotto insieme del livello intermediate (abbastanza simile a SQL-89).
2) Livello intermediate: costituisce un sotto insieme del livello full SQL e contiene le caratteristiche ritenute più importanti per rispondere alle esigenze del mercato (supportato dai DBMS commerciali).
3) Livello full: rappresenta lo standard SQL completo

Si può intendere che il primo sia il livello di compatibilità minima e l’ultimo rappresenti la compatibilità totale.

I più diffusi linguaggi SQL oggi sono (ovviamente) quelle dei più diffusi database, cioè

  • Oracle SQL
  • Transact – SQL
  • PostgreSQL
  • MySQL
  • SQLInformix
  • DBII SQL
  • ecc…

Ovviamente sebbene TUTTI dicano che il loro linguaggio e’ ANSI Compliant (compatibile con l’ ansi SQL) in realtà tutti hanno differenze sostanziali l’ uno con l’altra. Non potendo fare un corso su ognuno di essi (in primis perché sinceramente non li conosco) noi faremo invece riferimento all’ ANSI SQL.

PARTICOLARITA’ RISCONTRATE LAVORANDO CON SQL IN ACCESS: DIFFERENZE RISPETTO AGLI ALTRI DBMS

•6 Dicembre 2008 • Lascia un Commento

accesslogoChi di voi non conosce Microsoft Access? Ma qualcuno di voi a mai provato ad usarlo? Bene…diciamo che per esperienza personale non è uno dei programmi più facili da usare, ma con un po’ di dedizione ci si può riuscire molto bene ottenendo ottimi risultati per catalogare tutto ciò che desiderate. La sua flessibilità è comunque notevole, e i campi di utilizzo molteplici: dalla semplice creazione di una rubrica elettronica per la gestione e l’archiviazione di indirizzi e numeri telefonici, alla gestione delle vendite, del parco clienti o fornitori, dall’aggiornamento e gestione di un magazzino alla gestione della contabilità o all’analisi di dati statistici, dalla creazione di un qualsiasi tipo di archivio con la possibilità di inserirvi anche immagini, foto o suoni alla realizzazione e all’aggiornamento di schede informative utilizzabili, ad esempio, per un progetto di ricerca, e così via. Access è un sistema di gestione di database relazionale. Access oltre alla possibilità di visualizzare le informazioni sullo schermo, consente di stamparle con diversi formati o di ricercare un particolare dato:  l’aspetto forse più rilevante è la velocità e la semplicità con cui queste operazioni possono essere svolte.

È, come già detto, uno dei RDBMS più diffusi per la semplicità di uso e perché viene distribuito con il pacchetto Microsoft Office.
Alcune delle peculiarità del dialetto SQL adottato dalla Microsoft per Access sono:

- La clausola top può essere usata per selezionare un certo numero di tuple dal risultato.

- Vengono usate le parentesi quadre per racchiudere gli identificativi di tabelle e attributi.

- L’operatore join deve essere sempre qualificato con il termine inner od outer.

- La valutazione dell’operatore count è diversa: se si dà come argomento un attributo, non vengono restituiti i distinti valori dell’attributo, bensì il numero dei valori non nulli.

- L’opzione distinct non è riconosciuta.

- Il carattere jolly per indicare la parte di campo da confrontare con una condizione data in Access diventa “*” invece di “%”.

- Il dialette SQL di Access accetta sia l’apice singolo (’) che i doppi apici (”) per identificare le stringhe alfanumeriche.

Per le stringhe riportanti le date MS Access fornisce la possibilità di adottare la notazione latina GG/MM/AAAA mentre per alcuni DBMS di origine anglosassone ciò non è possibile. Nei comandi le date vanno racchiuse nell’apice songolo (’) per la maggior parte dei dialetti SQL, mentre per il dialetto Access si usa il cancelletto (#).