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