Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
Introduzione
Ruolo del software quale complemento necessario delle facoltà
intellettuali dell'essere umano
Il progresso informatico è un fenomeno affascinante che meriterebbe di essere studiato da
angolazioni diverse da quelle usuali. Intanto una constatazione che può sembrare banale: con
l’informatica l’uomo è divenuto il Creatore di menti standardizzate. Agli albori della cibernetica le
funzioni che un computer poteva svolgere erano alquanto semplici. Oggigiorno i computer
svolgono funzioni altamente sofisticate in moltissimi campi applicativi: diremo che dal
protomentale la mente degli elaboratori è passato ad uno stato psichico progredito in cui riescono ad
eseguire, in modo estremamente veloce, compiti ripetitivi ed applicare alcune variabili predefinite
dal Creatore.
[Alessandra Cannarsa]
Derrick de Kerckhove è tra i principali studiosi che hanno approfondito l’argomento delle
connessioni tra le tecnologie e la mente umana, investigando le implicazioni determinate dall’uso
degli strumenti tecnologici sullo sviluppo della psiche e sulla definizione di nuovi modelli mentali,
in un approccio che considera i mezzi di comunicazione “come tecnologie che, investendo il
linguaggio e il modo in cui lo utilizziamo, coinvolgono anche le nostre strategie di elaborazione
delle informazioni” .
[Francesca Pileggi]
Secondo McLuhan (1964), infatti, “ogni tecnologia è l’estensione e il prolungamento del corpo e
del cervello dell’uomo”. L'uomo ha sentito la necessità si creare degli strumenti come i software
probabilmente perché è arrivato ad un punto in cui si è reso conto della grande difficoltà di
elaborare e memorizzare la grande quantità di dati che caratterizzano i processi della nostra epoca.
[Manuela Fava]
Facciamo un gioco, proviamo a ricordare questo semplice elenco di numeri di telefono:
Maria
3334466534
Teresa
3334455889
Alberto
3498899009
Giuseppe
3218877665
Filippo
3378877665
1
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
Bene: sono solo 5 elementi di un potenziale database, adesso che li abbiamo memorizzati,
ripetiamoli ad un nostro amico... beh siete sicuri di non aver dimenticato qualcosa? e soprattutto,
siete sicuri di poter ricordare questo elenco nel tempo? Questo semplice esercizio dimostra, in modo
inequivocabile, come la mente umana pur avendo notevoli capacità cognitive, abbia dei limiti di
fronte all'immagazzinamento di brevi e lunghi elenchi di dati, specie nel caso in cui non siano
interessanti.
[Luciana Zanfino]
Si può senz'altro affermare, dunque, che il computer e i software si configurano come potenti alleati
della mente umana, in grado di estendere notevolmente le nostre abituali capacità cognitive. [40]
Ma se la caratteristica del software è la capacità di immagazzinare una quantità pressoché infinita di
dati, oltre che di elaborarli ed eseguire su di essi calcoli e analisi sofisticate, la mente umana è
invece dotata di creatività, di intuizione, interpretazione soggettiva e reazione agli imprevisti. La
mente umana inoltre, procede per concetti e non per catalogazione o calcolo.
E’ molto interessante la descrizione del loro diverso funzionamento attraverso il gioco degli scacchi.
Diversi giocatori si sono confrontati con software di gioco potentissimi vincendo. E questo non
perché il giocatore effettua (impossibili) calcoli mentali su tutte le possibili mosse e contromosse,
ma compie valutazioni basata su concetti che invece il computer non è in grado di considerare come
il vantaggio, l’aggressività, l’iniziativa, la disorganizzazione dell’avversario. Inoltre la macchina è
in grado di rispondere con esattezza solo se si trova di fronte ad una situazione che è compresa nel
proprio database. L’uomo, invece, di fronte ad una situazione nuova, in qualche modo la classifica e
reagisce alla situazione imprevista.
[Stefania Mastronuzzi]
Oggi sono ancora in tanti a dimostrarsi scettici nei confronti della cosiddetta “Intelligenza
Artificiale” , temendo un impoverimento dell’immagine dell’uomo e dei suoi valori, una sua
impotenza di fronte alle sfide della vita. Questo storico dibattito dimostra come, in realtà, troppo
spesso gli esseri umani finiscono per diventare vittima delle loro stesse creazioni, cercando di
sfidare fino ai limiti del possibile la natura: non bisogna chiedere alla tecnologia di annullare la
mente umana, bensì di rappresentare per essa un valido aiuto.
[Mariateresa Cascone]
2
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
Documenti Aziendali
Il formato ideale per il documento software di relazione aziendale
(soggetto a revisioni nel tempo): Presentazioni, relazioni, progetti.
La redazione di un report aziendale non è un momento facilmente gestito da dipendenti e manager.
L'organizzazione del documento in tutte le sue parti, infatti, è parte intergrante dell'immagine e
dello status di un'azienda, entrambi componenti della comunicazione interna.
[Luciana Zanfino]
Le Organizzazioni sono unità sociali che interagiscono con l’ambiente esterno e con esso
comunicano. Il panorama aziendale moderno risulta però decisamente mutato rispetto al passato.
Importanti cambiamenti organizzativi hanno difatti toccato da vicino il mondo aziendale, soggetto a
continue fusioni, incorporazioni, ristrutturazioni e ridefinizioni di business. Questa condizione,
assieme alla consapevolezza dell’importanza di rendere partecipe della vita aziendale ogni singolo
impiegato, ha esplicitato il bisogno di comunicare il cambiamento all’interno dell’azienda, prima
ancora di veicolarlo all’esterno. Sono andati così strutturandosi innovativi modelli di
organizzazione orientati alla comunicazione, per diffondere in maniera chiara ed impattante notizie,
proposte e progetti al personale e agli stakeholders. I format di documento aziendale che meglio
rispondono ai moderni dettami del marketing e della comunicazione interna, sebbene siano
altamente diversificati, presentano una caratteristica comune: sono accomunati dalle identity
guidelines, ovvero da linee guida da seguire per garantire la coerenza di formato sulla base della
corporate identity. Quanto trasmesso visivamente o graficamente tramite ogni pezzo di carta
pubblicato, dal biglietto da visita alla lettera, dalla pagina pubblicitaria alla newsletter tecnica o
commerciale, dalla relazione annuale sull’andamento dei profitti, alla pubblicazione dei più
disparati report aziendali: è d’obbligo un corretto uso dei font aziendali (quando usare quelli con le
grazie e senza grazie, il grassetto, corsivo, ecc., dimensioni, stili standard per titoli, titolini, corpo
testo, ecc.), uso dei margini e degli spazi, colore Pantone corretto, di modo che tutto sia
riconducibile a prima vista ad una determinata azienda. Fondamentale in tal senso è la presenza del
marchio logo e del descriptor, elementi base per l’immediata riconducibilità del documento
all'azienda e ai valori che essa detiene. Anche la nostra università possiede un preciso programma di
identità
visiva,
che
è
possibile
visionare
cliccando
sul
seguente
link:
http://www.uniroma1.it/ufficiostampa/identita.php . Tornando alla comunicazione interna, essa
serve principalmente per condividere il progetto organizzativo (la missione e la visione
dell'organizzazione), diffondere il know how e organizzare il lavoro. Gli strumenti di
comunicazione interna più diffusa sono gli House Organ, le Newsletter, i manuali, operativi, il Fact
book/bilancio, le circolari e gli ordini di servizio, i Position paper, la reportistica e i progetti, le
relazioni.
Le relazioni aziendali riguardanti il fatturato annuo, le politiche adottate, i progetti sposati, o
qualunque altro aspetto di interesse per l’azienda, debbono essere in primo luogo chiare e
3
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
dettagliate. È preferibile evitare uno stile retorico ed è necessario tenere bene in conto le
competenze tecniche e il know how del pubblico di riferimento in modo da confezionare una
relazione comprensibile a tutti. La stessa, nel rispetto dei canoni dell’ identità visiva, sarà
impaginata utilizzando il font aziendale, i colori e la formattazione istituzionali, sarà affiancata dal
marchio logo e veicolata in formati testuali laddove se ne faccia una diffusione cartacea o tramite
mail, oppure in ppt se la stessa dovrà essere presentata da un responsabile ad una riunione così
come ad un meeting.
I medesimi accorgimenti comunicativi dovranno essere applicati a tutte le tipologie di documenti
aziendali. Particolare attenzione va tuttavia ai cosiddetti elementi intangibili della comunicazione,
un surplus emotivo che colpisca il fruitore, veicolando la vision e la mission aziendali, e
trasmettendo chiaramente il senso di appartenenza al team aziendale e la preziosità del singolo
contributo.
[Mariangela Vecchiarini]
4
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
Terminologia Statistica e Raccolta dei Dati
Riflessioni sulle relazioni tra dati, fatti, informazioni, conoscenza.
Interrelazioni, differenze, forme di manipolazione.
Dati, informazione e conoscenza: tre termini spesso utilizzati come sinonimi, ma che in realtà, oltre
ad essere dotati di autonomia semantica, in ambito aziendale, sono collocati su gradini differenti
nella "Piramide del Knowledge Management" - modello gerarchico che sottolinea la stretta
interconnessione e interdipendenza dei diversi livelli.
[Valeria Agrillo]
Il dizionario Garzanti fornisce la seguente definizione di dato: ciò che è conosciuto o accertato
(almeno per quello che interessa a noi); per informazione: elemento che consente di avere
conoscenza di fatti situazioni ecc.
[Giuseppe Cecchini]
Il dato (fatto) è un elemento base, una descrizione elementare di una cosa, transazione, avvenimento
e altro. L’informazione invece riguarda il contesto in cui i dati sono raccolti, la loro codifica e
quindi il significato attribuito a tali dati. A partire dallo stesso dato si possono trarre informazioni
diverse, quindi risulta fondamentale la corretta codifica di un’informazione, per essere il più
possibile chiara e comprensibile.
[Simona Rauseo]
L'informazione consegue al dato e alimenta la conoscenza
[Mariarita Marco]
La conoscenza è la consapevolezza e la comprensione dei fatti, verità o informazioni ottenuti
attraverso l’esperienza o l’apprendimento. Rappresenta l’autocoscienza del possesso delle
informazioni connesse tra loro.
L’aspetto sostanziale della conoscenza è che mentre l’informazione può esistere indipendentemente
da chi la può utilizzare, e quindi può in qualche modo essere preservata su un qualche tipo di
supporto (cartaceo, informatico, ecc…), la conoscenza esiste solo in quanto esiste una mente in
grado di contenerla.
Risulta quindi chiaro che il ruolo del comunicatore non è altro che quello di procurarsi i dati dai
quali trarre informazioni quanto più possibile oggettive e quindi avere la giusta conoscenza.
[Simona Rauseo]
5
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
La conoscenza è un bene riproducibile,accrescibile e vive oltre la memoria dell’uomo perché
supportata da essa.
[Francesca Alessi]
Alla base ci sono i dati, materiale “grezzo” e abbondante dell’informazione. Su un gradino più alto
c’è l’informazione, cioè dati selezionati e organizzati per essere comunicati. Poi la conoscenza, cioè
informazione rielaborata e applicata alla pratica. Al vertice troviamo la saggezza, conoscenza
distillata dall’intuizione e dall’esperienza.
[Giuseppina Brunetti]
Senza informazione libera non c'è trasparenza in quanto non c è possibilità di risalire alle fonti e
soprattutto di poter sbugiardare un'informazione falsa. Ciò che i nuovi mezzi di comunicazione
offrono, in particolar modo Internet, è proprio questa possibilità di andarsi a cercare le informazioni
quindi nuovi orizzonti di conoscenza.
[Claudia Marconi]
E mentre Internet cresce a vista d’occhio, il web 2.0 diventa termine di uso comune, i blogs attivi
sono decine di milioni, lo UGC (user-generated content) viene adottato da agenzie pubblicitarie,
cresce una sempre più evidente e paradossale scollatura fra l’immagine aziendale, il brand
“luccicante” venduto sui media e nelle interviste, e la realtà incontrata da chi con la tua azienda ci
deve interagire, anche solo per chiedere un rimborso, o una sostituzione. Spesso questa distanza
supera di gran lunga l’immaginazione più creativa.
In televisione, in stampa e sulle riviste la tua azienda appare come un cioccolatino di alto bordo,
ambito e desiderato da tutti quelli che contano. In tutti i suoi comunicati ufficiali, nelle pubblicità e
nelle press release, la tua azienda “perspira” professionalità, avanguardia e leadership da tutti i pori.
Tutta la strategia di comunicazione verte sul creare una facciata luccicante dove la tua azienda è
immodestamente sempre la migliore. Ma nella realtà fisica la “facciata”, il famoso brand, che hai
creato con tanto dispendio di energie e denari, comincia a vacillare. Sempre più spesso, le battutine,
i post sui blog, e le facce dei tuoi collaboratori ti hanno fatto intendere che qualcosa sta succedendo
di cui non hai ancora capito bene la natura. …e la facciata, da fortezza inespugnabile, ha cominciato
a prendere le sembianze di un castelletto di carte pronto a crollare al primo soffio di vento.
Perché?“Le risposte, sono tutte intorno a te.”
a) I consumatori non sono più un’audience passiva. Una volta, quando i mass media la facevano da
padroni, e la televisione era il mezzo principale per promuovere nuovi prodotti e servizi, i
consumatori erano trattati come bambini un po’ scemi ai quali dare suggerimenti ed indicazioni
utili. Oggi gli stessi bimbi, sono cresciuti e si parlano via chat su Skype dicendosi dove e quale
prodotto comprare. I difetti di un prodotto li conoscono e li scoprono on-line prima delle società che
producono il prodotto stesso, e spesso costruiscono e distribuiscono on-line soluzioni e rimedi
gratuiti che rendono più utili ed affidabili i prodotti di grandi case.
b) Da consumatori ad agenti di marketing. Ora, quelli che una volta chiamavamo consumatori, sono
individui attivi, informati, e coscienti delle scelte che fanno, in grado di comparare prodotti e
marche diverse, e di saper valutare servizi a confronto su criteri di non solo costo. Sono loro che
con il loro entusiasmo rendono il tuo prodotto un successo inaspettato e loro che condannano un
6
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
prodotto con milioni di euro di pubblicità al dimenticatoio nell’arco di pochi giorni. Sono loro che
fanno scelte sempre più frequentemente guidate da interessi ecologici, sociali e comunitari,
piuttosto che da desideri mirati esclusivamente a soddisfare il proprio piacere. Ricordalo: sono loro
che dettano le mode e che determinano il successo dei tuoi prodotti.
c) I media sono cambiati. L’era di comunicare a tutti, dall’alto in basso, usando il minimo comun
denominatore per raggiungere la fetta più grande possibile di possibili lettori/spettatori è finita.
Oggi i nuovi media, vengono dal basso… Si chiamano blogs, wikis, feed RSS, strumenti di
podcasting, web radio ed il live video streaming… possono fare tutto quello che fanno i grandi
network, senza i costi ed i condizionamenti che gli stessi inevitabilmente comportavano. E a meno
che il tuo target audience sia fatto solo da persone che seguono esclusivamente i mainstream media
(television, mainstream print and radio) dovrai presto fare i conti anche con loro.
[Alessandra Cannarsa]
Rapporto tra terminologia statistica e informatica: Record, Unita'
statistica, Carattere, Campo (field), Tabella (table), Matrice dei Dati,
Tabella di contingenza, Report, ...
GLOSSARIO TERMINI STATISTICI:
Campo di osservazione
Ambito della rilevazione definito dal "caso statistico", ossia dalla categoria di enti che hanno lo
stesso nome ("nome comune"). Gli enti rientranti nel campo e sottoposti a rilevazione si chiamano
unità statistiche. Da esse si distinguono le unità di rilevazione, strumenti prescelti per effettuarla nel
modo più soddisfacente. Unità statistiche sono, ad esempio, i censiti, unità di rilevazione le famiglie
di censimento, le convivenze, gli individui singoli nei casi speciali, o altro.
Unità campionaria
Unità che compone un campione. Conviene distinguere questa denominazione da quella di "unità di
campionamento", con la quale si intende una delle unità che compongono un aggregato che deve
essere sottoposto a campionamento.
Unità di rilevazione
Unità empirica su cui si basa la rilevazione. Non coincide necessariamente né con l’unità che
fornisce le informazioni ("unità d’informazione"), né con l’unità statistica cui, in ultima analisi, si è
interessati, ogni volta che essa ne raggruppa più d’una ("unità di analisi", "unità di tabulazione").
Nel censimento della popolazione, la famiglia di censimento è una delle unità di rilevazione; se la
famiglia è composta di un solo membro, l’unità di rilevazione coincide con l’unità statistica di
analisi, altrimenti si hanno tante unità di analisi quanti sono i membri della famiglia, in
corrispondenza di una sola unità di informazione (il capofamiglia).
7
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
Unità di tabulazione
Unità di cui, in una tabella, si presenta la classificazione secondo un assortimento di modalità di
caratteri. Il nucleo familiare, in un censimento demografico, non è l’unità statistica (il censito), né
una di quelle di rilevazione, ma una derivazione da una di queste (la famiglia di censimento)
attraverso il carattere "relazione col capofamiglia", e costituisce oggetto di classificazione e
pubblicazione in tavole specifiche.
Unità sperimentale
Unità sulla quale si effettua un esperimento statistico.
Unità statistica
Unità elementare della popolazione statistica. Può trattarsi di una persona fisica (il censito, il
dimesso da un istituto di cura), di una persona giuridica (l’impresa), di un’istituzione (un istituto
scolastico), di un evento (un matrimonio, una nevicata) etc.
Tabella di contingenza
Con riferimento a due variabili qualitative, è la tabella a due entrate (righe, colonne) nella quale
sono classificabili le osservazioni di un aggregato statistico. Nella tabella, l’elemento nij,
all’incrocio della riga i e della colonna j, è il numero di unità statistiche che possiedono
congiuntamente la modalità i-esima della variabile posta nel senso delle righe e la caratteristica jesima di quella posta nel senso delle colonne.
[ Alessandra Cannarsa]
Un Database Management System è un sistema software progettato per consentire la creazione e la
manipolazione efficiente di database. I DBMS rivestono una funzione di fondamentale importanza
in numerosi campi, dalla contabilità, alla gestione delle risorse umane, dalla finanza fino ai contesti
tecnici come la gestione di rete o la telefonia. Un tempo, a causa degli ingenti costi di gestione delle
ingombranti e complicatissime apparecchiature hardware, questi software erano a disposizione
unicamente delle grandi aziende ed istituzioni, mentre il loro utilizzo ha una diffusione capillare in
funzione della crescente necessità di creare report statistici aziendali. La gestione di questi
sofisticati software è appannaggio di Informatici e Statistici, i quali per complicare la vita a noi
studenti, utilizzano denominazioni differenti per indicare le medesime entità, applicando talvolta
sfumature di significato che giustifichino la differenza di nome! Retorica studentesca a parte,
passiamo ora al vaglio la terminologia statistica ed informatica, o comunque parte di essa.
[ Mariangela Vecchiarini]
All’interno dei DBMS i dati sono organizzati in database costituiti da tabelle. Le tabelle sono
organizzate in una serie di righe e di colonne. Le righe rappresentano, secondo il linguaggio
informatico, dei record cioè registrazioni di tipo individuale. Questi elementi vengono definiti dagli
statistici unità statistiche o entità. Nelle colonne avremo invece i campi o i field, cioè attributi o
variabili per gli statistici. La coppia attributo identità definisce un valore che per gli informatici
prende il nome di misura mentre per gli statistici quello di modalità.
La matrice dei dati può essere definita come l’insieme dei caratteri e delle unità statistiche
osservate. Da questa matrice è possibile passare alla tabella di contingenza o di associazione; in esse
8
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
si riportano frequenze congiunte tra più variabili. Queste tabelle rappresentano per gli statistici dei
punti di partenza; per gli informatici invece costituiscono dei report.
[Laura Rotatori]
Le tabelle di contingenza sono tabelle utilizzate in statistica per rappresentare e analizzare le
relazioni tra due o più variabili. In esse si riportano le frequenze congiunte delle variabili.
Generalmente le tabelle comprendono dati nominali raggruppati in categorie. Il caso più semplice
implica due variabili casuali dicotomiche: le righe della tabella rappresentano i risultati di una
variabile e le colonne i risultati dell'altra, i numeri all'interno della tabella sono le frequenze di una
particolare combinazione di categorie.
Il report aziendale è uno strumento che consente di valutare, attraverso le informazioni, lo stato di
salute di una qualsiasi società di capitali o di persone.
Esso è costituito da due elementi fondamentali, che sono:
- dimensioni: sono i caratteri che si misurano sulle unità statistiche; essi costruiscono la parte del
report che non cambia. Di solito quando si considera un report si cerca di non considerare più di due
dimensioni, per permettere all’ interessato di ottenere maggiori informazioni sul carattere che ha
scelto di studiare.
- misura: un’ elaborazione calcolata su unità statistiche; essa costituisce la parte quantitativa del
report che deriva dall’ aggregazione della matrice di dati (come la somma dei soldi spesa di un
cliente).
Per costruire un report è necessario considerare le relazioni che s’instaurano tra le diverse tabelle al
fine di riunificare l informazione.
In realtà il report è un documento aziendale che viene visualizzato da tutti gli stakeholders, interni
ed sterni dell’ azienda.
[Gabriella Fabrizio]
Formalizzazione dei concetti statistici di base: Unità,Caratteri,
Classificazione, Matrice dei dati, Dimensioni,Funzioni di
aggregazione, Misure, Spazio delle variabili, Cubo multidimensionale
Un collettivo statistico ( persone, oggetti, transazioni, ecc.) è costituito da unità statistiche. Per
ciascuna unità statistica si possono rilevare k caratteri, ottenendo dunque altrettanti k valori.
Inserendo tali rilevazioni all'interno di una tabella otterremo una matrice di dati, la quale
rappresenterà appunto la realizzazione dei k caratteri su una stessa unità. I k caratteri possono
comprendere un range dei valori che può assumere ( per esempio, se il carattere è "nome", il range
sarà l'insieme dei nomi possibili: "marco, luca, stefano,ecc." ): questi vengono definiti come
Modalità del carattere. Tali modalità possono essere formate da caratteri quantitativi ( discrete
continue e sempre ordinabili) oppure da caratteri qualitativi (discrete sconnesse o ordinate). Nel
momento in cui all'interno della matrice di dati avremo più valori per una unità, bisognerà
aggregare i valori attraverso quella che viene definita Funzione di aggregazione.
9
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
[Alessandra Fanigliulo]
Unità
L'oggetto dell'osservazione di ogni fenomeno individuale che costituisce il fenomeno collettivo `e
detto unità statistica.
Carattere
fenomeno oggetto di studio, le cui diverse manifestazioni, dette modalità, vengono rilevate o
misurate sulle singole unità che costituiscono la popolazione.
Classificazione
Il termine viene utilizzato per varie attività che si possono ricondurre alla gestione delle
conoscenze. Le attività di classificazione hanno il fine di organizzare le entità del dominio in esame,
la collocazione delle entità nei diversi contenitori si basa sulla individuazione di differenze di
rilievo tra le entità stesse, cioè su processi di distinzione.
Matrice dati
Consiste in un insieme rettangolare di numeri o più in generale di caratteri, dove in riga abbiamo le
unità statistiche ed in colonna le variabili; in ogni cella derivante dall'incrocio tra riga e colonna
abbiamo un dato, ossia il valore registrato per una particolare variabile ed un particolare caso.
Dimensione
Attributo strutturale di un cubo, ovvero una gerarchia organizzata di categorie (livelli) che
descrivono i dati della tabella dei fatti.
Funzione di aggregazione
Funzione che esegue un calcolo su una colonna in un set di righe e restituisce un unico valore.
Aggregazione
Tabella o struttura contenente dati precalcolati per un cubo.
Cubo Set di dati organizzati e riepilogati in una struttura multidimensionale definita da un set di
dimensioni e misure.
Ruolo del cubo
Raccolta di utenti o gruppi con le stesse autorizzazioni di accesso al cubo. In un cubo, set di valori,
in genere numerici, basati su una colonna della tabella dei fatti del cubo stesso.
Misura
Le misure sono i valori su cui si basano l'aggregazione e l'analisi.
Aggregate functions
Forniscono informazioni statistiche relative ad un set di records (domain). Per esempio, e` possibile
utilizzare una aggregate function per contare il numero di records di un recordset, oppure calcolare
il valore medio dei valori di un particolare campo.
[Veccari Ilaria, Silvia Perna]
10
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
Elementi teorici e strutturali del report: Dimensioni, Misure, Aggregazione, funzioni di
aggregazione.
Il Report Aziendale aggrega, in un unico documento, tutte le informazioni indispensabili per
esaminare in modo dettagliato la situazione economica, finanziaria e societaria di qualsiasi impresa
italiana, per valutare rapidamente la solidità patrimoniale di fornitori, clienti e concorrenti e per
mantenere sotto controllo i rischi di credito e commerciali.
Grazie all'accesso alle fonti pubbliche di tutto il territorio nazionale (Camere di Commercio,
Tribunali e Uffici di Pubblicità Immobiliare), il Report Impresa integra:
* i dati identificativi del soggetto richiesto.
* per le società di capitali, i dati sintetici di bilancio su fatturato, valore della produzione e numero
di dipendenti.
* i codici RAE (Ramo di Attività Economica) e SAE (Settore di Attività Economica)
* l'elenco dei soci e degli esponenti d'impresa e le loro cariche in altre società.
* i protesti su sede ed esponenti d'impresa.
* le informazioni pregiudizievoli su sede ed esponenti d'impresa.
* l'elenco delle società controllate e collegate.
* le informazioni sulla sede e sulle unità secondarie.
* le procedure concorsuali in atto
* gli abstract delle notizie pubblicate da oltre 130 quotidiani nazionali, regionali e locali
sull'impresa.
* il rating, che consente di avere immediatamente un quadro generale dell'affidabilità di
un'impresa.
* a richiesta, i Bilanci Riclassificati, per conoscere il reale stato economico delle società di capitali
e per contestualizzarne le performance all'interno del settore d'appartenenza.
[Francesca Pileggi ]
I sistemi di reportistica, sono un ambito dei sistemi informativi e si occupano di fornire supporto
alle decisioni strategiche di un’organizzazione.
Un report informativo è un documento agile e centrato su dati interessanti per il soggetto a cui è
diretto, è costituito da visualizzazioni tabellari e grafiche.
Quando si conoscono di un report più dimensioni di analisi è possibile raccogliere e rappresentare i
dati in un ”ipercubo informativo”, in cui ogni componente di un dato è rappresentata su una
dimensione spaziale, studiando così le dipendenze di queste dimensioni.
E’ possibile visualizzare tale ipercubo informativo sottostante al report disaggregandolo secondo le
componenti di estrazione.
Oltre alle dimensioni, e alla misura, ogni report ha:
11
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
- Aggregazioni: aggregazione di dati che permette una visione congiunta di dati e informazioni
- Le funzioni aggregate: permetto di supportare le funzionalità del provider di dati.
Al fine di evolvere verso documenti maggiormente informativi, gli strumenti informatici si sono
dotati di alcune tecniche di visualizzazione per facilitare l’analisi dei dati
Tecniche note nella visualizzazione dei report sono:
- Drill-down: (dal termine anglosassone che esprime l’azione di perforare un terreno) si intende la
possibilità - una volta visualizzato il dato complessivo relativo ad una dimensione gerarchizzata di
analisi di esplorare tutta la gerarchia. Un classico esempio di dimensione gerarchizzabile è quella
temporale: il dato annuale può essere esplorato per sottoreport che visualizzano gli aggregati
mensili e questi ultimi possono essere - a loro volta - disaggregati secondo i dati giornalieri.
- Slice & Dice (dall’inglese, il termine si riferisce nel complesso all’operazione di divisione di una
torta) si intende la possibilità di restringere l’analisi solo ad alcune delle occorrenze delle
dimensioni e solo ad alcune delle dimensioni proposte. È possibile nell’esempio visto sopra,
esplorare le vendite annuali solo di alcune regioni e di queste regioni solo di alcune città. I dati
visualizzati si riferiranno unicamente alle occorrenze selezionate.
[Chiara Pellicciotta]
Le 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 Kdimensionale 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. Vediamo di
cosa si tratta, illustrando un semplice esempio pescato dal web:
COUNT
Restituisce il numero di righe che soddisfano la condizione specificata nella clausola WHERE.
Vediamo un esempio: voglio conoscere il numero di impiegati che appartengono al dipartimento
produzione
SELECT COUNT (*)FROM IMPIEGATOWHERE DIPARTIMENTO = 'PRODUZIONE';
Risultato--> 2
SUM
Questa funzione somma tutti i valori di una colonna, vediamo un esempio: voglio ottenere la
somma di tutti gli stipendi
12
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
SELECT
a.a.2008/2009
SUM(STIPENDIO)FROM
IMPIEGATO;
Risultato-->L.29.390.0000
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. Vediamo un esempio: voglio conoscere lo
stipendio medio della tabella IMPIEGATO.
SELECT
AVG(STIPENDIO)FROM
Risultato-->
La funzione AVG opera soltanto con i numeri.
L.
IMPIEGATO;
3.673.750
MAX
Questa funzione serve a trovare il valore massimo di una colonna. Per esempio vogliamo sapere a
quanto ammonta lo stipendio maggiore.
SELECT
MAX(STIPENDIO)FROM
IMPIEGATO;
Risultato-->L. 7.300.000
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. Per trovare il minimo stipendio della tabella IMPIEGATO si usa la
seguente espressione:
SELECT
MIN(STIPENDIO)FROM
IMPIEGATO;
Risultato-->L. 360.000
La funzione MIN opera anche con i caratteri: la stringa ‘AAA’ è minore della stringa ‘BB’.
L'obiettivo di un Sistema di Reportistica all'interno di una organizzazione è quello di documentare
in maniera dettagliata ed anlitica le attività di preminente interesse: questo patrimonio informativo
deve essere sempre aggiornato e corretto secondo un'univoca prassi organizzativa che lo tuteli da
lacune ed incongruenze. I Sistemi di Reportistica vengono sviluppati in ambiti aziendali complessi
che hanno previsto una soluzione di Datawarehouse. Una delle finalità di un processo di
Datawarehouse è proprio quella di strutturare un contesto informativo hardware e software capace
di rispondere alle esigenze dello scenario organizzativo nel senso più ampio possibile. In tali
contesti si hanno coerenza e consolidamento dei dati, velocità nell’accesso alle informazioni e
13
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
supporto per l’analisi delle stesse. Con l'aumentare della mole di dati a disposizione di una
organizzazione i vantaggi di un'elaborazione centralizzata dei documenti si palesano nei tempi di
esecuzione dei singoli report: la particolare configurazione hardware delle postazioni su cui
vengono materialmente ospitate le risorse del sistema permette l'ottimizzazione delle richieste al
sistema e ne diminuisce il carico di attività rispetto alla situazione in cui singoli utenti ricercano
informazioni individualmente. La standardizzazione dei documenti consente inoltre - secondo
l'approccio all'informazione come bene aziendale - una distribuzione ottimale delle conoscenze ed
una visione dell'attività più conforme e concorde fra le varie funzioni dell'organizzazione, di
continuo aggiornata sulla base della disponibilità della fonte dei dati.
Vediamo schematicamente le fasi di sviluppo di un sistema di reportistica :
1)Identificazione delle Esigenze Informative e di Visualizzazione
2)Identificazione del Contesto Informativo e delle Fonti
3)Identificazione della Configurazione del Sistema Hardware/Software
4)Fase di Integrazione Hardware/Software delle Risorse Informative
5)Preparazione del Report
6)Validazione del Report
7)Fase di Collaudo del Sistema
8)Fase di Esercizio del Sistema di Reportistica
9)I Sistemi di Reportistica - integrati in progetti di Business intelligence - permettono all'utente
finale di disporre di una serie di funzionalità in aggiunta ai report veri e propri
10)Metadati (una descrizione dei dati, così da assicurarne la comprensione)
11)Analisi di tipo tradizionale statistico
12)Rappresentazione con GIS (Sistema informativo geografico)
13)Esecuzione di Script personalizzati con linguaggi di basso livello
14)Uso di Componenti Web
Architettura di un sistema di reportistica:
Si parla di Architettura di Sistema_client/server di un Sistema di Reportistica informatizzato se esso
è funzionalmente strutturato in modo da conservare in un singolo Repository - un Dominio,
logicamente associato al Server - i documenti prodotti rendendoli accessibili dalle postazioni Client
dei fruitori. La funzione di centralizzazione può essere prevista da architetture complesse ed
integrate all'interno di Reti e può prevedere differenti livelli di autorizzazioni e di relativa
operatività sul sistema (utenti amministratori, utenti visualizzatori, utenti modificatori e creatori di
nuovi documenti, etc..). La fruizione dei documenti finali può essere allargata anche agli utenti di
una comunità più ampia . Più in generale, sempre più spesso i siti di Enti ed Istituzioni possono
prevedere Sistemi di Reportistica via web che permettano da un lato di documentarne le attività,
dall'altro di rendere disponibili dati di sintesi per approfondimenti tematici. I documenti - una volta
strutturati e prodotti - vengono resi disponibili alla visualizzazione da parte degli utenti e da questi
possono essere salvati sulla postazione locale. Laddove il sistema lo preveda e lo permetta il singolo
14
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
utente può a sua volta modificare il documento salvato e renderlo fruibile reinviandolo al repository.
Il sistema può mantenere traccia delle variazioni e dei relativi autori e assicurare che il documento
sia aggiornato in conseguenza a nuovi caricamenti di dati sui sistemi alimentanti.
[Mariangela Vecchiarini]
Multidimentional Cube, Slice & Dice, Roll Up, Drill Down, Filtering.
Un report informativo è un documento costituito da una combinazione sinottica di tabelle e grafici
che presentano le misure di rilievo per i vari fenomeni analizzati, disaggregate e destrutturate
secondo specifiche esigenze. Tali misure valgono come indicatori delle attività aziendali e
costituiscono una base comune per le analisi successive. I Sistemi di reportistica costituiscono un
ambito dei Sistemi informativi, la cui applicazione risulta al giorno d’oggi particolarmente diffusa
ed affermata. La funzione principale cui sono chiamati ad adempiere è quella di fornire un valido e
fondato supporto informativo alle decisioni strategiche di una organizzazione. Il report è incentrato
sui dati di interesse della figura aziendale cui è diretto e il fenomeno che esso prende in
considerazione, è analizzato secondo più dimensioni. Si parla in tal senso di Ipercubo informativo, o
cubo multidimensionale. Questo viene disaggregato secondo le componenti di estrazione e
visualizzato. L'ipercubo informativo è una raccolta di dati di cui si conoscono più dimensioni di
analisi. Ogni componente di un dato è rappresentata su una dimensione spaziale del cubo. Spesso si
fa riferimento al cubo indipendentemente dal numero di dimensioni. Difatti è possibile associare la
rappresentazione di una tabella a doppia entrata ad un ipercubo informativo bidimensionale.
Vediamo un esempio:
Inizialmente può essere descritto uno spazio informativo a tre dimensioni e perciò con tre assi. Al
suo interno vogliamo rappresentare lo spazio delle vendite di un'attività per:
1)Ambito Regionale (prima dimensione informativa)
2)Settore Merceologico (seconda dimensione informativa)
3)Ambito Temporale (terza dimensione informativa).
Ogni punto dello spazio così costituito rappresenta una misura delle Vendite per le dimensioni
informative considerate. Analogamente ogni cella del cubo rappresenta il valore assunto
all'intersezione delle occorrenze delle dimensioni scelte, ed in questo senso esso può essere visto
come l'oggetto di un'analisi statistica di tipo multivariato.
Aggiungendo una nuova dimensione di analisi, ad esempio il Punto Vendita, si otterrebbe uno
spazio quadri-dimensionale e analogamente un ipercubo a 4 dimensioni.
Torniamo ora ai report, prendendo in considerazione le tecniche di visualizzazione. Al fine di
evolvere verso documenti maggiormente informativi, gli strumenti informatici si sono dotati di
15
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
alcune tecniche di visualizzazione per facilitare l'analisi dei dati. Tecniche note nella visualizzazione
dei report sono:
[Mariangela Vecchiarini]
Drill-down: ("perforare un terreno") si intende la possibilità - una volta visualizzato il dato
complessivo relativo ad una dimensione gerarchizzata di analisi, di esplorare tutta la gerarchia. Un
classico esempio di dimensione gerarchizzabile è quella temporale: il dato annuale può essere
esplorato per sottoreport che visualizzano gli aggregati mensili e questi ultimi possono essere a loro
volta disaggregati secondo i dati giornalieri.
Slice & dice: ("dividere una torta") si indica la possibilità di restringere l'analisi solo ad alcune delle
occorrenze delle dimensioni e solo ad alcune delle dimensioni proposte. È possibile nell'esempio
visto sopra, esplorare le vendite annuali solo di alcune regioni e di queste regioni solo di alcune
città. I dati visualizzati si riferiranno unicamente alle occorrenze selezionate.
[Mariangela Vecchiarini] e [Silvia Perna]
Slice: è l'operatore che permette di vedere il cubo trasversalmente (letteralmente "a fette"), fissando
un valore per almeno una delle dimensioni e analizzando i dati relativamente a tutte le altre, cioè
concentrando l'attenzione su un ipercubo dimensionale (n-1) del cubo n-dimensionale (si parla di
"contrazione dimensionale").
Dice: letteralmente "ruotare" è l'operatore per cui, fissato un intervallo su ciascuna dimensione, si
analizza una riduzione volumetrica, senza contrazioni del numero di dimensioni.
[Valeria Agrillo]
ROLL-UP: Letteralmente, significa arrotolare o alzare.
Tecnica che induce ad un aumento nell' aggregazione dei dati, eliminando un livello di dettagli da
una gerarchia.
Per esempio, si supponga che l' utente stia visualizzando gli incassi mensili degli anni '03 e '04 per
ciascuna regione del cliente; qui effettuare un rull-up vuol dire eliminare il dettaglio sui singoli mesi
per visualizzare gli incassi trimestrali complessivi per ciascuna regione.
Il roll-up puo portare anche alla riduzione della dimensionalità del risultati passando cosi da una
tabella multidimensionale a una bidimensionale.
In sintesi l’operazione di roll-up può essere di due tipi:
1. Il primo tipo consiste nell’applicare una funzione aggregata (aggregating functions)
2. Il secondo tipo consiste nell’eliminazione completa di una dimensione (dimension measures)
[Marianna Macrina]
Filtering: tecnica attraverso la quale si filtrano i dati attraverso l'utilizzo di un algoritmo. Ad
16
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
eesempio, si possono usare tecniche di filtering per individuare la posta spam nella nostra casella
elettronica.
[Manuela Fava]
Il web come canale di comunicazione
17
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
Classificazione dei software web per la comunicazione delle
informazioni (Social Networking, Newsgroup, Forum, Blog, ... etc)
Per canale di comunicazione nella teoria dell'informazione s'intende il supporto materiale che serve
alla comunicazione dei messaggi.
La Comunicazione Mediata dal Computer o CMC, è una branca di studi che si occupa di come le
tecnologie a base informatica, in particolare i computer, abilitano peculiari forme di comunicazione
a
distanza
fra
gli
esseri
umani.
Si parla di comunicazione mediata dal computer quando, usando un computer, è possibile avviare e
sostenere uno scambio comunicativo a distanza, in modalità grafica o testuale, sincrona o asincrona,
attraverso una rete telematica fatta da due o più computer (come la rete Internet).
[Alessandro Condemi]
Varie tipologie di canali di comunicazione:
Oggi in rete possiamo trovare varie tipologie di canali di comunicazione che permettono a tutti gli
utenti, in tempo ristretto, di poter interagire in uno spazio virtuale molto ampio. Tra i canali di
comunicazione troviamo:
• E-mail: è un servizio internet grazie al quale chiunque può inviare o ricevere messaggi in tempo
reale.
• Blog: è un diario in rete che permette a chiunque di creare un proprio sito in cui pubblicare storie,
informazioni, opinioni in completa autonomia.
• Newsgroup: è un gruppo di discussione in uno spazio virtuale creato su una rete di server
interconnessi. L’accesso a queste aree tematiche avviene per mezzo di programmi chiamati news
clients.
• Forum: indica una struttura informatica contenente discussioni e messaggi scritti dagli utenti. E’ in
un certo senso una comunità virtuale, in cui gli utenti, spesso abituali, affrontano e discutono
specifiche tematiche. Non tutti i forum sono a libero accesso, molti infatti richiedono una
registrazione.
• Chat: il termine “chat” deriva dall’inglese “chiacchierata”, si riferisce a degli spazi virtuali
(chatroom) in cui l’utente dialoga in tempo reale, permette di mettersi in contatto con chiunque,
generalmente in forma anonima. Offre un’ampia gamma di servizi sia telefonici che messaggistici.
Tra i vari tipi di chat i più usati sono: MSN Live Messenger, Skype, Yahoo! Messenger.
• Homepage: letteralmente “pagina di casa”, è solitamente la prima pagina di un sito web.
• Social Network: “rete sociale” consiste in un qualsiasi gruppo di persone connesse tra loro.
• Condivisione contenuto: esistono degli spazi virtuali che consentono la condivisione di materiali
(foto, video) tra gli utenti.
18
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
[Simona Rauseo]
Nell'era del Web 2.0 i canali di comunicazione si adeguano all'imponente novità apportata da questo
nuovo
modo
di
intendere
il
web:
la
bidirezionalità.
I nuovi canali di comunicazione diventano una piattaforma capace di contenere informazioni
personali e di mettere in condivisione i saperi. Gli utenti non sono più fruitori passivi ma
interagiscono producendo a loro volta contenuti.
[Luciana Zanfino]
Lo sviluppo delle nuove tecnologie oltre che contribuire al miglioramento della vita dell'uomo, ha
reso possibile la realizzazione di una serie di canali di comunicazione software dotati di un qualcosa
in più rispetto ai canali di comunicazione tradizionali: blog, home page, newsgroup, community,
chat, forum, e-mail, sharing, e-commerce sono gli strumenti a disposizione del comunicatore di
oggi, sia esso cliente, azienda o semplicemente soggetto che vuole interagire con il mondo web.
I nuovi strumenti, caratterizzati da un alto livello di interattività, consentono all'individuo di
comunicare, informarsi, conoscere, condividere, acquistare, insomma condurre una vera e propria
vita parallela nella realtà del www e sono alla base di un fenomeno che vanta ampia diffusione negli
ultimi anni, noto come "social networking".
Caso particolare di utilizzo delle tecnologie come strumento di relazione sociale, esso rappresenta
una nuova forma organizzativa, in italiano indicata come "rete sociale". Si tratta di forme di
interazioni on line che si strutturano a partire dalla somma e dall'intersezione degli ego-network
degli utilizzatori. L'intero sistema, cioè, si basa sul tessuto di "amicizie" dei propri utenti, reso
pubblico e accessibile ai propri amici.
[Valeria Agrillo]
I software potenziano la mente umana e fagocitano le distanze spazio-temporali. Sono straordinari
propulsori della socializzazione, variegate declinazioni della libera comunicazione, della possibilità
di esprimere se stessi e le proprie opinioni. Sono le vene nelle quali scorre il virus della
informazione veloce e senza vincoli, uno strumento nelle mani di tutti e nel concreto di nessuno. I
blog sono diari liberati da lucchetti ed esposti al mare magnum dei web navigatori. I social network
sono affollate piazze, punti di ritrovo di conoscenti e non, grazie ai quali è possibile rintracciare
amici lontani e condividere contenuti multimediali di ogni tipo. La conoscenza viaggia veloce nelle
mailing list e nei news group, aggiornando in tempo reale gruppi di persone che condividono
interessi, sogni e passioni. Ogni persona può lasciare una traccia del proprio pensiero nei forum,
proponendo spunti di riflessione o sviluppando quelli altrui. È bene sottolineare però che queste
immense arene della comunicazione digitale sarebbero terribilmente vuote e inutili se a riempirle
non fossero le voci e i pensieri di tutti noi, che creiamo e alimentiamo la web realtà.
[ Mariangela Vecchiarini]
Il Software per la creazione di pagine web personali: una review.
19
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
L'home page è la pagina principale che ci appare davanti nel momento in cui noi accediamo ad un
sito web. Al giorno d'oggi non è più necessario utilizzare direttamente il linguaggio html per
realizzare una pagina web, e inoltre è possibile aprirsi un sito personale su internet a costi bassi, se
non
gratis,
tramite
l'utilizzo
di
alcuni
strumenti
di
software.
Il più utilizzato tra questi software è frontpage, appartenente al pacchetto office della microsoft.
Questo editor è molto utilizzato perchè ha template propri, al posto dei CSS, semplici e
automatizzabili., include un sistema di navigazione automatica che crea pulsanti animati per le altre
pagine.
Altro programma molto utilizzato è Dreamweaver, nasce come editor visuale nel 1997 ed è
utilizzato anche a livello professionale perchè genera un codice corretto e pulito. Altri editor per la
creazione di siti web sono NVU, utilizzato soprattutto per il sistema operativo LINUX; o
KOMPOZER, nato dall'evoluzione di NVU.
[Sara Faieta]
Ma i navigatori meno esperti della rete riconosceranno in "Web-log", per gli amici semplicemente
"blog", cioè "traccia su rete", un termine forse più comune. Questo nasce nel dicembre del 1997,
località Usa, quando un simpatico signore di nome John Barger comunica ad alcuni gruppi di
discussione la sua iniziativa: scrivere un diario pubblico sul web (avvalendosi del software ideato
dallo statunitense Dave Winer) in cui raccogliere le proprie considerazioni sulla navigazione on
line, giorno per giorno. Da lì il fenomeno si estende a macchia d'olio fino ad arrivare anche in Italia
nel 2001. Possiamo distinguere due grandi aree di interesse per i blogger: il diario personale e la
pubblicazione di notizie. l'interpretazione di questo spazio è soggettiva, non esistono regole che
determinano un utilizzo preciso. Esistono piattaforme ad hoc per la creazione di un blog.
[Valeria Agrillo]
Come iniziare? Digitate e seguite le istruzioni!
[Manuela Fava]
Nozione di Accessibilità (in senso tecnico, nella terminologia del web)
Ormai da qualche decennio stiamo assistendo ad un esponenziale aumento dell’offerta dei servizi
Web con nuove proposte, variegati progetti e attività dai più svariati e bizzarri contenuti. Essendo
però internet oramai usufruito da tutta la popolazione, il grande problema che si presenta di fronte a
questa moltitudine di informazione, è proprio la sua accessibilità.
[Alessia Giammarinaro]
Difatti il Web è un patrimonio comune, nessuno deve sentirsi escluso.
[Silvia Gallo]
20
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
Nel linguaggio comune, soprattutto quando ci troviamo a discutere di argomenti che esulano
dall’ordinario studio scolastico, facciamo spesso riferimento a delle definizioni intrinseche, a delle
libere associazioni d’idee che fondano la loro validità nel “senso comune”.
Di fronte alla caratteristica di “Accessibilità al web”, l’associazione immediata è data dalla
possibilità di poter accedere a…In realtà però basta “googleare” un pochino per rendersi conto di
come questa definizione potrebbe essere l’equivalente di Raggiungibilità, di quanto questa libera
associazione sia equivoca e di come questo termine in realtà sia legato a tematiche ben più
importanti
e
impegnative.
L’accessibilità ai siti web è data, infatti, dalla facilità di orientamento, di navigazione e di
comprensione all’interno dei documenti on-line. Condizione necessaria ma non sufficiente questa
per garantire la fruibilità di un contenuto web a tutte le categorie di utenti. Mi riferisco in particolare
agli utenti “marginali”, non solo alle persone con problemi di disabilità della vista, ma anche
disabilità
dell’udito,
fisiche
e
cognitive.
E’ già perché proprio la convergenza mediale legata al processo di crescente sviluppo tecnologico
ha messo in evidenza gli enormi vantaggi, ma anche i grandi limiti legati all’utilizzo dei moderni
dispositivi tecnologici e la conseguente necessità di superare le barriere esistenti soprattutto in
merito
all’integrazione
di
persone
con
disabilità.
Nell’oceano informativo del web oltre alla Raggiungibilità anche l’Accessibilità diventa una
condizione necessaria, essenziale se tra gli attori in gioco si chiama anche la PA.
Si, proprio quelle Pubbliche Amministrazioni che sono chiamate a tutelare il cittadino, devono poi
evitare di cadere in situazioni di ineguaglianza e saper reagire alla sfida promossa dall’Accessibilità,
permettendo che la conoscenza sia realmente condivisa tra tutti gli utenti.
[ Daniela Di Russo]
IN generale, l'accessibilità, in informatica, è la capacità di un dispositivo, di un servizio o di una
risorsa
d'essere
fruibile
con
facilità
da
una
qualsiasi
categoria
d'utente.
Il termine è comunemente associato alla possibilità anche per persone con ridotta o impedita
capacità sensoriale, motoria, o psichica (ovvero affette da disabilità sia temporanea, sia stabile), di
fruire dei sistemi informatici e delle risorse software a disposizione. Il termine ha trovato largo uso
anche
nel
settore
di
Internet
col
medesimo
significato.
Naturalmente
sono
previsti
alcuni
requisiti
fondamentali:
-Nel web, un sito web accessibile facilita l'accesso ad individui con ogni tipo di disabilità, ma anche
ad
individui
non
affetti
da
patologie.
Più
nello
specifico:
Utilizza un codice semanticamente corretto, logico e validato secondo i parametri del W3C;
-Utilizza
testi
chiari,
fluenti
e
facilmente
comprensibili;
-Utilizza
testo
alternativo
per
ogni
tipo
di
contenuto
multimediale;
-Sfrutta titoli e link che siano sensati anche al di fuori del loro contesto;
-Ha una disposizione coerente e lineare dei contenuti e dell'interfaccia grafica
-Dovrebbe essere compatibile col maggior numero di browser e configurazioni software e utilizzare
colori
standard
e
ad
alto
contrasto
fra
di
loro;
-L'applicazione corretta dei criteri di accessibilità deve permettere la lettura delle pagine web da
parte di software detti screenreader, specifici per ipovedenti o non vedenti.
[Lorenzo Perrella]
21
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
L’accessibilità del Web riguarda quindi tutte le disabilità, incluse quelle visuali, uditive, fisiche, di
parola, cognitive, e neurologiche. Il Web gioca un ruolo sempre più importante nel settore
dell’educazione, della professione, del commercio, politico e sociale. Un Web accessibile che
permette alle persone con disabilità di partecipare attivamente nella vita sociale è essenziale per una
uguaglianza di opportunità in molte aree. Il Web offre alle persone con disabilità un’opportunità
senza precedenti di accedere ad informazioni e di interagire.
[Chiara Pellicciotta]
Riferendosi agli organismi di controllo, Il W3C (World Wide Web Consortium) stabilisce che il
contenuto di un sito web è accessibile "quando può essere usato da qualcuno che ha una disabilità";
In un suo libro Tim Berners-Lee afferma che il web "deve consentire un accesso paritario a chi si
trova in una situazione economica e politica differente, a chi ha handicap fisici o cognitivi, a chi
appartiene a una cultura diversa e a chi usa lingue diverse con caratteri diversi che si leggono in
diverse direzioni sulla pagina"; questa affermazione estende il concetto di accessibilità fino a
comprendere tutti quei soggetti che rischiano di essere esclusi dalle trasformazioni in atto nella
società. Il W3C ha varato le direttive WAI (Web Accessibility Initiative), linee guide per costruire
siti web accessibili.
[Marianna Macrina]
D’altra parte, strettamente connesso al concetto di accessibilità è quello di "usabilità" , che si
riferisce genericamente alla facilità di utilizzo di un sito web. Un sito usabile è un sito
comprensibile per qualsiasi tipo di utente, in grado di soddisfare appieno le sue aspettative e
bisogni. In questo senso è opportuno dotare un sito di un linguaggio chiaro e semplice, integrandolo
magari con immagini e simboli che rendono la comunicazione più efficace. Importante è anche la
coerenza del linguaggio e della grafica nonché la coerenza nella presentazione, per cui ad esempio
gli oggetti contenenti informazioni affini vanno collocati nella medesima posizione. Infine
assolutamente da evitare è l'uso smisurato di applicazioni multimediali e animazioni,che oltre ad
essere scarsamente rilevanti a scopi informativi rallentano l'apertura di un sito, generando perdita di
tempo per l'utente.
[Caterina Messana]
Secondo indicazioni internazionali, recepite e divulgate in Europa dal consorzio Euroaccessability, i
livelli di accessibilità si suddividono in tre categorie: A, AA e AAA. Il primo stadio si raggiunge
quando si risolvono problemi che "devono essere risolti" (priorità definita "must"), perché
impediscono l'accesso ai contenuti a determinate categorie di utenti. Il secondo quando si affrontano
problemi che "dovrebbero essere risolti" (priorità definita "should") per facilitare l'uso della pagina
a determinate categorie di utenti. Infine, la tripla A si ottiene quando si eliminano problemi che
"possono essere risolti" (priorità definita "may") al fine di migliorare l'utilizzo della pagina da parte
di alcune categorie di utenti. Per rendere accessibile un sito si devono correggere subito i problemi
con priorità A e in seguito i problemi di livello AA. Con accessibilità AAA si raggiunge poi il livello
più elevato
22
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
[Luca Ragno]
A questo punto ci si chiede: perché puntare sull’accessibilità? Bene: un sito web accessibile è
certamente un sito web di qualità che dimostra attenzione da parte del team di sviluppo per le
esigenze degli utenti, compresi quelli disabili.
[Gabriella Fabrizio]
I CMS: cosa sono. Gli applicativi piu diffusi e potenti
Un Content Management System (CMS), letteralmente "Sistema di gestione dei contenuti" è un
software che si installa su un server web per la gestione automatizzata dei siti tramite pannello di
controllo protetto da password. Esistono due tipi principali di CMS:
• CMS specializzati: sono quei sistemi intenzionalmente progettati per un tipo preciso di contenuti,
un'enciclopedia on-line o un blog, per esempio.
• CMS generici, che tendono ad essere più duttili per consentire la pubblicazione di diversi tipi di
contenuti.
[Alessia Giammarinaro]
Tecnicamente un CMS è un'applicazione lato server, divisa in due parti: la sezione di
amministrazione (back end), che serve ad organizzare e supervisionare la produzione dei contenuti,
e la sezione applicativa (front end), che l'utente web usa per fruire i contenuti e le applicazioni del
sito.
[Lorenzo Perella]
Un CMS, quindi, è uno strumento indispensabile per chi deve gestire siti e portali a carattere
informativo (aziendale o giornalistico), con la necessità di semplificare, organizzare e controllare le
attività di pubblicazione ed aggiornamento. Un sistema CMS permette di gestire l'aggiornamento ed
il flusso delle informazioni attraverso soluzioni software che rendono semplici ed affidabili i
processi di gestione dei contenuti.
[Luciana Racano]
Una delle applicazioni più utili dei sistemi di CMS si ha nella gestione dei portali, dove vengono
impiegati i CMS come strumento di pubblicazione flessibile e multiutente.
I CMS sono solitamente orientati alla gestione di testi (news, articoli ecc.), immagini, liste di
discussione, forum, materiale scaricabile; a volte danno la possibilità di gestire anche più versioni
dello stesso sito (ad esempio, HTML o WAP).
I CMS consentono di definire utenti, gruppi e diritti, in modo da poter permettere una distribuzione
23
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
del lavoro tra più persone. Per esempio, sarà possibile definire una classe di utenti abilitati
esclusivamente all’inserimento delle novità, mentre si potrà riservare la scrittura di articoli ad un
altro gruppo, e limitare tutti gli altri alla sola consultazione.
Un CMS è tanto più efficiente quanto più è specializzato. Molti piccoli portali fanno ricorso a CMS
distribuiti (scritti da altri e messi a disposizione gratuitamente o a pagamento) di tipo generico; per
quanto un CMS possa essere flessibile, un sito basato su questa struttura in genere presenta un
aspetto poco personalizzato. I contenuti, inoltre, saranno sempre ancorati a quanto previsto da chi
ha progettato
il CMS e non alle esigenze di chi pubblica il sito.
I problemi di gestione possono derivare dal fatto che chi pubblica o gestisce il sito può usare il
CMS per intervenire sui contenuti e sull’aspetto, ma generalmente non è in grado di intervenire
direttamente (o far intervenire) sulla struttura del CMS stesso; questo è un limite strettamente
connesso al vantaggio primario dei CMS: pubblicare un portale senza doverne progettare la
struttura o senza possedere le conoscenze tecniche (o le risorse finanziarie) per uno sviluppo
personalizzato.
[Silvia Perna]
Il rovescio della medaglia è però ugualmente manifesto, visto che questi software non si rivolgono
ad esperti informatici e quindi gli strumenti di base che offrono adempiono perfettamente al loro
compito, senza bisogno di entrare in macchinosi tecnicismi. Difatti, laddove si desideri un grado di
flessibilità maggiore, esistono appositi programmi open source, di ben più complesso utilizzo.
[Mariangela Vecchiarini]
Utilizzando software open source si ha la possibilità di accedere al codice sorgente del prodotto
permette di personalizzare il software sulla base delle proprie esigenze a patto di non avere
necessità di apportare modifiche al prodotto adottato. In questo caso, vanno messi in conto i costi
per lo sviluppo di moduli personalizzati o funzioni particolari a meno di non possedere in proprio o
nella propria struttura aziendale le conoscenze tecniche per intervenire nel codice sorgente.
I portali di una certa importanza non fanno mai ricorso a CMS distribuiti bensì usano programmi e
database progettati su misura, ovvero CMS personalizzati e dunque necessariamente specializzati;
in questo modo la struttura e la presentazione vengono realizzate tenendo presenti i contenuti che il
sito dovrà ospitare e potranno essere modificati in seguito a nuove esigenze.
Dopo un’attenta valutazione da parte di moltissimi utenti su un grosso bacino di CMS opensource,
il CMS Award indetto dall’editore inglese Packt comincia a dare i suoi frutti. Sono stati selezionati i
cinque finalisti che verranno ora valutati da una giuria asperta al fine di assegnare il premio di
miglior CMS Opensource ad uno di loro. Il fortunato avrà, oltre la gloria, un premio di 5000 dollari
mentre il secondo ed il terzo classificato dovranno accontentarsi rispettivamente di 3000 e 2000
dollari.
I cinque finalisti sono:
Drupal
e107
24
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
Joomla
Plone
Xoops
Il vincitore verrà annunciato il 14 Novembre
[Vincenzo Ventimiglia]
Ecco una lista di alcuni tra i più utilizzati CMS open source:
Alfresco
ASP Nuke
ASPCode CMS
ASPNukers CMS
CMSaccessibile
CMSimple
CMS Made Simple
CoCoComs
Contenido
dBlog CMS Open Source
dir2web
Docebo CMS
DotNetNuke
Drupal
eZ publish
Fedora Commons
Flatnuke
Geeklog
GuppY
Galatolo WebManager
ICE Integrated content management
iTCms
JAPS
JBoss Portal
Joomla
LG-Nuke
Liferay
LucidCMS
Magnolia
Mambo
Md-Pro
MemHT Portal
MKPortal
MovableType
New-CMS
Nuke-Evolution
Nuxeo
OpenASP
OpenCms
Pepsi CMS
25
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
Phoenix Portal
PhPeace
PHPNuke
PHP-Fusion
phpwcms
Plone
PostNuke
Rainbow
Rockchock
SPIP
Syntax Desktop
Textpattern
Typo3
WebGUI
WebPortal
Webmatic
Website Baker
WordPress
Xaraya
XCMS
XOOPS
Zen Cart
[Antonio Turchiarelli]
Vantaggi e svantaggi del software per la distribuzione
dell'informazione sul web: per i creatori e per i fruitori di contenuti.
Il termine “software” è un vocabolo usato in modo particolare in ambito informatico e sta ad
indicare un programma o un insieme di programmi in grado di funzionare su un elaboratore. I
software possono essere classificati secondo diverse caratteristiche (video scrittura, foglio
elettronico, database, browser…), grado di apertura, tipo di sistema operativo.
Vantaggi per chi lo produce:
- la produzione di software richiede la disponibilità di un altro software (per esempio i compilatori e
le librerie standard); così la produzione di software libero parte avvantaggiato dalla disponibilità del
software libero già esistente, senza i costi per l’ acquisizione dei diritti necessari, riducendo di
conseguenza i tempi per lo sviluppo;
- la produzione di software libero pone l’ accento sulle persone che scrivono il codice e non su un
marchio particolare.
Vantaggi per l’utente finale
26
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
- il software può essere modificato per adottarlo alle proprie esigenze;
- la concorrenza mette a disposizione il software a costi inferiori;
- la concorrenza consente di scegliere liberamente il fornitore;
- con le dovute conoscenze il software può essere verificato, soprattutto quando si utilizza in ambiti
critici dal punto di vista della sicurezza;
- il software può essere studiato, consentendo la diffusione della conoscenza.
Svantaggi per chi produce
- il software libero non consente di mantenere una posizione privilegiata nel mercato;
- i margini di reddito sono ridotti per l’ assenza di ” rendite di posizione”.
Svantaggi per l’ utente finale
- il software libero richiede una maggiore consapevolezza sul piano informatico;
- il software libero richiede una maggiore consapevolezza sul funzionamento del singolo prodotto
software e sull’ organizzazione del sistema operativo;
- l’ utente deve fare le proprie scelte e seguirne la strada.
[Gabriella Fabrizio]
L'avvento di Internet ha aperto nuovi scenari per quanto riguarda la distribuzione dell'informazione.
Le novità investono sia coloro che creano e divulgano contenuti comunicativi sia coloro che
fruiscono di questi ultimi.
Considerando il versante della creazione e distribuzione di contenuti, sicuramente, l'aspetto
maggiormente positivo connesso al web è la "democratizzazione del sistema dell'informazione".
Qualsiasi individuo, semplicemente dotandosi di un sito o di un blog, può far sentire la propria
voce, esprimere il proprio punto di vista, cosa impensabile nei tradizionali mass-media. Se infatti la
comunicazione è nata inizialmente come processo da pochi a pochi per poi diventare da pochi a
molti nella cultura di massa, su internet le informazioni sono scambiate da molti a molti.
Anche per gli utenti che ricercano informazioni on-line i vantaggi sono molteplici. In primo luogo
nel web è possibile selezionare dettagliatamente l'informazione di interesse, un'informazione fresca,
continuamente aggiornata e possiamo scegliere tra le varie fonti disponibili quella che
maggiormente ci aggrada o che personalmente consideriamo più veritiera ed imparziale. Inoltre,
tenendo presente le numerose fonti ufficiali e non, celebri o anonime, presenti in rete, diviene
possibile operare un controllo incrociato delle informazioni e verificare, ad esempio, la fondatezza
di una notizia.
Dunque internet mette in moto un processo di disgregazione nei confronti dell'accentramento e del
monopolio dell'informazione; l'utente on-line è un destinatario attivo che costruisce personali
percorsi di conoscenza mettendo insieme voci diverse ed il suo è un ruolo dinamico, pronto a
tramutarsi da quello di ricevente a quello emittente in qualsiasi momento.
[Caterina Messana]
Archiviazione dei Dati
27
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
Principali prodotti software per l'archiviazione delle informazioni
(DBMS): Sql Server, Oracle, Access, Sybase, MySQl, ...
Il DBMS si frappone fra l’utente e i dati del Data Base, grazie a questo strato di software l’utente
non ha accesso diretto ai dati memorizzati fisicamente, ma solo a una loro rappresentazione logica,
permettendo un livello alto di indipendenza tra i dati e le applicazioni. Le attuali applicazioni dei
Data Base permettono l’accesso ai dati a più utenti contemporaneamente, questo grazie al fatto che
sono stati sviluppati DBMS che, utilizzando una sola copia dei dati, permettono la creazione di più
rappresentazioni logiche di questi, riducendone la ridondanza e l’inconsistenza.
[ Marianna Macrina]
Quando s’installa il software di gestione del DBMS per la prima volta, è necessario provvedere a
costruire le basi di dati amministrative, oltre che, eventualmente, a sistemare altri file di
configurazione. Per questo, di solito il software del DBMS include un programma che predispone
tali basi di dati speciali con una configurazione iniziale predefinita.
I programmi accedono alle basi di dati attraverso un protocollo di comunicazione con il DBMS. Il
protocollo in questione dipende dal DBMS, ma generalmente consente di trasportare delle istruzioni
SQL.
[Marianna Macrina, Simona Rauseo]
I DBMS svolgono un ruolo fondamentale in numerose applicazioni informatiche, dalla contabilità,
la gestione delle risorse umane e la finanza fino a contesti tecnici come la gestione di rete o la
telefonia.
Se in passato i DBMS erano diffusi principalmente presso le grandi aziende e istituzioni (che
potevano permettersi l'impegno economico derivante dall'acquisto delle grandi infrastrutture
hardware necessarie per realizzare un sistema di database efficiente), oggi il loro utilizzo è diffuso
praticamente in ogni contesto. L'espressione applicazione enterprise, che nel gergo informatico si
riferisce ad applicazioni legate al business delle aziende che le utilizzano, implica quasi "per
definizione" la presenza di una o più basi di dati amministrate da uno o più DBMS.
I principali prodotti software per l'archiviazione delle informazioni (DBMS) sono:
Software proprietario
-4th Dimension
-ADABAS (Software AG)
-AskSam
-DB2 (IBM)
-DATAllegro
-Caché (InterSystems)
-FileMaker Pro (FileMaker, Inc., in precedenza Apple)
-FrontBase
-IMS/DB (IBM)
28
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
-Informix (IBM)
-Ingres (Computer Associates)
-Microsoft SQL Server (Microsoft)
-Microsoft Access (Microsoft)
-Mimer SQL (Mimer AB)
-mSQL
-Netezza
-Oracle (Oracle Corporation)
-Ovrimos
-Progress RDBMS (Progress Software Corporation)
-SESAM
-SQL Anywhere Studio
-Sybase SQL Server
-Teradata (NCR Corporation)
-TimesTen (TimesTen, Inc.)
Open source o free software
-Berkeley DB (Sleepycat Software)
-Dataman
-DBM
-Drizzle
-Emdros
-Firebird SQL (The FirebirdSQL Foundation)
-GigaBASE
-HSQL Database Engine
-HyperNetDatabase
-MaxDB (prima SAP DB e Adabas)
-Metakit
-MySQL (MySQL AB)
-Ozone
-PicoSQL (un Dbms italiano)
-PostgreSQL (in precedenza Postgres) (PostgreSQL Global Development Group)
-SQLite (di pubblico dominio)
-tdbengine
-ZODB
[Lorenzo Perrella]
In particolare:
- ORACLE: è uno tra i piu’ famosi database management system. Ha coperto e copre tuttora un
ruolo fondamentale nel campo dei DBMS, è il pioniere per eccellenza nello studio delle basi di dati,
infatti è il primo. in termini di tempi di sviluppo, ad implementare nuove tecnologie. La societa’
informatica che lo produce è la Oracle Corporation, una delle piu’ grandi nel mondo, fonadata nel
1977 e con sede in California. ORACLE è stato il primo DBMS commerciale basato su SQL, era
infatti già disponibile nel lontano 1979.
- MySQL: la sua popolarita’ è amplificata grazie alla presenza del DBMS all’interno della
29
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
piattaforma LAMP, orientata allo sviluppo per le applicazioni Web. Infatti tutti i software usati in
questa piattaforma vantano grandi successi, riconoscimenti internazionali e grande stabilità.
MySQL è rilasciato con licenza GPL e cio’ significa che i sorgenti sono di pubblico accesso.
- PostGreSQL: è un database indipendente al 100%. Non è gestito da nessuna azienda. E’ nato come
un esperimento e continua ad esserlo dopo oltre 20 anni; viene sviluppato da una grande comunita’
di programmatori ed è supportato da una serie di aziende. E’ un DBMS open source.
[Marianna Macrina, Simona Rauseo ]
- Sequel Service: è il database prodotto dalla Microsoft. Nelle prime versioni era utilizzato per basi
dati medio-piccole, ma dalla versione 2000 è stato utilizzato anche per la gestione di basi dati di
grandi dimensioni.
[Laura Rotatori]
- Access: creato da Microsoft, è inserito nel pacchetto Office Professional ed unisce il motore
relazionale Microsoft Jet Database Engine con una interfaccia grafica. Access presenta il doppio
vantaggio di poter essere utilizzato sia da sviluppatori software esperti, sia da programmatori alle
primissime armi. A differenza di altri ambienti di sviluppo, in Access un unico file comprende tutti
gli strumenti per lo sviluppo delle applicazioni: tabelle, query, maschere, report. Nelle tabelle
vengono memorizzati i dati; le query sono gli strumenti per l'interrogazione ed la manipolazione dei
dati che usufruiscono di un mini-SQL; le maschere permettono l’interazione con i dati delle tabelle
attraverso un'interfaccia grafica; i report consentono di visualizzare dei risultati basati sui dati
.[ Alessia Giammarinaro]
- Times Ten: database realizzato da Oracle, costituito da infrastrutture software progettare per
gestire una grande quantità di dati. Per questa ragione sono maggiormente usati in programmi
pensati per i mercati finanziari, le telecomunicazioni, in applicazioni e-commerce.
[ Concetta Salleo]
Concetto di normalizzazione, forme normali, ridondanza, Relazioni,
Integrita' referenziale nei DBMS
30
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
Per normalizzazione si intende un qualsiasi processo che modifica un oggetto per renderlo più
normale, il che significa tipicamente renderlo più conforme a qualche criterio di regolarità.
[Federica Giuntella]
La normalizzazione è un processo di tipo graduale che realizza un’ottimizzazione progressiva
eliminando le ridondanze e il rischio di inconsistenza del database. Questo procedimento fa in modo
che non vengano memorizzati dati già ripetuti; per questo motivo i dati sono organizzati in più
tabelle legate tra loro da relazioni. Assume un ruolo fondamentale in questo processo la dipendenza
funzionale; questa è un vincolo d’integrità che descrive legami di tipo funzionale tra gli attributi di
una relazione.
[Laura Rotatori]
Data una relazione r su uno schema R(X) e due sottoinsiemi di attributi non vuoti Y e Z di X,
diremo che esiste su r una dipendenza funzionale tra Y e Z se per ogni coppia di tuple t1 e t2 di r
aventi gli stessi valori sugli attributi Y, risulta che t1 e t2 hanno gli stessi valori anche sugli attributi
Z.
La dipendenza funzionale è un particolare vincolo di integrità per il modello relazionale che
descrive legami di tipo funzionale tra gli attributi di una relazione. Quando un attributo a determina
un altro attributo b, cioè quando il valore di un attributo è unico, cioè sempre lo stesso ogni volta
che compare in una tupla l'attributo da cui dipende, possiamo dire che esiste una dipendenza
funzionale tra a e b. In maniera più precisa possiamo dire che, per ogni elemento del dominio del
primo attributo che compare nella relazione, esiste una funzione che associa ad esso un unico
elemento del dominio del secondo attributo.
[Lorenzo Perella]
Diamo un Esempio:
(CAP)
Città
Provincia
Abbreviazione_nome_regione
Nome_Regione
Il CAP è un codice univoco di 5 caratteri. Cosa lo rende una chiave? Il fatto che esso determina tutti
gli altri campi. Poiché per ogni CAP esistono una singola Città, una singola Provincia, ecc., questi
campi sono in dipendenza funzionale rispetto al campo CAP. [Mariateresa Cascone]
Esistono diversi livelli di normalizzazione, definiti forme normali, che certificano la qualità dello
schema del database. Una relazione si dice in prima forma normale se ogni tupla contiene
esattamente un unico valore per ogni attributo.
Una relazione è invece in seconda forma normale se e solo se soddisfa la prima forma e inoltre
31
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
ciascun attributo, che non fa parte della chiave, è indipendente funzionalmente da una qualunque
chiave candidata.
[Laura Rotatori]
La regola per la terza forma normale di normalizzazione è eliminare i campi che non dipendono
dalla chiave. Ogni volta che ci troviamo davanti dei campi (o attributi) che possono risultare validi
per più record della tabella, bisognerebbe inserirli in una tabella a parte. Sembrerebbe più
appropriato usare questa maschera solo quando abbiamo dati soggetti a frequenti modifiche.
[Sara Faieta]
Una base dati è detta invece essere in quarta forma normale quando per ogni relazione di
dipendenza funzionale molti a molti X Y, X sia una superchiave.
Infine, una base dati si dice in quinta forma normale di normalizzazione se e solo se è in quarta
forma normale e ogni relazione di dipendenza è implicata dalle chiavi candidate.
La quarta e quinta forma normale, in realtà, raramente sono utilizzate, in quanto ad un incremento
di rigore nell'eliminazione della ridondanza corrisponde un degrado delle prestazioni (query di
selezione o, peggio, modifica dei dati, richiedono molto più tempo per l'esecuzione).
[Lorenzo Perella]
Una relazione può, talvolta, essere decomposta. La decomposizione di una relazione dovrebbe
sempre
soddisfare
due
proprietà:
- La decomposizione senza perdita, che garantisce la ricostruzione delle informazioni originarie
- La conservazione delle dipendenze, che garantisce il mantenimento dei vincoli di integrità
originari.
Per "decomposizione senza perdita" s’intende l'atto della manipolazione di una relazione R volta ad
ottenere (eventualmente) due o più relazioni (ad esempio R1 e R2) che oltre a conservare le
dipendenze funzionali verificano anche la seguente condizione: R = R1joinR2
[Vincenzo Ventimiglia]
SQL ; Istruzioni di base per Estrazione, Inserimento, Update
32
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
dei dati.
SQL è un linguaggio dichiarativo,ossia non richiede la stesura di sequenze di operazioni, ma di
specificare le proprietà logiche delle informazioni ricercate. E’ composto dal DDL (Data Definition
Language), che permette di creare e cancellare database o modificarne la struttura, dal DML (Data
Manipulation Language), attraverso cui è possibile inserire, cancellare, modificare e leggere i dati e
il DCL (Data Control Language) che gestisce utenti e permessi.
[Chiara Pellicciotta]
I comandi delle varie istruzioni sono:
per le DDL (Data Definition Language)
CREATE TABLE
DROP TABLE
ALTER TABLE
CREATE INDEX
DROP INDEX
Per le DML (Data Manipulating Language)
INSERT
DELETE
UPDATE
SELECT
Per le DCL (Data Control Language)
GRANT
REVOKE
[Giuseppe Cecchini]
Vediamo come procedere per inserire, modificare e cancellare i dati. Il comando INSERT serve ad
inserire una o più nuove tuple (o record) in una tabella. Una tupla è ognuna delle righe che forma
una tabella; è quindi un insieme di valori, una per ogni attributo. Nell'esempio preso in
considerazione :
AMICI
33
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
Nome
Cognome Città
Indirizzo
Telefono
Lucia
Rossi
Roma
via
di
1234567
Ripetta, 15
Luca
Bianchi
Firenze
via Dante,
1234568
40
Stefano
Verdi
Parma
via
Stradina,
23
Carlotta Neri
Roma
via
1234560
Tiburtina, 1
Gianluca Grigi
Pisa
vicolo
1234561
Vecchio, 12
1234569
La prima tupla corrisponde a Lucia, Rossi, Roma, via di Ripetta 15, 1234567; la seconda a Luca,
Bianchi, Firenze, via Dante 40, 1234568; e così via.
L'istruzione che dovremo scrivere sarà:
INSERT INTO nome_tabella (nome_campo) VALUES ('valore');
che, nel nostro caso, diventerà:
INSERT INTO AMICI (Nome, Cognome, Città, Indirizzo, Telefono)
VALUES ('Francesco', 'Gialli', 'Firenze', viale Manzoni 3',
'1234562');
34
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
La tabella modificata che otterremo sarà:
AMICI
Nome
Cognome Città
Lucia
Rossi
Luca
Bianchi
Stefano
Verdi
Carlotta
Neri
Gianluca
Grigi
Francesco Gialli
Indirizzo Telefono
via
di
Roma
1234567
Ripetta, 15
via Dante,
Firenze
1234568
40
via
Parma Stradina, 1234569
23
via
Roma
1234560
Tiburtina, 1
vicolo
Pisa
1234561
Vecchio, 12
viale
Firenze
1234562
Manzoni, 3
Verrà in questo modo generato un nuovo record all'interno della nostra tabella con i valori da noi
inseriti nella stringa delle istruzioni.
Ma i dati di una tabella sono spesso soggetti a cambiamenti e a modifiche. Il comando SQL che ci
permette di compiere questa operazione è UPDATE. L'istruzione che daremo per modificare o
aggiornare i dati sarà:
UPDATE nome_tabella SET nome_campo = 'valore';
In questo modo verrebbero aggiornati tutti i record di una tabella. Per aggiornare, invece, un record
specifico si utilizza l'operatore condizionale WHERE. Ad esempio:
UPDATE nome_tabella SET nome_campo = 'nuovo_valore' WHERE campo da
modificare = 'valore;
Prendiamo ancora una volta in considerazione il nostro esempio; vogliamo modificare il numero di
telefono di Francesco Gialli. Scriveremo:
UPDATE AMICI SET Telefono = '1234563' WHERE nome = 'Francesco';
35
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
La tupla interessata diventerà:
AMICI
Nome
Cognome Città
Francesco Gialli
Indirizzo
Telefono
viale
Firenze Manzoni, 1234563
3
Se volessimo modificare o aggiornare più valori, basterà separare questi valori con una virgola. Per
esempio, se volessimo aggiornare oltre al numero di telefono di Francesco, anche l'indirizzo di
Carlotta, scriveremo:
UPDATE AMICI SET (Telefono = '1234563', Indirizzo = 'Via
Prenestina, 7') WHERE (Nome = 'Francesco' and Cognome = 'Neri');
L'ultima operazione che prenderemo in considerazione è la cancellazione dei dati DELETE. Questa
istruzione elimina irrecuperabilmente i dati specificati nella query di eliminazione. La sintassi da
digitare sarà:
DELETE* FROM nome_tabella;
Questa istruzione cancellerà tutti i dati presenti nella tabella, svuotandola del tutto. Per cancellare
solo alcuni dati e non altri che riteniamo importanti da conservare ci basterà inserire il comando
WHERE:
DELETE* FROM nome_tabella WHERE nome_campo = 'valore';
che, applicato al nostro precedente esempio diventerà:
DELETE * FROM AMICI WHERE Telefono = '1234563';
La tupla interessata diventerà
AMICI
Nome
Cognome Città
Francesco
Gialli
Indirizzo Telefono
viale
Firenze Manzoni,
3
[Luciana Racano]
36
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
l' ESPORTAZIONE, in Oracle si esegue con il comando EXPORT, mentre Microsoft SQL Service
ha uno strumento denominato DATA TREASFORMATION SERVICE che permette importazione
ed esportazione di dati in qualsiasi tipo di formato.
[Alessandra Fanigliulo]
Vediamo
ora
i
comandi
GRANT
e
REVOKE.
Il comando GRANT permette di concedere i privilegi sulla risorsa agli utenti, la sintassi risulta la
seguente:
grant
Privilegi
on
Risorsa
to
Utenti
[
with
grant
option
]
Il commando REVOKE sottrae a un utente i privilegi che gli erano stati concessi adoperando la
seguente
sintassi:
revoke Privilegi on Risorsa from Utenti [ restrict cascade ]
[Giuseppe Cecchini]
L'elaborazione di una singola istruzione SQL rappresenta la modalità più semplice di esecuzione
delle istruzioni SQL in SQL Server. Per illustrare il processo di base, viene utilizzata la procedura di
elaborazione di una singola istruzione SELECT che fa riferimento esclusivamente a tabelle di base
locali, non a viste o tabelle remote.
Un'istruzione SELECT non definisce esattamente la procedura da eseguire nel server di database
per recuperare i dati richiesti. Il server di database deve pertanto analizzare l'istruzione per
determinare il metodo più efficace per l'estrazione dei dati. Tale procedura, denominata
ottimizzazione dell'istruzione SELECT, viene eseguita dal componente Query Optimizer. I dati di
input per Query Optimizer sono costituiti dalla query, dallo schema del database (definizioni di
tabella e indice) e dalle statistiche del database. L'output di Query Optimizer è un piano di
esecuzione della query, talvolta definito piano di query o semplicemente piano. La descrizione
dettagliata del contenuto di un piano di query è riportata più avanti in questo argomento.
I dati di input e di output di Query Optimizer durante l'ottimizzazione di una singola istruzione
SELECT sono illustrati nel diagramma seguente:
[Giuseppina Brunetti]
SQL (Structured Query Language) è un linguaggio strutturato di Query, di richiesta dati, non è altro
37
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
che il linguaggio che parlano i database……………….. come dice sempre il prof. “noi
comunichiamo in italiano, i database comunicano in SQL”
Gli operatori messi a disposizione dall’ SQL standard si dividono in 4 categorie:
1) gli Operatori di CONFRONTO………. servono a determinare uguaglianze e disuguaglianze tra
valori ed effettuare ricerche all’interno dei dati;
2) gli Operatori ARITMETICI……………. servono ad effettuare calcoli all’interno di una ricerca;
(ad esempio il “+” effettua una addizione, il “-” una sottrazione, il “*” una moltiplicazione ed il “/”
una divisione)
3) gli Operatori CONDIZIONALI………. l’unico operatore condizionale di SQL è il WHERE
(dove) e serve a definire i criteri di ricerca mirati;
4) gli Operatori LOGICI………………….. sono AND (e), OR (o), NOT (non) e possono essre
ripetuti piu’ volte all’interno della ricerca.
- CON IL COMANDO SELECT abbiamo la possibilita’ di estrarre i dati in modo mirato dal
database. Sintassi del comando SELECT:
SELECT lista elementi
FROM lista_riferimenti_tabella
[WHERE] espressione condizionale
[GROUP BY lista colonne]
[ORDER BY lista colonne]
[Paola Sale]
Eseguiamo la più banale delle ricerche: SELECT * FROM elenco cd; (equivale a dire estrai tutti i
campi dalla tabella elenco cd). Questo comando, quindi, restituisce tutti i record presenti e il
simbolo (*) indica tutti i campi, ogni operazione deve conclusa con il punto e virgola.
L’istruzione che possiamo usare per una ricerca è SELECT, SQL è case in sensitive e pertanto
scrivere un istruzione in maiuscolo o in minuscolo non fa differenza, ma diventa case sensitive
quando si specificano i nomi di tabelle o campi del database. E’ consigliabile pertanto scrivere in
maiuscolo i comandi e in minuscolo i nomi.
[Daniele Germani]
38
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
Approfondimenti su SQL: clausole where, having, group by
In particolare l'istruzione SELECT serve per estrarre informazioni dal database e la sua sintassi è la
seguente:
SELECT
FROM
WHERE
GROUP
BY
HAVING
ORDER
BY
La clausola FROM è seguita dalla lista di tabelle, separate da virgole, che vengono usate
nell'istruzione SELECT.
WHERE serve per specificare le restrizioni o condizioni che devono essere soddisfatte dalle tuple
per far parte della tabella risultate.
Con la clausola GROUP BY si possono raggruppare le tuple per valori omogenei degli attributi
specificati nella lista degli attributi.
HAVING è l'equivalente del WHERE applicata ai gruppi di tuple, quindi, deve far riferimento agli
attributi di GROUP BY.
ORDER BY serve per ordinare le tuple risultati dall'interrogazione in base alla lista degli attributi.
[Lorenzo Perrella]
La clausola WHERE estrae gli attributi o la serie di attributi desiderati. Se nell’interrogazione non
viene specificata la clausola WHERE questo indica che non sono poste condizioni per la selezione
delle tuple e nella tabella risultante verranno riportate tutte le tuple della relazione specificata nella
clausola
FROM.
La clausola WHERE ammette come argomento una espressione booleana costruita combinando
predicati semplici con gli operatori and, or e not. Ciascun predicato semplice usa gli operatori =,
<>, <, >, <=, >= per confrontare da un lato una espressione costruita a partire dai valori degli
attributi per la riga, e dall’altro lato un valore costante o un’altra espressione.
Nell’argomento della clausola WHERE è accettato anche l’operatore like che permette di
confrontare stringhe alfanumeriche e di filtrarle per assonanza; questo operatore può essere
integrato con i caratteri jolly ‘_’ e ‘%’ che, in Access diventa ‘*’. Il trattino sottolineato ‘_’
rappresenta nel confronto un carattere arbitrario; il carattere percentuale ‘%’ rappresenta una stringa
di numero e caratteri arbitrari.
Qualche esempio:
39
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
Supponiamo di avere la seguente tabella
Nome
Mario
Carlo
Giuseppe
Franco
Carlo
Lorenzo
Marco
Paola
Cognome
Rossi
Bianchi
Verdi
Neri
Rossi
Lanzi
Franchi
Borroni
Dipartimento
Amministrazione
Produzione
Amministrazione
Distribuzione
Direzione
Direzione
Produzione
Amministrazione
Ufficio
10
20
20
16
14
7
46
40
l’interrogazione del tipo
select Nome, Cognome
from impiegati
renderebbe la seguente tabella
Nome
Mario
Carlo
Giuseppe
Franco
Carlo
Lorenzo
Cognome
Rossi
Bianchi
Verdi
Neri
Rossi
Lanzi
Nome
Mario
Carlo
Giuseppe
Franco
Cognome
Rossi
Bianchi
Verdi
Neri
Mentre un’interrogazioni del tipo
Select Nome, Cognome
From impiegati
Where stipendi <>
Renderebbe una tabella
40
Stipendio
45
36
40
45
80
73
20
75
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
Se invece volessi conoscere i nomi di coloro che hanno uno stipendio compreso tra i 45 e i 70 euro
dovrei inserire il comando
Select
From
Where
stipendio
<=
70
and
stipendio
Nome
impiegati
>=
45
Vediamo qualche comando con l’operatore like e i caratteri jolly.
Supponiamo di voler estrarre tutti gli impiegati il cui nome finisce per O, la sintassa sarà la seguente
Select
From
Where
Che
Select
From
Where
Nome
like
in
Access
Nome
like
Nome
impiegati
‘%o’
diverrebbe
Nome
impiegati
’*0’
Se volessi estrarre tutti i nomi e cognomi degli impiegati che come seconda lettera del nome hanno
una
A
e
come
ultima
una
O
dovrei
eseguire
l’interrogazione
Select Nome, Cognome
From impiegati
Where Nome like ‘_a%o’.
La clausola GROUP BY serve a fornire una discriminante sui record di un campo, e permette di
dividere in sottoinsiemi le tabelle consentendo di effettuare operazioni logico matematiche su questi
sottoinsiemi.
La sintassi generale è group by .
Applicando il comando sulla tabella impiegati possiamo ottenerne un’altra che riporti la somma
degli stipendi per dipartimento con la seguente sintassi:
select dipartimento, sum (stipendio) as Stipendio
from impiegati
group by dipartimento
il risultato sarebbe
Dipartimento
Produzione
Amministrazione
Distribuzione
Direzione
Stipendio
82
125
45
153
41
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
La clausola HAVING descrive le condizioni che si devono applicare al termine dell’esecuzione di
una interrogazione che fa uso della clausola GROUP BY. Ogni sottoinsieme costruito dalla clausola
GROUP BY comparirà nel risultato se soddisfa la condizione posta dalla clausola HAVING.
Supponiamo che io voglia visualizzare i dipartimenti che elargiscano stipendi per un importo totale
superiore
a
100,
la
sintassi
che
andrò
ad
inserire
sarà:
selct Dipartimento, sum (Stipendio)
from impiegati
group by Dipartimento
having sum (Stipendi) > 100.
La tabella risultante dunque sarà:
Dipartimento
Amministrazione
Direzione
Sum (Stipendio)
125
153
[Giuseppe Cecchini]
A volte possiamo avere l’esigenza di trovare tutti i record i cui campi abbiano valori simili, questo
perché non siamo molto sicuri del valore che cerchiamo, ma ne conosciamo solo una parte. In questi
casi si può utilizzare la condizione LIKE al posto del simbolo = e il simbolo % per indicare la parte
non nota della stringa. Un esempio potrebbe essere: SELECT id, autore FROM elenco cd WHERE
autore LIKE ‘%dil%; in questo modo vengono restituiti tutti i record nei quali il campo autore
contiene la stringa “dil”.
Un esempio dell’operatore BETWEEN: SELECT * FROM elenco cd WHERE prezzo BETWEEN
‘15’ AND ‘35’; in questo modo vengono restituiti tutti i record dove il valore del campo prezzo è
compreso tra 15 e 35 euro.
• GROUP BY, questa clausola raggruppa i dati in funzione del campo specificato,
consentendo di effettuare operazioni di conteggio dei risultati all’interno di una stessa query.
Ad esempio il comando SELECT COUNT(*) AS quanti FROM elenco cd GROUP BY id
autore; conta i campi della tabella in funzione dell’autore (se id=1 conta tutte le opere del
primo autore della tabella che contiene i campi id e autore).
• HAVING, è simile a WHERE ma consente di effettuare operazioni utilizzando come
clausole condizionali funzioni di aggregazione (vedi post: “Aggregate functions”) piuttosto
che valori definiti statisticamente. Ad esempio SELECT COUNT (*) AS quanti FROM
elenco cd HAVIG MAX (prezzo)<10; conta il numero di record della tabella elenco cd il cui
prezzo è inferiore a 10 euro.
[Daniele Germani]
Possiamo avere la necessità di recuperare il costo medio oppure totale suddiviso per ruolo.
Sappiamo di poter sfruttare le funzioni di aggregazione AVG e SUM per ottenere questi dati ma tutti
gli esempi che abbiamo già visto restituivano sempre e soltanto una singola riga, come totale o
42
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
media di tutte le righe richieste dalla clausola WHERE (o dall'intera tabella in assenza della
clausola). Vediamo invece come spaccare il set di risultati in più gruppi, ognuno dei quali con il
proprio criterio di aggregazione:
SELECT ruolo, AVG(stipendio) AS media, SUM(stipendio) AS somma
FROM dipendenti GROUP BY ruolo
Restituirà tre colonne in cui la prima conterrà il ruolo del gruppo di dipendenti, la seconda lo
stipendio medio del gruppo cui appartengono e la terza la somma degli stipendi di ogni gruppo di
persone:
RUOLO
Impiegato
Direttore
MEDIA
1000
3100
SOMMA
5000
9500
È importante capire il funzionamento della clausola GROUP BY e delle funzioni di aggregazione,
perché il loro comportamento è ben differente da quello delle altre clausole; affinchè sia possibile il
raggruppamento è necessario che tutti i campi coinvolti nella selezione siano raggruppati.
Nell'esempio precedente esiste un criterio di raggruppamento dato dal campo ruolo che segue la
clausola GROUP BY, mentre gli altri due campi contengono funzioni di aggregazione che
restituiscono sempre un'unica riga. L'espressione contiene quindi tre campi raggruppati.
Il principio di fondo delle funzioni di aggregazione e della clausola GROUP BY è infatti questo:
tutti i campi devono rappresentare un raggruppamento, dettato da un'aggregazione oppure da una
clausola GROUP BY.
[Giuseppina Brunetti]
SQL, inoltre, mette a disposizione quattro categorie di operatori:
• di confronto, per determinare ugualianze e disugualianze tra i valor
• aritmetici, attraverso cui si posso effettuare calcoli
• condizionali, WHERE, per definire criteri di ricerca mirati. ( Il comando WHERE, in
Oracle, sostituisce l’ INNER JOIN di Microsoft)
• logici, quali AND, OR, NOT e XOR.
In conclusione, possiamo aggiungere qualche informazione generica sulla sintassi dei comandi
SQL:
• Il linguaggio SQL non e’ case-sensitive
• Le parentesi quadrate ([]) indicano elementi che sono opzionali e che quindi non devono
necessariamente comparire.
• I tre punti (…) indicano elementi che possono essere ripetuti. Ad esempio:
[ , [ vincolo_di_tabella ] … ]
indica che l’elemento “, [vincolo_di_tabella]” puo’ essere ripetuto quante volte e’ necessario.
• Elementi separati dal carattere “|” ed eventualmente raggruppati dalle parentesi graffe ({})
indicano elementi che sono in alternativa. Ad esempio:
{ elemento1 | elemento2 }
indica che in quella posizione andra’ scritto o elemento1 o elemento2.
• Il testo scritto fra apici singoli (’) o doppi (”) va scritto esattamente come indicato (apici,
maiuscole e minuscole comprese).
43
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
Gli altri caratteri (ad esempio, le virgole (,) o i doppi apici (”)) devono comparire cosi’ come
sono.
[Chiara Pellicciotta]
•
Esercitazioni con SQL: Query semplici e join in Access
Access è un DBMS realizzato da Microsoft ed incluso nella suite di prodotti Microsoft Office, che
consente la creazione di un database o tramite un db vuoto, oppure seguendo modelli reimpostati
per
i
meno
esperti
.
Una sua analisi richiede di porre enfasi su diversi aspetti. In prima istanza è necessario analizzare le
procedure di definizione delle tabelle,dal momento che per definire lo schema di una nuova tabella
Access
offre
diverse
modalità:
1. Visualizzazione foglio dati: con cui si definisce lo schema della tabella come se si operasse su un
foglio
EXCEL
2. Visualizzazione struttura: attraverso tale impostazione si definiscono per prima cosa i campi poi
una serie di domini ( ad es. testo, numerico, data/ora, etc.). Per ogni campo possono poi esser
specificate ulteriori proprietà ( ad es. dimensione campo, formato, etichetta, valido se, etc.). l’ultimo
passaggio sarà quello di specificare la chiave primaria (anche selezionando Chiave primaria dal
menù
VISUALIZZA)
3. Creazione guidata:opera attraverso uno strumento che permette di costruire la nostra tabella
attraverso
domande
ed
esempi
a
cui
far
riferimento.
4. Importa e collega tabella: tali opzioni permettono di importare o collegare dall’esterno una
tabella.
Ovviamente la creazione di tabelle può esser realizzata anche operando in SQL. Ogni tabella verrà
quindi definita associandole un nome e gli attributi che ne definiscono lo schema.
La sintassi per la definizione delle tabelle è: create table NomeTabella ( NomeAttributo Dominio
[ValorediDefault] [Vincoli] {,NomeAttributo Dominio [ValorediDefault] [Vincoli] } AltriVincoli).
Ad esempio per creare la tabella dipartimento con informazioni su nome, indirizzo e città avremo:
create table Dipartimento (Nome char(20) primary key, Indirizzo char(30), Città char(20) ).
Ulteriore specifica di Access riguarda le Join. Per definire una relazioni tra coppie di attributi di due
tabelle, come nel caso precedente, è possibile operare sia attraverso la sintassi SQL (vedi altro post
sul blog: "interrogazioni mediante join") che in modo grafico. Nella finestra RELAZIONI è infatti
possibile definire i cammini di join selezionando un attributo e spostando il mouse sull’ attributo
dell’ altra tabella.
È inoltre possibile agire anche su una ulteriore finestra per definire il tipo di join richiesto (inner,
outer left, outer right). Anche in questo caso il risultato della query potrà essere visualizzato come
stringa di testo (SQL).
La possibilità di operare attraverso questa duplice modalità è presente anche per la definizione delle
query. Lo strumento grafico per formulare interrogazioni sul db è il QBE (query by example), ed
44
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
avviene riempiendo uno schema che presenta le etichette CAMPO, ORDINAMENTO, MOSTRA e
CRITERI al fine di definire le condizioni che devono essere rispettate. Access consente di
impostare all’interno di questa finestra le condizioni della query utilizzando i normali operatori di
confronto (quali like, >, <, etc). Ad esempio qualora si volessero estrarre da una tabella in
visualizzazione struttura i cognomi delle persone il cui cognome inizia per C inseriremo nella
colonna Cognome, tra i CRITERI Like “C*”. Le query possono essere definite operando tramite
sintassi SQL (vedi altro post sul blog. "SQL query,inserimento e update).
Quando si lavora con Access, particolare attenzione deve essere rivolta alle parole e alla sintassi che
potrebbero cambiare da DBMS a DBMS. Si pensi ad esempio alla diversa lunghezza delle stringhe
a lunghezza fissa e variabili (char, varchar).
[Veccari Ilaria, Lorenzo Marino]
Tra i DBMS più diffusi sul mercato troviamo Oracle, Basis, Ms Sql Server, MySql, Ms Access.
Tutti "parlano" in SQL , ognuno con piccolissime differenze tra loro; tuttavia, la differenza che
passa tra i primi nei confronti di Access è che questo ultimo è un DBMS locale, mentre tutti gli altri
sono server-side, cioè il loro funzionamento in fase di sviluppo avviene mediante un client
(macchina di sviluppo) ed un server (dove risiede fisicamente il DBMS). Grazie ad Access è
possibile toccare con mano come funziona e cosa si può fare con un sistema di database: esso è il
più semplice, rispetto ad altri, da installare, usare, e non richiede particolari architetture
[Alessandra Fanigliulo]
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
(#).
*Fonte: “Basi di Dati Modelli e linguaggi di interrogazione”, Atzeni P.; Ceri S.; Paraboschi S.;
Torlone R. McGraw-Hill Milano 2006.
[Giuseppe Cecchini]
45
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
Per vari motivi, storici e strategici, il dialetto SQL usato in Microsoft Access è molto diverso dallo
standard SQL.
DELETE *
Per esempio, in qualunque SQL standard si usa come sintassi per l'eliminazione di dati in una
tabella
DELETE FROM tabella
In Access si deve specificare un asterisco. L'asterisco è un'aggiunta inutile in fase di eliminazione,
perché - a differenza di un'operazione di INSERT o UPDATE, che si possono applicare anche solo a
una colonna - il DELETE si applica unicamente a record interi!
LIKE '*ciao*'
Un altro uso fuori standard dell'asterisco riguarda la clausola LIKE: in tutti gli altri SQL per cercare
una stringa contenuta in un campo si usa il %:
SELECT
*
FROM
anagrafica
WHERE
nome
LIKE
'mar%'
Questo estrarrà tutti i record della tabella anagrafica in cui il nome inizia con mar e termina con
qualunque carattere (Marco, Marcello, Mario, Maria, Mariano...). In Access si usa l'asterisco:
SELECT * FROM anagrafica WHERE nome LIKE 'mar*'
Ma l'asterisco, in SQL, indica SOLO "tutti i campi", come si può vedere dall'esempio.
Stesso trattamento per _ (underscore), che serve ad indicare un solo carattere, e che in Access è
rimpiazzato da ? (punto di domanda):
SELECT * FROM anagrafica WHERE nome LIKE 'mar_o'
che restituisce Marco, Mario, Marzo... diventa
SELECT
*
FROM
anagrafica
WHERE
46
nome
LIKE
'mar?o'
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
In SQL la clausola JOIN è utilizzata per assiociare due tabelle tra loro:
SELECT
FROM
INNER JOIN anagrafica ON
INNER
JOIN
nazioni
ON
stipendi.ID_anagrafica
anagrafica.ID_nazione
*
stipendi
=anagrafica.ID
=
nazioni.ID
In Access il JOIN fra più di due tabelle deve utilizzare le parentesi:
SELECT
FROM
(nazioni
INNER
anagrafica.ID_nazione)
INNER JOIN stipendi ON
JOIN
anagrafica
anagrafica.ID
=
ON
nazioni.ID
*
=
stipendi.ID_anagrafica
Niente di grave, se non fosse che il JOIN senza parentesi non è accettato, restituisce un errore.
Inoltre i JOIN sono effettuati con un ordine arbitrario, il che si traduce nell'impossibilità di
utilizzare LEFT JOIN e RIGHT JOIN nella maniera utilizzata dal programmatore SQL.
Inoltre se le tabelle sono tante e la query complessa, diventa quasi impossibile capire a colpo
d'occhio cosa è collegato con cosa:
SELECT
*
FROM company INNER JOIN (((vital_statistics INNER JOIN (LBranch
INNER JOIN ((loss RIGHT JOIN (Lcurrency INNER JOIN (allocation
INNER JOIN risk ON allocation.ID_risk = risk.ID) ON Lcurrency.ID =
risk.ID_currency) ON loss.ID_risk = risk.ID) LEFT JOIN insurance
ON loss.ID_policy = insurance.ID) ON LBranch.CODICE_RAMO =
risk.IDBranch) ON vital_statistics.ID = risk.ID_vital) LEFT JOIN
transfers ON allocation.ID = transfers.ID_allocation) LEFT JOIN
LtransferType
ON
transfers.ID_type
=
LtransferType.ID)
ON
company.ID
=
allocation.ID_company
Anche il WHERE è reinterpretato con una grande opulenza di parentesi: per estrarre chi si chiama
di nome Marco e di cognome Rossi, si dovrebbe scrivere
SELECT *
"Rossi"
FROM
anagrafica
WHERE
nome
=
"Marco"
AND
cognome
=
Ecco che Access interviene ad aggiungere qualche parentesi:
SELECT * FROM anagrafica WHERE (((anagrafica.nome)="Marco") AND
((anagrafica.cognome)="Rossi"))
È abbastanza evidente che il codice fa la stessa cosa, ma il numero di parentesi è decisamente
ingiustificato. perché metterne anche attorno al nome del campo? Inoltre applicando più condizioni
la lettura del codice SQL è pressoché impossibile.
47
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
Punti e virgola nelle funzioni
In tutti i linguaggi SQL, per distinguere i parametri di una funzione si usa , (virgola). MSAccess è
l'unico che usa il ; (punto e virgola):
SQL "normale":
SELECT ROUND(importo, 2) FROM contabililta
SQL "dialetto Access":
SELECT ROUND(importo; 2) FROM contabililta
[Valentina Casamassa]
Aggregate Functions
Le funzioni di aggregazioni sono funzioni standard native di SQL. Esse offrono la possibilità di
effettuare calcoli e ottenere valori numerici in funzione di query specifiche. Se si utilizza di una
funzione di aggregazione è consigliabile specificare un alias per il risultato, con l'utilizzo della
clausola AS. Un alias è un nome temporaneo assegnato ad un operazione e tale nome può essere
chiamato temp.
[Daniele Germani]
Le funzioni di aggregazione eseguono un calcolo su un set di valori e restituiscono un valore
singolo. Ad eccezione della funzione COUNT, le funzioni di aggregazione ignorano i valori Null.
Tutte le funzioni di aggregazione sono deterministiche. Ciò significa che le funzioni di
aggregazione restituiscono lo stesso valore ogni volta che vengono chiamate con un set specifico di
valori di input.
[Raffaella Valente]
Le più importanti funzioni di aggregazione sono:
COUNT
La funzione COUNT viene utilizzata per recuperare il numero di righe di una colonna. Ad esempio:
SELECT
Questa
COUNT(*)
funzione
può
AS
essere
totale
utilizzata
48
FROM
su
qualunque
nomeTabella;
tipo
di
dato.
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
COUNT(DISTINCT)
Questa funzione restituisce il numero delle diverse combinazioni che non contengono il valore
NULL.
Ad esempio, se in una colonna abbiamo 10 righe: 5 contenenti la parola "calcio", 3 contenenti il
termine "tennis" e le ultime 2 con "golf", effettuando un COUNT(DISTINCT) avremo il numero di
combinazioni diverse, ovvero 3 (calcio, tennis, golf).
SELECT(DISTINCT
nomeCampo)
FROM
nomeTabella;
Per riassumere quindi, se avessimo una tabella di MySQL che raccoglie le registrazioni a un
determinato sito, SELECT COUNT(DISTINCT) può essere utile per sapere quanti nomi diversi
sono
stati
usati,
oppure
quanti
diversi
titoli
di
studio
ecc.
MAX
Questa funzione restituisce il valore più alto contenuto all'interno di una colonna. Per i campi
numerici, restituisce il numero più alto, per quelli testuali (nei nuovi MySQL questa operazione è
permessa) seleziona il campo che secondo l'ordine alfabetico è più avanti (ad esempio due valori:
Alessandro e Filippo prende Filippo)
SELECT
MAX(nomeCampo)
FROM
nomeTabella;
MIN
Questa funzione fa esattamente l'opposto della precedente: prende il valore più basso. Ecco un
esempio:
SELECT
MIN(nomeCampo)
FROM
nomeTabella;
AVG
Restituisce una media dei valori presenti in un campo. Da applicare ai soli campi numerici:
SELECT
AVG(nomeCampoNumerico)
FROM
nomeTabella;
FROM
nomeTabella;
SUM
La funzione SUM somma i valori contenuti nel campo:
SELECT
SUM(nomeCampoNumerico)
Anche questa funzione, va applicata ai soli campi numerici.
[Anita Mammetti]
CHECKSUM_AGG : restituisce il valore di checksum dei valori di un gruppo: CHECKSUM_AGG
( [ ALL DISTINCT ] expression )
STDEV: restituisce la deviazione statistica standard di tutti i valori nell'espressione specificata:
STDEV ( [ ALL DISTINCT ] expression )
49
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
COUNT_BIG : restituisce il numero di elementi in un gruppo. Il funzionamento di COUNT_BIG è
analogo a quello della funzione COUNT. L'unica differenza è il valore restituito. COUNT_BIG
infatti restituisce sempre un valore di tipo bigint mentre COUNT restituisce sempre un valore di
tipo int:
COUNT_BIG ( { [ ALL DISTINCT ] expression } * )
STDEVP : restituisce la deviazione statistica standard relativa alla popolazione di tutti i valori
dell'espressione specificata: STDEVP ( [ ALL DISTINCT ] expression )
GROUPING :Indica se un'espressione della colonna specificata in un elenco GROUP BY è
aggregata. GROUPING restituisce 1 per le espressioni aggregate o 0 per le espressioni non
aggregate nel set di risultati. È possibile utilizzare GROUPING solo in un elenco di SELECT e
nelle clausole ORDER BY quando GROUP BY è specificato:
GROUPING ( column_expression )
VAR : restituisce lo scostamento statistico di tutti i valori dell'espressione specificata:
VAR ( [ ALL DISTINCT ] expression )
VARP : restituisce la varianza statistica della popolazione per tutti i valori nell'espressione
specificata:
VARP ( [ ALL DISTINCT ] expression ).
[Raffaella Valente]
Alcune delle funzioni aggregate non esistono in access ma sono riproducibili in altri DBMS. Tra le
funzioni più comuni, quelle non esistenti in access sono STDEV e VAR.
[Francesca Pileggi ]
Per specificare che la funzione aggregata va applicata ad una parte ristretta dei dati, è possibile
utilizzare la clausola OVER. Tramite questa clausola è possibile ottenere i valori calcolati tramite le
funzioni aggregate, rispetto ad un gruppo di dati, oppure è possibile ottenere il valore cumulativo
dei vari gruppi.
[Chiara Di Pietro]
50
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
ANSI SQL
L'SQL nasce nel 1974 ad opera di Donald Chamberlin, nei laboratori dell'IBM. Si propone come
uno strumento in grado di lavorare con un data base seguendo un modello relazionale. Nel 1975
viene sviluppato un prototipo chiamato SEQUEL-XRM; con esso si eseguirono sperimentazioni che
portarono, nel 1977, a una nuova versione del linguaggio chiamato SQL. Su di esso si sviluppò il
prototipo System R, che venne utilizzato da IBM esclusivamente per usi interni. Ma visto il suo
trionfo, anche altre società iniziarono subito a sviluppare prodotti basati su SQL. Nel 1981 IBM
iniziò così a vendere alcuni prodotti relazionali. SQL divenne subito lo standard industriale per i
software che utilizzano il modello relazionale.
L'American National Standards Institute - Istituto Americano di Normalizzazione, più noto come
ANSI, un'organizzazione privata non a fini di lucro che produce standard industriali per gli Stati
Uniti, lo adottò come standard fin dal 1986, senza apportare modifiche sostanziali alla versione
inizialmente sviluppata da IBM. Negli anni successivi si realizzarono altre versioni, che furono
SQL/89, SQL/92 e SQL/2003. Tale processo di standardizzazione mirava alla creazione di un
linguaggio che funzionasse su tutti i DBMS relazionali, ma questo obiettivo non fu mai raggiunto.
Tanti sono i linguaggi SQL che presentano differenze sostanziali l’uno con l’altro. Tra i più noti
ricordo Oracle SQL e My SQL.
[Alessia Giammarinaro]
L'ANSI lo adottò come standard fin dal 1986. Questo processo di standardizzazione mirava alla
creazione di un linguaggio che funzionasse su tutti i DBMS (Data Base Management System)
relazionali, ma in realtà lo standard si limita alla sintassi ed al nome dei comandi poiché ogni
DBMS parla un dialetto che si differenzia, sia pur minimamente, dagli altri.
[Stefania Mastronuzzi]
Avere uno standard definito per un linguaggio per database apre potenzialmente la strada alla
intercomunicabilità fra tutti i prodotti che si basano su di esso.
[Alessandra Fanigliulo]
ANSI SQL è l'acronimo di Structured Query Language della American National Standard Institute e
rappresenta un tentativo di standardizzazione del linguaggio SQL nelle diverse piattaforme, può
essere considerato come uno sforzo di unitarietà che avrebbe dovuto permettere a tutti di “parlare la
stessa lingua”..una sorta di vocabolario pronto all'uso insomma. In realtà, però, ogni tipo di
linguaggio presenta delle differenze sostanziali che non hanno consentito a tale progetto di
realizzarsi pienamente.
[Roberta Allegretti]
Lo standard prevede tre diversi livelli del linguaggio caratterizzati da una complessità crescente:
Entry SQL, Intermediate SQL e Full SQL. L’ obiettivo è quello di permettere lo sviluppo di
51
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
implementazioni a stadi successivi che permettano quindi passare nel tempo dal livello Entry fino a
quello 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
[Lorenzo Marino]
Che cosa sono i datawarehouse e cosa li differenzia dai sistemi OLTP
Inmon, nel 1992, diede una definizione di datawarehouse:
"Un datawarehouse è un data base relazionale subject oriented, integrato, non volatile, time variant,
progettato per il supporto alle decisioni."
Ma analizziamo meglio il significato di questa definizione, cos'è un datawarehouse?
[Domitilla Matarazzo]
Un Data warehouse (o DW) (termine inglese traducibile con magazzino di dati), è un archivio
informatico contenente i dati di un'organizzazione. I DW sono progettati per consentire di produrre
facilmente relazioni ed analisi.
Vengono considerati componenti essenziali di un sistema Data warehouse anche gli strumenti per
localizzare i dati, per estrarli, trasformarli e caricarli, come pure gli strumenti per gestire un
dizionario dei dati. Le definizioni di DW considerano solitamente questo contesto ampio.
Una definizione ampliata comprende inoltre gli strumenti per gestire e recuperare i metadati e gli
strumenti di business intelligence.
I datawarehouse (magazzini di dati) sono una sorta di implementazione dei database per rispondere
alle esigenze crescenti delle aziende. I datawarehouse sono degli strumenti idonei per corroborare le
decisioni del management.
52
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
I DW rappresentano lo strumento per l’evoluzione del dato in informazione.
Dunque, secondo la definizione riportata, il DW deve essere:
Orientato al soggetto;
Integrato;
Invariante nel tempo;
Non volatile.
Mentre un database è una raccolta di dati fine a se stessa, con il datawarehouse ci troviamo nel
campo della business intelligence che, appunto, si prefigge di fornire un supporto alle decisioni
aziendali e alla risoluzione dei problemi.
[Giuseppe Cecchini]
Integrata: requisito fondamentale di un data warehouse è l’integrazione dei dati raccolti. Nel data
warehouse confluiscono dati provenienti da più sistemi transazionali e da fonti esterne. L’obiettivo
dell’integrazione può essere raggiunto percorrendo differenti strade: mediante l’utilizzo di metodi di
codifica uniformi, mediante il perseguimento di una omogeneità semantica di tutte le variabili,
mediante l’utilizzo delle stesse unità di misura;
Orientata al soggetto: il DW è orientato a temi aziendali specifici piuttosto che alle applicazioni o
alle funzioni. In un DW i dati vengono archiviati in modo da essere facilmente letti o elaborati dagli
utenti. L’obiettivo, quindi, non è più quello di minimizzare la ridondanza mediante la
normalizzazione, ma quello di fornire dati organizzati in modo tale da favorire la produzione di
informazioni. Si passa dalla progettazione per funzioni ad una modellazione dei dati che consenta
una visione multidimensionale degli stessi;
Variabile nel tempo: i dati archiviati all’interno di un DW coprono un orizzonte temporale molto più
esteso rispetto a quelli archiviati in un sistema operativo. Nel DW sono contenute una serie di
informazioni relative alle aree di interesse che colgono la situazione relativa ad un determinato
fenomeno in un determinato intervallo temporale piuttosto esteso. Ciò comporta che i dati contenuti
in un DW siano aggiornati fino ad una certa data che, nella maggior parte dei casi, è antecedente a
quella in cui l’utente interroga il sistema. Ciò differisce da quanto si verifica in un sistema
transazionale, nel quale i dati corrispondono sempre ad una situazione aggiornata, solitamente
incapace di fornire un quadro storico del fenomeno analizzato;
Non volatile: tale caratteristica indica la non modificabilità dei dati contenuti nel DW che consente
accessi in sola lettura. Ciò comporta una semplicità di progettazione del database rispetto a quella di
un’applicazione transazionale. In tale contesto non si considerano le possibili anomalie dovute agli
aggiornamenti, né tanto meno si ricorre a strumenti complessi per gestire l’integrità referenziale o
per bloccare record a cui possono accedere altri utenti in fase di aggiornamento.
[Simona Rauseo]
53
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
Le diverse operazioni eseguibili, attraverso i datawarehouse, sono:
-Integrazione tra fonti dati eterogenee.
-Offerta dei dati stabili rappresentativi dell'evoluzione aziendale.
-Organizzazione dei dati in strutture semplificate mirate a migliorare l'efficienza delle query
analitiche.
-Semplificazione dei requisiti di protezione.
-Contenimento dei dati trasformati, validi, consolidati e formattati
-Aggiornamento dei datawarehouse stessi periodicamente con dati aggiuntivi.
per
l'analisi.
[Domitilla Matarazzo]
il datawarehouse si inserisce all’interno degli OLAP (On Line Analytical Processing) che
presentano una struttura dati costituita da poche tabelle non normalizzate e prevedono una serie di
operazioni complesse, che possono coinvolgere molti dati, per il supporto alle decisioni. Tutte
queste caratteristiche differenziano i datawarehouse dai sistemi OLTP (On-Line Transaction
Processing) i quali non prevedono la creazione di banche dati separate dal momento che 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 stessi; per la sua stessa natura,
tuttavia, 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. Tradizionale
elaborazione di transazioni, le quali realizzano i processi operativi dell’azienda-ente, operazioni
predefinite e relativamente semplici, coinvolgimento di un esiguo quantitativo di dati, dettaglio e
aggiornamento di questi ultimi, sono alcune delle caratteristiche rilevanti dei sistemi OLTP.
[Roberta Allegretti]
Cosa differenzia i datawarehouse dai sistemi OLTP?
A differenza dei database OLTP (Online Transaction Processing),che hanno strutture complesse,il
cui scopo è quello di acquisire volumi elevati di transazioni di modifica e aggiunta di dati, lo scopo
dei datawarehouse consiste nell'organizzare grandi quantità di dati stabili per agevolare le
operazioni di analisi e recupero.
I database relazionali OLTP sono ideali per la gestione di dati in evoluzione. Generalmente sono
utilizzati da diversi utenti che eseguono contemporaneamente transazioni che comportano la
modifica dei dati in tempo reale. Sebbene le singole richieste di dati da parte degli utenti facciano in
genere riferimento a poche righe, vengono eseguite contemporaneamente molte di queste richieste. I
database OLTP sono progettati per consentire alle applicazioni transazionali di scrivere solo i dati
necessari per la gestione di una singola transazione nel modo più rapido possibile.
[Domitilla Matarazzo]
54
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
Architetture per i sistemi informativi aziendali: DBMS transazionali, Data mart, DW
Grazie all’informatica le informazioni sono oggi più facilmente producibili, archiviabili,
analizzabili e , in generale, gestibili rispetto al passato. Il valore di questa risorsa è andato
aumentando man mano che le dinamiche dello scenario competitivo hanno reso lo scambio e la
condivisione delle informazioni un elemento alla base di molte politiche di gestione. In maniera
estremamente semplicistica possiamo affermare che i dati costituiscono la materia prima con la
quale è strutturata l’informazione dalla quale verranno estrapolate le grandezze ritenute
rappresentative dall’azienda: valore degli ordini di uno specifico cliente, quantità di materia prima
transitata da un magazzino ad un altro, risultati economici delle attività di vendita, livello di servizio
al cliente, etc. Dati, informazioni e conoscenza di per se non sono fonte di vantaggio, ma lo
diventano solo quando vengano opportunamente utilizzati e trasmessi laddove se ne abbia bisogno.
Lo strumento utilizzato allo scopo di veicolare in maniera veloce ed efficiente le informazioni è
costituito dai sistemi informativi aziendali. Il Sistema Informativo Aziendale è identificabile come
quel complesso di strumenti, risorse e attività che rileva in modo sistematico, elabora, scambia e
archivia dati con lo scopo di produrre e distribuire le informazioni nel momento e nel luogo adatto e
alle persone che in azienda ne hanno bisogno. In altre parole, esso rappresenta il sistema nervoso
dell'azienda, attraverso il quale vengono veicolati i segnali percepiti sia dall'interno dell'azienda
stessa
sia
dal
contesto
ambientale
esterno.
Il sistema informativo aziendale è costituito non solo da componenti software e hardware, ma anche
da altri elementi quali, ad esempio, procedure, strumenti, persone e competenze tra le quali
avvengono interazioni che portano alla produzione ed elaborazione delle informazioni.
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
[Mariangela Vecchiarini]
La sua componente informatizzata è costituita da due categorie di strumenti per la gestione dei dati:
a) Data Base per l’elaborazione delle transazioni. Tali sistemi, detti anche operazionali,
identificano l’insieme delle applicazioni che supportano in tempo reale le attività giornaliere
inerenti
il
business
dell’azienda.
b) Data Base per il Supporto alle Decisioni. Sono i sistemi di supporto alle scelte strategiche del
management: categoria in cui rientrano le applicazioni di reportistica nonché le applicazioni di
datawarehousing.
I dati raccolti in azienda costituiscono però un patrimonio di conoscenze spesso inutilizzato proprio
perché i dati sono organizzati esclusivamente per le attività transazionali.
Grazie a processi ETL (Extraction, Trasformation, Loading): ossia strumenti software dedicati
all'integrazione dei dati provenienti dai diversi DB transazionali, i dati possono essere trasferiti ai
DW, cioè strumenti che consentono alle organizzazioni di poter ottenere un vantaggio competitivo,
trasformando i dati memorizzati in sorgenti eterogenee in informazioni utili a supportare le attività
55
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
decisionali.
Tale memorizzazione può avvenire o all'interno di un unico database (il DW), oppure all'interno dei
Data Mart (termine con il quale si un data warehouse di piccole dimensioni, orientato a supportare
una determinata area di attività).
DM e DW consentono agli utenti di analizzare,tramite strumenti intuitivi (ad es tabelle e grafic) i
metadati ( si pensi ad esempio alle vendite di un mese, i ricavi di un prodotto, etc), semplificando i
processi di decision making.
[Veccari Ilaria]
Ma osserviamo più da vicino cosa sono i DBMS transazionali, i datawarehouse e i data mart.
DBMS transazionali:
I dbms transazionali sono dbms ad alta diffusione che sono basati generalmente sul linguaggio sql, e
devono la loro diffusione alla semplicità del concetto di transazione cioè quell'operazione che si
deve concludere sempre con un successo o un insuccesso (sono DBMS in cui le operazioni di
scrittura sul database sono in grado di essere ripristinati se non sono compilati nel modo giusto).
DW:
I datawarehouse sono dbms orientati all'analisi che non hanno bisogno di sistemi di sicurezza,di
dinamicità e di normalizzazione che invece sono caratterizzanti dei sistemi transazionali. Possiamo
definirli come tipi di sistemi decisionali, orientati all'analisi utente interattiva, intuitiva e veloce di
dati
corretti
e
consolidati.
DATA
MART:
Un data mart è un sottoinsieme di un DW, è più piccolo, semplificato e funziona indipendentemente
da esso. Un data mart contiene meno informazioni e quindi è più facile navigare in essi, non
contiene dati operativi e si focalizza solo sui requisiti di un particolare dipartimento. Solitamente
nelle grandi aziende c'e' l'esigenza di dividere il datawarehouse in diversi data mart.
[Domitilla Matarazzo]
La necessità di creare un sistema separato per il Data mart rispetto al Data warehouse può
riassumersi nelle seguenti motivazioni:
- La necessità di utilizzare un diverso schema.
- Migliorare le performance separando il computer dedicato.
- Garantire una maggiore sicurezza dovendo autorizzare l'accesso ad un insieme minore di dati. Nel
DW sono contenute una serie di informazioni relative alle aree di interesse che colgono la
situazione relativa ad un determinato fenomeno in un determinato intervallo temporale piuttosto
esteso. Ciò comporta che i dati contenuti in un DW siano aggiornati fino ad una certa data che, nella
maggior parte dei casi, è antecedente a quella in cui l'utente interroga il sistema. Ciò differisce da
quanto si verifica in un DBMS transazionale, nel quale i dati corrispondono sempre ad una
situazione aggiornata, solitamente incapace di fornire un quadro storico del fenomeno analizzato;
[Valentina Casamassa]
Un azienda e nello specifico un manager, oggi, possono contare su un’architettura tecnologica
56
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
articolata su più livelli:
Il primo livello è costituito dai sistemi di supporto operativo ERP (Enterprise Resource Planning,
sono sistemi che alla gestione della produzione e della distribuzione integrano le applicazioni
informatiche per i processi di supporto, quali amministrazione, gestione delle risorse umane e
contabilità) e CRM (Customer Relationship Managment, sistemi per la gestione delle relazioni con i
clienti). Tali sistemi sono definiti transazionali e sfruttano basi di dati transazionali (memorizzano
singole transazioni riferite a eventi gestionali; si pensi a tutte le transazioni che vengono
memorizzate giornalmente da una società che gestisce una catena di 100 ipermercati dislocati in
tutta Europa, ciascuno dei quali vende migliaia di prodotti ogni giorno).
Tra il primo e il secondo livello si trovano alcuni strumenti software specialistici dedicati alla
mappatura, “pulizia” e trasferimento dei dati nelle basi dati fisiche del secondo livello.
Il secondo livello è costituito dalle basi dati direzionali, realizzate con approcci logici di data
warehousing o di data marting: queste basi dati integrano fonti diverse di dati e separano l’ambiente
operativo e transazionale del sistema informativo aziendale dall’ambiente di analisi e produzione
delle
informazioni
manageriali.
Il terzo livello è quello dei sistemi di business intelligence, che comprendono diversi strumenti
software:
• sistemi per il supporto alle decisioni (Decision Support System) quali soluzioni data mining. Gli
strumenti software di data mining sono utilizzati per ricercare informazioni in un datawarehouse e
permettono di effettuare analisi volte ad individuare modelli latenti che si celano in grandi volumi
di dati.
• diversi strumenti per la presentazione, l’interrogazione, il reporting e la visualizzazione dei dati
direzionali.
[Daniele Germani]
Funzione dell'ETL e i principali tool software di ETL
Come già visto a proposito dei sistemi informativi aziendali, un azienda e nello specifico un
manager possono contare su un’architettura tecnologica articolata 3 livelli: Il primo livello è
costituito dai sistemi di supporto operativo ERP e CRM, il secondo è costituito dalle basi dati
direzionali, realizzate con approcci logici di data warehousinig o di data marting, il terzo è quello
dei sistemi di business intelligence.
Tra il primo e il secondo livello troviamo quei processi che eseguono il ciclo comunemente definito
ETL (Extraction, Trasformation, Loading). [Daniele Germani]
Questa applicazione consente il passaggio dei dati dai sistemi di OLTP al Data Warehouse. Spostare
57
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
i dati da un posto ad un altro costituisce, infatti, la routine per le aziende. L’unico problema è che
questi si trovano sparsi su sistemi eterogenei, di ogni tipo, che hanno formati diversi (es.sistemi di
CRM, sistemi di contabilità). Per ovviare a questi inconvenienti, alcuni produttori propongono
proprio software ETL.
Lo scopo principale di un’applicazione ETL (acronimo di Estrazione, Trasformazione e
Caricamento) è rendere disponibili i dati raccolti in azienda, provenienti dalle fonti più disparate, ai
soggetti incaricati di assumere le decisioni, nella forma e secondo le tempistiche più idonee a
supportare il processo decisionale. I software di ETL permettono, infatti, di leggere i dati dalla loro
fonte, ripulirli e formattarli in modo uniforme, e poi caricarli nel repository di destinazione per
l'uso.
[Laura Rotatori]
L'ETL presenta quindi diverse fasi.
•Estrazione: questo elemento è responsabile dell’estrazione dei dati dalla sorgente del sistema. I dati
estratti vengono poi caricati su un DW temporaneo (un database relazionale in genere distinto dal
DW su cui si opera)per la manipolazione da parte delle rimanenti funzioni ETL.
•Trasformazione: è l’elemento responsabile della convalida dei dati estratti, nel rispetto
dell’integrità dei dati, del tipo di conversione utilizzata (per garantire che i valori per un determinato
campo vengono memorizzati nello stesso modo nel DW, indipendentemente dal modo in cui sono
stati memorizzati nel sistema fonte) e dell’applicazione delle regole di business. E’ il più complicato
degli elementi ETL.
[Daniela Di Russo]
Questa fase consiste, ad esempio, nel:
- Selezionare solo quelli che sono di interesse per il sistema
- Normalizzare i dati (per esempio eliminando i duplicati)
- Tradurre dati codificati
- Derivare nuovi dati calcolati
- Eseguire accoppiamenti (join) tra dati recuperati da differenti tabelle
- Raggruppare i dati
[Lorenzo Perrella]
•Caricamento: questo elemento è responsabile per il caricamento dei dati trasformati in un DW. Tali
magazzini, vengono aggiornati periodicamente e queste operazioni di aggiornamento sono eseguite
spesso in modalità off-line, in modo che i dati possano essere caricati più velocemente.
[Daniela Di Russo]
Da quanto detto possiamo capire l’importanza del ruolo svolto dai i Software di ETL all’interno del
sistema informativo aziendale. In particolare possiamo dire che questi software permettono di
ridurre il tempo per la condurre attività di Business Intelligence (BI) grazie alla rapida generazione
di Data Warehouse, Data Mart e flussi di dati.
58
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
[Laura Rotatori]
La latenza dei processi ETL varia da batch (a volte mensilmente o settimanalmente, ma più spesso
quotidianamente), a near-real-time con aggiornamenti più frequenti (ogni ora, ogni minuto, ecc).
Ci sono numerose difficoltà da fronteggiare per ottenere un´implementazione efficiente ed
affidabile dei processi ETL.
•I volumi di dati crescono in maniera esponenziale, e i processi ETL devono elaborare grandi
quantità di dati granulari (prodotti venduti, chiamate telefoniche, transazioni bancarie.).
Alcuni sistemi BI raramente vengono aggiornati incrementalmente mentre altri richiedono un
caricamento completo ad ogni iterazione.
•Con l´aumento della complessità dei sistemi informatici, anche la disparità delle sorgenti aumenta.
I processi ETL richiedono una connettività di vasta portata per i pacchetti di applicazioni (ERP,
CRM, ecc.), database, mainframe, file, Servizi Web, ecc.
•Le strutture e le applicazioni di Business Intelligence comprendono data warehouse, data mart,
applicazioni OLAP per l´analisi, il reporting, il dashboarding, lo scorecarding, ecc. Tutte queste
strutture target hanno diversi requisiti di trasformazione dei dati e diverse latenze.
•Le trasformazioni coinvolte nei processi ETL possono essere altamente complesse. I dati devono
essere aggregati, sottoposti a parsing, calcolati, elaborati statisticamente, ecc. Le trasformazioni
specifiche BI sono anch´esse necessarie, come lo Slowly Changing Dimensions.
Mentre la BI tende alla simultaneità real-time, i data warehouse e data mart devono essere
aggiornati più spesso e le finestre di tempo del caricamento diventano sempre più brevi.
[Chiara Pellicciotta]
Realizzare e popolare un Data Warehouse e/o Data Mart nel rispetto dei tempi, costruire
rapidamente un centro analitico per un progetto speciale, eseguire una estrazione di file per creare
un report accurato, richiedono un notevole sforzo quotidiano per le organizzazioni.
Principali Benefici
•Riduzione del tempo per condurre attività di Business Intelligence grazie alla rapida generazione di
Data Warehouse, Data Mart e flussi di dati.
•Controlli sui costi per l’integrazione dei dati, sviluppo dei processi ETL e manutenzione grazie a
software solidi ed affidabili che favoriscono la collaborazione e la gestione dei metadati comuni
dall’inizio alla fine del flusso dei dati.
•Creazione di processi ETL riutilizzabili, facilmente modificabili contenenti già al proprio interno
robuste funzionalità per la qualità e correttezza dei dati.
1. •Incremento del ritorno sugli investimenti IT già effettuati grazie alla scalabilità
multipiattaforma e alla interoperabilità standard fra applicazioni ed ambienti operativi
(J2EE, Code di messaggi, Web Services).
Principali Caratteristiche
59
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
•Raccolta, trasformazione, bonifica e caricamento dei dati anche “multi sorgente” per realizzare
Data Warehouse, Data Mart, o Business Intelligence e Analytic data store di successo.
•Gestione completa dei meta-dati, dall’inizio alla fine del flusso dati e nel passaggio attraverso le
diverse strutture informative
•Trasformazioni che possono essere eseguite su qualsiasi piattaforma senza limiti inerenti alle
sorgenti e ai volumi di dati da processare.
•Oltre 300 trasformazioni predefinite a livello di colonne e tabelle.
•Template per Transformation Generator wizard e Java plug-in design per creare, in modo semplice
ed intuitivo, trasformazioni riutilizzabili e ripetibili che vengono poi tracciate e registrate all’interno
dei meta-dati.
•Processi di trasformazione invocabili attraverso programmi custom già esistenti, code di messaggi
e Web Services.
•Trasformazioni eseguibili sia in modalità batch per ingenti volumi di dati, sia in tempo reale per
soddisfare l’emergente necessità di integrazione ed arricchimento dinamico di qualsiasi
infrastruttura presente in azienda.
[Veccari Ilaria]
Per sfruttare appieno l’investimento, però, questi strumenti non devono essere considerati solo
come il “programma per caricare il DataWarehouse”, ma come lo strumento tramite cui far passare
le grandi movimentazioni di informazioni sempre più presenti all’interno delle aziende. In questo
modo si potranno sfruttare appieno ad esempio le caratteristiche di documentazione, rendendo
molto più trasparente l’interoperabilità tra i diversi sistemi aziendali. In tale ottica l’ETL non è più
solo un software che velocizza il lavoro dell’ufficio IT, ma diventa parte integrante della Business
Intelligence aziendale e permette di rendere esplicito molto know-how spesso isolato all’interno di
poche persone, conoscenza questa difficilmente documentabile e tramandabile senza degli strumenti
adeguati a causa del suo evolversi spesso frammentato e sedimentato negli anni.
In tale ottica l’ETL non deve quindi essere interpretato come l’ennesima licenza software da
acquistare, ma come uno strumento che se correttamente interpretato può portare un vero
cambiamento all’interno dell’azienda, specie per le realtà dove siano presenti molti sistemi
eterogenei, o dove le necessità di interoperabilità dei sistemi costringano a numerosi e frequenti
sistemi di allineamento delle informazioni per poter mantenere consistenza nei dati aziendali.
[Simona Rauseo]
Si tratta quindi di strumenti specializzati e solitamente abbastanza costosi (IBM - Datastage, Oracle
- ODI, ...), in alcuni casi sono però forniti con il tool di analisi e reporting (Business Object - Data
Integrator), oppure fanno parte del DBMS (Microsoft SQL Server - DTS). Oggi esiste anche una
proposta open source, si tratta di Pentaho Data Integration.
[Mariangela Vecchiarini]
Alcuni esempi di ETL software:
60
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
•IBM InfoSphere DataStage: supporta la raccolta, l'integrazione e la trasformazione di volumi
elevati di dati, con strutture di dati semplici e complesse. Questo strumento consente di integrare
tutte le informazioni dell’azienda, provenienti da fonti diverse e con notevoli risparmi di tempo.
IBM InfoSphere DataStage infatti, è in grado di gestire sia l'ingresso dei dati entro pochi secondi
dall'acquisizione, sia quantità elevate di dati di sistema, in intervalli di elaborazione giornalieri,
settimanali o mensili.
•SQL Server Integration Services: questa piattaforma consente di integrare e trasformare i dati a
livello aziendale. Integration Services offre la possibilità di risolvere problemi aziendali complessi,
tramite operazioni di copia o download di file, invio di messaggi di posta elettronica in risposta a
determinati eventi, aggiornamento di data warehouse, pulizia dei dati e data mining e gestione di
oggetti e dati di SQL Server. Tra le varie funzioni, Integration Services possiede una serie di
strumenti grafici che consentono di creare soluzioni senza scrivere una sola riga di codice.
•Oracle Data Integration Suite: è una piattaforma per l'integrazione dati in grado di collegare
applicazioni e sorgenti dati eterogenee fornendo informazioni precise, a tutti i livelli aziendali. I
componenti di Oracle Data Integration Suite danno vita a un framework aperto e omogeneo per
l'integrazione dati che abbraccia applicazioni eterogenee come IBM DB2, MySQL, Microsoft SQL
Server, Oracle Database, ecc.
•Altri esempi di ETL software: SmartDB Workbench, DataStudio, Informatica, PowerCenter,
Integrator, ecc.
[Daniele Germani]
I principali tool software di Query reporting: B.O., Microstrategy,
Cognos, DataTime
Con il termine Business Intelligence (BI), termine coniato nel 1958 da Hans Peter Luhn, ricercatore
e inventore tedesco impiegato dell'IBM, ci si può solitamente riferire:
1. al PROCESSO, ovvero a un insieme di processi aziendali per raccogliere ed analizzare
informazioni strategiche per le organizzazioni al fine di conseguire un vantaggio competitivo.
Generalmente queste informazioni vengono raccolte per scopi direzionali interni e per il controllo di
gestione, opportunamente elaborate e utilizzate per supportare concretamente, sulla base di dati
attuali, le decisioni di chi occupa ruoli direzionali.
2. alla TECNOLOGIA utilizzata per realizzare questi processi. Infatti, i dati generati dai sistemi più
svariati (produzione, contabilità, R&S, CRM,...) vengono archiviati in particolari DB chiamati
DataWareHouse, che conservano le qualità informative. Le persone coinvolte nei processi di
business intelligence sono pertanto tenute ad utilizzare applicazioni software ed altre tecnologie per
RACCOGLIRE, IMMAGAZZINARE, ANALIZZARE e DISTRIBUIRE le INFORMAZIONI.
61
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
3. al RISULTATO, cioè le informazioni ottenute come prodotto di questi processi.
Tra i sistemi di REPORTISTICA più diffusi in tale ambito meritano particolare attenzione:
-Business Objects. Con circa 3.000 aziende partner in tutto il mondo e 46.000 clienti in più di 80
paesi, fondata nel 1990, è il principale fornitore mondiale di soluzioni per la BI. Essa consente alle
organizzazioni di tracciare, comprendere e gestire le prestazioni aziendali, per ottenere una visione
completa del proprio business, migliorare il processo decisionale e ottimizzare le prestazioni. Tutto
ciò attraverso fondamentali strumenti:
• il reporting
• la gestione di dashboard e scorecard
• le applicazioni per la customer intelligence
• il reporting finanziario e le extranet rivolte sia a clienti
che a partner.
Tutte queste soluzioni consentono alle aziende di ottenere visibilità sul proprio business, acquisire e
mantenere relazioni profittevoli con i clienti, ridurre i costi, ottimizzare la supply chain,
incrementare la produttività e migliorare le prestazioni finanziarie.
62
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
- Microstrategy. Si tratta di una società che offre soluzioni di Business Intelligence sin dal 1989,
fornendo una gamma ineguagliabile di funzionalità di Monitoraggio, Reporting e Analisi tutte in
una sola architettura software. Tre sono a tal proposito
le parole chiave che rappresentano la mission della
società: CONTROLLO, REPORT, ANALISI. Infatti,
attraverso il software Microstrategy è possibile
realizzare:
1. Un controllo delle prestazioni in tempo reale, fornendo agli utenti aziendali una tecnologia
che permette un monitoraggio costante delle metriche per informare e allertare i responsabili
di business circa le attività in corso e le decisioni da prendere sulla base di parametri
prestabiliti;
2. Informazioni dettagliate per le decisioni operative, permettendo di ricavare informazioni
preziose sulle performance passate e presenti, in modo da rilevare cosa accade nell'impresa e
come procede il business. E tutto ciò attraverso una tecnologia avanzata di reporting, che
consente un utilizzo davvero intuitivo da parte dell'utente, la possibilità di operare via Web e
una grande scalabilità.
3. Anali dei dati per scoprire trend significativi nelle performance aziendali, consentendo di
vedere le informazioni aziendali da molte angolazioni differenti. In questo modo i manager
potranno evidenziare con maggiore facilità le cause di problemi nelle performance, scoprire
nuove opportunità di business e prevedere i risultati dell'azienda.
[Eva Salemi]
- Cognos. permette una gestione più efficiente della pianificazione strategica, delle rapporti
relazionali con clienti dell’organizzazione e si conferma come supporto di decision making per una
migliore gestione della performance.
Le soluzioni di BI di Cognos offrono inoltre l’infrastruttura necessaria per
rispondere alle più moderne esigenze IT. I numerosi vantaggi delle
soluzioni di BI di Cognos in breve:
-Analisi: esplorazione e analisi di grandi volumi di dati con tempi di risposta veloci e prevedibili.
Analisi di tutti i dati utilizzando OLAP o fonti relazionali con rilevamento delle dimensioni.
Esecuzione di accurate analisi comparative delle performance aziendali valutando molteplici
dimensioni (tempo, prodotto, cliente e così via). Analisi set di dati ampi e complessi con una
semplice interfaccia utente drag-and drop e intuitive funzioni di pivoting e filtro.
-Scorecarding: Visione d'insieme delle performance a fronte degli obiettivi; responsabilità personale
dello staff collegando gli indicatori ai responsabili delle diverse iniziative, accesso diretto a report e
analisi; funzione pronta all'uso di controllo delle iniziative per la gestione di azioni correttive;
utilizzazione dei dati di valutazione per condizionare la pianificazione strategica ai fini di una
gestione integrata delle performance.
-Dashboard: istantanea delle performance aziendali; riduzione dei tempi decisionali con report
prestazionali multi-oggetto, mappe, grafici, scorecard, elenchi e analisi OLAP interattive; creazione
di centri di informazioni personalizzati per monitorare le performance, collegamento di elementi dei
dashboard ai dati sottostanti per ulteriori operazioni di reporting e analisi.
[Monia Taglienti]
63
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
- Data Time Reporting Solution. E' un software open source diretto competitors di quelli appena
sopra elencati. Si tratta della soluzione di reportistica più moderna e potente attualmente disponibile
sul mercato. Gode di una notevole flessibilità, consentendo di
creare Report con qualsiasi tipo di Layout (verticale,
orizzontale, cross e misto), con possibilità pressoché illimitate
di Slice and Dice del cubo multidimensionale dei dati. Esso
riesce a creare report ad alto impatto visisvo, dove l'utente è
davvero in grado di controllare tutti gli elementi grafici e
stilistici ed inoltre un efficace sistema di formattazione consente di creare Alerts complessi e basati
su codice utente per qualsiasi tipo di evento.
Tutti i software di query reporting sopraelencati sono sostanzialmente equivalenti nelle funzioni che
mettono a disposizione dell'utente. Tutti infatti consentono flessibilità su 3 livelli operativi
fondamentali:
1. Connettività universale verso i database: ovvero la possibilità di creare report a partire da
qualsiasi DBMS utilizzato per la creazione dei DB.
2. Regole di estrazione: cioè la possibilità di creare con semplici movimenti del mouse le
proprie regole generali di ETL per l'estrazione dei dati.
3. Layout del report: overo la possibilità di impostare delle regole generali di organizzazione
del layout che rimangonomemorizzate facendo sì che il report possa ripristinarsi
automaticamente con l'immissione dei dati più aggiornati.
[Eva Salemi]
64
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
DataTime
Introduzione a DataTime Reporting System: un semplice report
DataTime Reporting Solution è la soluzione di reportistica più moderna e potente attualmente
disponibile sul mercato. La piattaforma di riferimento per l'applicativo è il
Framework NET, quindi, ad esempio, tutti i sistemi operativi Windows. Il punto di indiscutibile
forza di DataTime è la sua connettività universale verso i Database, basata sul protocollo OleDB.
DataTime può connettersi a qualunque DBMS per il quale sia disponibile il corrispondente provider
OleDB. Parliamo quindi di Oracle, SQL Server, Access, DB2, Sybase, MySQL, etc. o anche fogli
Excel e semplici file di testo delimitato. In tal senso i DBMS possono risiedere su qualunque tipo di
macchina, con qualunque sistema operativo e in qualunque parte del mondo. Datatime è il sistema
di reportistica più flessibile attualmente disponibile sul mercato, in quanto consente di creare
qualunque tipo di Layout (verticale, orizzontale, cross e misto) con possibilità pressoché illimitate
di Slice and Dice del cubo multidimensionale dei dati. Coerentemente con la crescente attenzione
alla grafica e all'immagine coordinata, DataTime crea report ad alto impatto visivo, dove tutti gli
elementi grafici e stilistici possono essere controllati dall'utente.
[Mariangela Vecchiarini]
Una volta aperto il programma, possiamo decidere se lavorare su progetti già esistenti o crearne uno
nuovo ciccando sul tasto “New Project”, nella fattispecie selezioneremo un progetto già esistente e
ciccando sul tasto “Open Project” verremo indirizzati nella schermata “DBMS CONNECTION E
NEW OBJECT”,
Da qui dobbiamo indicare al programma su quale base di dati abbiamo intenzione di lavorare,
ciccando sul tasto “New Connection” ci apparirà la finestra “Connection Maker”:
65
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
dove dobbiamo selezionare il tipo di formato del database, che nel nostro caso sarà Access (per gli
esercizi del corso ci siamo avvalsi del file di esempio Northwind prelevabile liberamente dal sito:
http://technet.microsoft.com/it-it/library/ms143221.aspx),
da questa finestra si può intuire la grande flessibilità di questo strumento, ciccando su “Create and
Save Connection” si aprirà una finestra nella quale dovremo indicare il nome da attribuire alla
connessione, una volta effettuata questa operazione DataTime ci reindirizzerà sulla schermata
“DBMS CONNECTION E NEW OBJECT” dove questa volta troveremo nel campo “connection to
DBMSs” il percorso della connessione, la selezioneremo e poi ciccheremo sul tasto “DB Explorer/
Quick Report”, si aprirà la finestra “DBMS Explorer”:
66
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
Qui clickando sul tasto “(Re) Load Structure” il programma ci fornirà la struttura del database,
selezionando la tabella sulla quale lavorare, il programma ci mostrerà i record e la tabella di
contingenza:
67
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
Infine cliccando il pulsante “Quick Report”, si aprirà la schermata “Report Compose” con la
finestra “ReportGrid”:
da questa finestra potremo effettuare le operazioni di slice and dice selezionando le dimensioni del
nostro report semplicemente draggandole nei campi “Horizontal”, “Vertical” e “Cross”
nell’esempio riportato sono state selezionate le dimensioni Last Name; Title e City:
68
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
Cliccanso il pulsante “Generate” avremo finalmente il nostro report che nel nostro esempio
risulterebbe:
[Giuseppe Cecchini]
69
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
DataTime è un programma molto flessibile e consente un’ampia personalizzazione. Ci sono almeno
cinque macroaree in cui consente all’utente di fornire codice personalizzato assicurando prestazioni
ottimali:
1. ETL: in fase di estrazione dei record è possibile trasformare in modo arbitrario i record in
output;
2. Aggregazione misure: in fase di costruzione del report è possibile specificare, in aggiunta al
ricco set di funzioni predefinite, funzioni di aggregazione definite dall’utente;
3. Funzioni di griglia: una volta creato il report è possibile creare funzioni utente dei dati sulla
griglia;
4. Alerts: sulla griglia del report è possibile definire degli Alert fornendo, via codice, la
funzione trigger che scatena l'evento di segnalazione;
Funzioni di totalizzazione delle misure e delle funzioni griglia.
[Stefania Mastronuzzi]
Reporting, Charting con DataTime
Data Time è considerato il sistema di reportistica più duttile, al momento presente nel nostro
mercato. Data Time offre ai suoi clienti la possibilità di creare report ad altissimo impatto visivo
permettendo di creare ogni tipo di layout, sia cross che misto, sia orizzontale che verticale. Offre
opportunità praticamente illimitate di Slice & Dice del cubo dimensionale dei dati e, con Data Time,
è inoltre possibile definire Drill Down e Roll Up su qualsiasi livello. Sulla griglia del report è
possibile creare degli Alerts, talvolta anche molto complessi fondati su codice utente per ogni tipo
di circostanza.
[Alessia Giammarinaro]
Inoltre i report sono pubblicabili su Web mediante 2 possibili architetture:
A. Updatable: i report sono destinati alla sola consultazione. Tale architettura non pone vincoli di
piattaforma per il server web.
B. Interactive: caso in cui si vuole consentire all'utente di interagire con i report: rigenerazione
on demand, operazioni di drill, fino alla possibilità di redesign remoto del report. Tale architettura è
basata su ASP.NET e Web Services. I report web di DataTime passano le specifiche più strette del
W3C, e sono validati con successo come html .4.01 strict. garantendo compatibilità ottimale con
tutti i browser. Tutti i report sono esportabili verso Excel e renderizzabili in file PDF o pagine
HTML.
[Mariangela Vecchiarini]
La flessibilità del programma riguarda anche gli elementi stilistici e i grafici con cui arricchire il
70
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
nostro report. Dalla finestra di “report composer” è infatti possibile inserire: testi, immagini grafici
e gauge con un elevato livello di personalizzazione.
• Title text. I titoli possono essere creati attraverso la finestra “tex box proprieties”, che
permette di personalizzarne elementi quali: dimensioni testo, colore, carattere,align, border
style etc.
• Stile tabella. La nostra tabella può essere modificata semplicemente cliccando sul tasto
destro del mouse e poi selezionando nel menù a tendina: “grid styles”. Si aprirà a questo
punto una schermata (bulk style changes) che permette di modificarne il layout, o tramite il
ricorso a stili preselezionati, oppure sviluppandone di nuovi (tramite il tasto Bulk changes to
styles).
• Immagini. Data Time consente di inserire nel nostro report una serie di immagini, con la
possibilità anche in questo caso di scegliere tra immagini preselezionate o tra quelle caricate
sul proprio pc. Anche in questo caso si tratta di una operazione semplicissima, sarà infatti
sufficiente cliccare sul tasto destro del mouse e selezionare nel menù a tendina “new image”.
• Grafici. È possibile come detto, migliorare la comprensibilità del nostro report tramite il
ricorso ai grafici. La schermata “Multichart designer” garantisce anche in questo caso una
ampia personalizzazione dei grafici, con la possibilità di scegliere tra una serie di grafici bi/
tridimensionali e modificarne le proprietà e i colori.
• Gauge. Tra gli altri elementi stilistici offerti da Data Time ci sono i gauge ( cruscotti). Si
tratta di un oggetto molto simile ad un grafico, ma che si differenzia da quest’ ultimo per il
fatto di rappresentare i valori delle singole celle (anche appartenenti a diversi ReportGrids).
Anche qui abbiamo una ampia scelta e la possibilità di apportare molte modifiche operando
sul menù “Multigauge Designer”.
[Lorenzo Marino]
Dal punto di vista della rappresentazione grafica il charting di Data Time utilizza un motore di
rendering 3D per consentire massima flessibilità di posizionamento dei grafici e anche avanzate
forme di interattività degli stessi. Tutti i grafici infatti hanno grande adattabilità e possono essere
sezionati o ricolorati a piacimento. I chart sono direttamente linkati ai dati e li riflettono
costantemente, attraverso le rigenerazione e i drill dell’utente. Inoltre Data Time offre anche un
potente sistema di Dashboards che consente di creare cruscotti personalizzati, strumenti analitici in
grado di consentire a tutti la comprensione delle attività aziendali. Per quanto riguarda
l’impaginazione del layout grafico, questo è direttamente montato su un efficiente motore di ETL
che è a sua volta basato su due livelli concettuali: uno in cui qualunque procedura di estrazione di
tipo SQL può essere utilizzata, e un altro in cui è l’utente a specificare via codice qualunque
trasformazione.
[Maria Teresa Cascone]
71
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
Creazione di un Data Source con DataTime, Creazione di join
arbitrarie mediante lo strumento visuale di DataTime, Report da
tabelle multiple, Datagrid multipli da diversi datasource nello stesso
report DataTime
Creare un Data Source è molto semplice. Dopo aver creato e salvato col nome un nuovo progetto
attraverso il tasto "New Project", clicchiamo su "Open Project". Si aprirà così una nuova finestra
dalla quale sarà possibile, dopo aver creato la connessione col DBMS di nostro interesse (attraverso
il tasto "New Connection"), scegliere l'opzione "Quick Report" oppure optare per la creazione di un
DataSource
attraverso
il
tasto
"New
Data
Source".
Ciò che si aprirà sarà una nuova schermata, "Data Source Designer", nella quale in cima vengono
visualizzati i diversi step da seguire per la creazione del Data source.
[Eva Salemi]
La prima cosa che ci serve per costruire una Data Source sono i dati. Possiamo prenderli da
qualsiasi DBMS. Per il nostro caso prendiamoli in Access. Andiamo su New Connection e
scegliamo Access, aprendo il DB che ci interessa.
1. Clicchiamo su New Data Source: si apre la finestra Data Source Desiner dove troviamo le
tabelle presenti nel DB. Con il mouse possiamo spostare le tabelle in modo tale da
selezionare anche la chiave primaria e secondaria.
2. Per trovare la chiave primaria : cliccare su Order Details, mentre per la chiave secondaria
cliccare su Order Id.
3. E’ possibile vedere le relazioni tra le tabelle attraverso il comando Map Dbms Relationship
On Objects On Desiner Panel.
4. Se conosciamo il linguaggio SQL, in Data Time è possibile lavorarvi direttamente attraverso
il comando Check Out, ed inoltre, se lo volessimo, potremmo passare dalla sintassi di
Microsoft a quella di Oracle cliccando su Connection Proprietis.
5. Salviamo il tutto e torniamo alla pagina principale di Data Time.
6. Cliacchiamo nuovamente su Data Source, si apre la finestra Report Grid Design dove
possiamo, a piacere, decidere misure e dimensioni del report. Possiamo scegliere tra le
opzioni Vertical, Cross o Horizontal.
A questo punto attraverso il comando Generate apriamo il Report Composer che ci permette di
lavorare direttamente sul nostro report inserendovi immagini, testo, grafici o cruscotti.
[Alessia Giammarinaro]
Nella creazione del nostro report, un passo davvero importante è la definizione delle regole di
estrazione dei dati a partire dai quali metteremo in rilievo una particolare vista del cubo
multidimensionale.
Se, infatti, pensiamo anche solo un attimo al fatto che il nostro DataWarehouse è un'architettura
davvero complessa e che si configura come un magazzino di dati davvero eterogenei possiamo
capire la reale importanza della scelta di mettere in rilievo una dimensione piuttosto che un'altra dei
72
Software per la gestione dell'informazione - Prof. Tommaso Gastaldi
a.a.2008/2009
dati.
A questo proposito DataTime mette a disposizione dell'utente due opzioni:
- una che potremmo definire "QUICK", nella quale sarà il software che automaticamente definirà
delle regole molto generali (di ETL ovviamente) di estrazione per il passaggio dei dati direttamente
dalla tabella al report, premendo un semplice pulsante "Quick Report" con il mouse.
Si tratta di un approccio semplificato, utile per utenti non troppo esperti ma soprattutto quando il
report viene realizzato a partire da un DB semplice. Nel caso di un DW complesso, invece, un
simile approccio risulterebbe di certo molto riduttivo non permettendo di cogliere appieno la
multidimensionalità
di
dati
attraverso
i
più
svariati
Slice&Dice.
- nell'altra opzione, che potremmo definire "NON QUICK", sarà direttamente l'utente, attraverso la
creazione di uno o più DataSource, a definire viste potenzialmente infinite di dati. Questo è
l'approccio che meglio valorizza la multidimensionalità di un DataWarehouse nella resa di un
report, dal momento che sarà possibile creare nel report tanti DataGrid, che pescano i dati dai
differenti DataSource che abbiamo scelto di impostare, quante sono le differenti sezioni del cubo
multidimensionale dei nostri dati che decidiamo di mettere in evidenza.
[Eva Salemi]
73
Scarica

Introduzione