lunedì 27 ottobre 2008

Sistemi informativi aziendali: I Datawarehouse. Che cosa sono e cosa li differenzia dai sistemi OLTP


Come suggerisce in termine anglosassone, un data warehouse è letteralmente un magazzino di dati, ovvero un archivio informatico che contiene una determinata mole di dati. I DW sono progettati per gestire le informazioni e predisporle ad analisi e relazioni. Il data warehouse, quindi, descrive il processo di acquisizione, trasformazione e distribuzione di informazioni presenti all'interno o all'esterno delle aziende come supporto ai decision maker. Un DW comprende anche gli strumenti finalizzati alla estrazione, alla modifica e all’update dei dati, nonché quelli atti al recupero dei metadati e gli strumenti di business intelligence. Secondo la celebre definizione del pioniere di questa tipologia di immagazzinamento delle informazioni, William H. Inmon, un DW è una raccolta di dati integrata, orientata al soggetto, variabile nel tempo e non volatile, di supporto ai processi decisionali. L'integrazione dei dati costituisce la principale caratteristica distintiva del DW rispetto ad altri sistemi di supporto alle decisioni. Il termine integrazione si riferisce al fatto che in un dw convergono dati provenienti da diversi sistemi transazionali e da fonti esterne. Questa convergenza avviene mediante l'utilizzo di metodi di codifica uniformi, oppure attraverso il perseguimento di una omogeneità semantica di tutte le variabili, o ancora mediante l'utilizzo delle stesse unità di misura. Il DW è orientato a temi aziendali specifici. I dati vengono archiviati in modo da essere facilmente letti o elaborati dagli utenti. È facile comprendere come il polo dell’attenzione si sposti dalla eliminazione della ridondanza alla produzione efficace e veloce di informazioni strategicamente utili. I dati archiviati all'interno di un DW riguardano lassi temporali nettamente superiori rispetto a quelli dei dati archiviati in un sistema operativo. Difatti i dw contengono informazioni relative ad aree di interesse contingenti, con tutto il background di riferimento. 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. I dati contenuti nei dw non sono volatili, nella misura in cui non possono essere modificati dagli utenti, ma solo letti. Il data warehouse è un sistema OLAP (che sta per On-Line Analytical Processing, tecniche software per l'analisi interattiva e veloce di grandi quantità di dati) che differisce dai sistemi OLTP (On Line Transaction Processing), sebbene i dati provengano da questi ultimi. I sistemi OLAP sono sistemi orientati al soggetto, sono integrati, storici e permanenti. Non comprendono dati analitici e statici come i sistemi OLTP, inoltre i dati OLAP non sono adatti ad uso corrente, ma vengono usati per analisi.

domenica 26 ottobre 2008

CMS Content management system


La gestione delle informazioni e della conoscenza è un problema vecchio quanto il mondo. La tecnologia ne ha mutato le prassi, ma non le finalità. Fiumi di dati sono stati archiviati in affollate e polverose biblioteche, fino a giungere a precisi ed avanzati database. Oltre alla archiviazione della conoscenza però, ci si è sempre posti l’obiettivo della sua gestione e divulgazione, realizzando strumenti che fungessero da supporto a tale scopo. Oggi queste dinamiche non sono più appannaggio di pochi, ma ci vedono tutti indiscutibili protagonisti. Ognuno può generare informazioni e conoscenza, esponendole nello sconfinato cyberspazio, come fossero preziose merci. La tecnologia ci ha pertanto fornito strumenti di immediata comprensione che ci aiutassero nella gestione di questo mare magnum di contenuti. Un Content management system (CMS), è un software che si installa su un server web per la gestione automatizzata di siti web, attraverso un sistema di protezione che si basa sulla immissione di un proprio username e di una pw. Alcuni cms nascono con precise finalità, che vanno dalla gestione di un blog, a quella di una enciclopedia on line o di un forum. Altri cms sono generici e in tal senso si adattano alla pubblicazione dei più disparati tipi di contenuti. I linguaggi più comunemente utilizzati nella programmazione dei cms sono PHP e ASP. La scelta del linguaggio dipende anche dalla piattaforma di riferimento (ad esempio Linux o Windows). Questi utilissimi software sono nati negli anni 90 in seno a lungimiranti organizzazioni che, producendo ingenti moli di pubblicazioni per uso interno, necessitavano di sistemi di gestione delle stesse che fossero semplici e di pronto utilizzo. Nel 1998, la Pencom Web Works, una compagnia di consulenza aziendale, introdusse il server di trasformazione dati (DTS) Metaphoria, che permetteva agli sviluppatori Java di scrivere applicazioni che si potevano collegare ai contenuti e permettevano di distribuire tali contenuti su canali diversi. Il prodotto non ebbe successo, ma il concetto che era stato introdotto costituì le basi di ciò che è diventato il CMS odierno. Sebbene i cms non siano nati rivolgendosi espressamente al web, oggi il loro utilizzo avviene in prevalenza on line. Una delle applicazioni più utili dei sistemi di Web CMS, infatti, è quella che permette di gestire i portali. Si tratta di strumenti di pubblicazione flessibili e multiutente. Nella Home Page del mio portale potrò strutturare a mio piacimento contenuti testuali, link, immagini, forum, materiale multimediale e quant’altro io desideri. Alcuni software Web Cms permettono anche di gestire più versione dello stesso sito web, ad esempio una versione Html ed una Wap. Un limite evidente di questi sistemi di gestione risiede nella loro “rigidità”, laddove è impossibile intervenire sulla struttura del CMS stesso. 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. Volendo fare un esempio di cms potremmo riferirci al software cms dell'omonimo blog: Word Press. WordPress è una piattaforma blog scritta in PHP che usa come database MySQL. Creata da Matt Mullenweg, attualmente è distribuita con la licenza GNU General Public License e si può scaricare liberamente. Wordpress supporta un solo blog per installazione ma ne esiste una versione multi-utente, anch'essa distribuita con la stessa licenza. Vediamo le principali caratteristiche tecniche:

-Gestione delle pagine a template
-URL permanenti che aiutano l' ottimizzazione nei motori di ricerca
-Supporto a plugin esterni
-Gestione delle categorie
-Funzioni di Trackback e Pingback
-Editor WYSIWYG per la formattazione dei testi
-Creazione di pagine statiche
-Supporto multi-autori
-Log degli utenti che visitano il blog
-Blocco di utenti in base all'indirizzo ip
-Possibilità di specificare meta-tag

lunedì 20 ottobre 2008

JOIN


Partendo dalla tabella studenti, ho creato una seconda tabella, “responsabili” costituita da due soli campi: resp e media voti. Di sicuro esisterà un procedimento più breve, ma non avendo ancora acquisito dimestichezza con Access ed essendo nemico giurato dei conti e della matematica ho proceduto in una maniera squisitamente umanistica! Ho iniziato estraendo "chi" è stato valutato da "chi" e che voto ha preso….

SELECT autore,voto FROM studenti WHERE resp = luca
Luca: media dei voti: 20.

SELECT autore,voto FROM studenti WHERE resp =Giuseppe
Giuseppe media dei voti: 16

SELECT autore,voto FROM studenti WHERE resp = Giovanni

Giovanni media dei voti: 12,7


SELECT autore,voto FROM studenti WHERE resp = Stefano
Stefano media dei voti: 16

Avendo estratto la media dei voti ho provveduto a creare la tabella responsabili per poterla poi "joinare" con quella studenti.
Attraverso una query di tipo JOIN è possibile ottenere come risultato di un'unica query un insieme di dati provenienti da tabelle differenti che presentino però una relazione tra di loro.
Se scrivo una istruzione del tipo: SELECT* from studenti, responsabili produrrà in uscita l'insieme di tutti i possibili accoppiamenti tra un elemento della prima tabella e un elemento della seconda; matematicamente si tratta del prodotto cartesiano tra le due tabelle, che avrà un numero di righe pari al prodotto tra il numero di righe delle due tabelle.
Un risultato questo di scarso interesse, mentre è sicuramente di maggiore utilità poter estrarre dal DB un sottoinsieme opportuno del prodotto cartesiano. Per esempio se volessi sapere la corrispondenza tra la tabella studenti e quella responsabili, per quanto concerne la votazione di ogni blog e la corrispondenza con la media aritmetica di voti del singolo assistente che ha valutato lo stesso, opererò la seguente join:


SELECT studenti.indirizzo, studenti.voto, responsabili.mediaVoti, responsabili.resp FROM studenti INNER JOIN responsabili ON studenti.resp = responsabili.resp


Si palesa qui una lapalissiana verità: i responsabili in questione non sono affatto larghi di voti!Diamoci da fare...:)

l'SQL ed esempi di SELECT


Per estrarre delle informazioni da un database è necessario interrogare la base di dati adoperando un Query language. QL più diffusi sono:





-SQL, linguaggio molto noto, usato per i database relazionali.
-MDX, un QL per i database OLAP.
-Datalog, per i database deduttivi.
-XQuery, per le fonti di dati in XML .
-SuprTool, un QL proprietario per SuprTool, un programma per accedere ai db usato per dati in Image/SQL (TurboIMAGE) e per i database Oracle.




Procediamo ora ad un approfondimento del primo esempio apportato: SQL.


SQL non identifica un prodotto commerciale, bensì un linguaggio nello stesso modo in cui C++ e Basic indicano linguaggi compilatori generali e non un brand specifico. SQL permette di effettuare svariate operazioni sia sui dati che sulle strutture che li contengono. La sigla sta per Structured Query Language e grazie alla sua inarrestabile diffusione è ormai diventata sinonimo di linguaggio standard per la gestione dei database relazionali. SQL assolve alle funzioni di:

Data Definition Language (DDL) - permette di creare e cancellare database o di modificarne la struttura.



Data Manipulation Language (DML) - permette di inserire, cancellare, modificare e leggere i dati



Data Control Language (DCL) - permette di gestire gli utenti e i permessi



Questo linguaggio di interrogazione è stato confezionato per interagire con i database relazionali. I database appartenenti a questa categoria, dei quali abbiamo già trattato in questo blog, si basano sul modello relazionale la cui struttura principale è per l'appunto la relazione, cioe' una tabella bidimensionale composta da righe e colonne. Ciascuna riga, chiamata tupla, rappresenta un'entita' che noi vogliamo memorizzare nel database. Le caratteristiche di ciascuna entita' sono definite invece dalle colonne delle relazioni, che vengono chiamate attributi. Entita' con caratteristiche comuni, cioe' descritti dallo stesso insieme di attributi, faranno parte della stessa relazione. I teorici fanno però notare come le caratteristiche originali dell'Sql, ispirate al calcolo delle tuple, in realtà lo violino. Le sue estensioni più recenti supportano pienamente il Modello relazionale, ma secondo gli esperti hanno implementato lo spettro di tali violazioni. Svariate sono inoltre le critiche mosse all'utilizzo pratico di SQL, a partire dalla presunta complessità del linguaggio, fino ad arrivare alla mancanza di una procedura standard per suddividere un lungo comando in comandi più brevi a cui ci si possa riferire tramite un nome.




SELECT, alcuni esempi.




Dal momento che l'interrogazione è molto probabilmente l'operazione maggiormente effettuata sui db, affronteremo ora una specifica istruzione SQL, preposta all'estrazione dei dati: Select.




La sintassi base di una SELECT SQL è la seguente:
SELECT * FROM nome_tabella
dove * sta per "tutti i campi".




Facciamo un esempio pratico. Ho aperto con Access la tabella excel che contiene le votazioni e la classifica provvisoria dei nostri blog. Ho rinominato la tabella "studenti". I campi che la compongono sono: id, indirizzo, autore, responsabile, personalizzazione, linguaggio, contenuti, numero post, voto e note.


La query: SELECT * FROM studenti


andrà ad estrarre tutti i campi della suddetta tabella. Al posto di * posso usare i nomi dei campi che mi interessa estrarre, ad esempio: SELECT resp FROM studenti ed estrarrò unicamente la colonna dei responsabili.




Inseriamo adesso un filtro nella query utilizzando l'operatore WHERE:


SELECT autore FROM studenti where id=18




mi darà come risultato: Simona Allegretti, una nostra collega (la scelta è stata puramente casuale!)




Conoscendo la sintassi di SQL posso anche operare delle estrazioni più precise. Per esempio potrei estrapolare tutti i nominativi degli studenti che hanno ricevuto una votazione superiore al 18 con la seguente istruzione:




SELECT * FROM studenti where voto > 18




o ancora se volessi conoscere gli studenti che alla voce contenuti hanno riscontrato una valutazione inferiore al 5, mi basterebbe effetture la seguente query:




SELECT * FROM studenti where contenuti <5












sabato 18 ottobre 2008

IL REPORT INFORMATIVO AZIENDALE


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 alcune tecniche di visualizzazione per facilitare l'analisi dei dati. Tecniche note nella visualizzazione dei report sono:


1)drill-down
2)slice & dice



Con 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.
Per 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.


I sistemi di reportistica sono un sottoambito dei Sistemi Informativi e per generalità di attribuzione anche dei Sistemi di Business Intelligence e ne costituiscono una estensione legata all'evoluzione informatica. Per sistemi di business intelligence (BI) ci si riferisce solitamente a:
-un insieme di processi aziendali volti alla raccolta e all’analisi di informazioni strategiche.
-la tecnologia utilizzata per realizzare questi processi,
-le informazioni ottenute mettendo in atto tali processi.


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 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 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.


Software per i sistemi di reportistica


I sistemi di Reportistica hanno favorito la nascita ed il proliferare di una categoria di prodotti per la cosiddetta 'Office Automation'. Tali prodotti - per lo sviluppo dei quali si sono fatte concorrenza le maggiori software-house mondiali - si sono nel corso degli anni evoluti ed hanno allargato il loro spettro di standardizzazione fino a divenire strumenti integrati con quelli propri della Business Intelligence e BI software convergendo verso vere e proprie piattaforme di 'Desktop Automation'.

Produttori di tools:


Actuate
Business Objects
Cognos
DataTime
Microstrategy
Oracle

mercoledì 15 ottobre 2008

Elementi teorici e strutturali del report:Dimensioni, Misure, Aggregazione, funzioni di aggregazione e formalizzazione dei concetti statistici di base


Un collettivo statistico o popolazione è costituito da un insieme di unità statistiche. Tali unità possono essere persone, oggetti, transazioni, o qualunque entità che rappresenti una fonte di interesse dal punto di vista del trattamento dei dati. Su ciascuna unità potranno essere rilevati K caratteri indicati generalmente con X1, X2...Xk. Rilevando K caratteri si otterranno K valori, le cosiddette osservazioni, che sono le determinazioni dei caratteri su quelle unità statistiche, che indicheremo con x minuscolo x1,x2...xk. Queste osservazioni dipendono dalle unità statistiche, che indicheremo invece con U1, U2...Un. Avremo dunque n osservazioni ciascuna costituita da un vettore di k elementi. Le osservazioni sono dette vettori k-dimensionali. In una matrice dei dati andremo a porre in riga l'unità i-esima e in colonna il carattere j-esimo. Dalla loro intersezione deriverà una osservazione xij-esima. I k caratteri (ad es nome, cognome, etc) sono caratterizzati ciascuno da un range di valori che possono assumere. Ad esempio se il carattere è il codice identificativo della cassiera, l'insieme dei valori distinti che esso potrà assumere, ovvero le sue modalità del carattere, sarà l'insieme dei codici utilizzati dal supermercato per identificare le cassiere. Le modalità possono essere formate da caratteri quantitativi oppure qualitativi.


I caratteri quantitativi sono discreti nel momento in cui l’insieme delle modalità assumibili può essere messo in corrispondenza biunivoca con un sottoinsieme di numeri interi (ad esempio numero di figli). Sono invece continui quando l’insieme delle modalità assumibili può essere messo in corrispondenza biunivoca con un sottoinsieme di numeri reali (peso, altezza, etc).




I caratteri qualitativi invece possono essere sconnessi e ordinati. Alla prima categoria appartengono quei caratteri per i quali date due o più modalità sarà possibile affermare solo se sono uguali o diverse (ad es. Luogo di nascita, Sesso.). Mentre per i caratteri ordinati è possibile stabilire un ordine tra le modalità (ad es. titolo di studio: senza titolo, licenza elementare, diploma di maturità, laurea di primo livello, etc).




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 K-dimensionale 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
SELECT 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 IMPIEGATO;

Risultato--> L. 3.673.750
La funzione AVG opera soltanto con i numeri.



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’.

Il formato ideale per il documento software di relazione aziendale (soggetto a revisioni nel tempo): Presentazioni, relazioni, progetti.


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 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.

IL SOFTWARE PER LA CREAZIONE DI PAGINE WEB PERSONALI: UNA REVIEW


Una pagina web è il modo in cui vengono rese disponibili all’internauta le informazioni on line tramite un browser. I contenuti delle pagine web sono strutturati secondo una logica ipertestuale, che crea collegamenti tra le varie informazioni attraverso link o rimandi, facendo in modo che l’utente navighi da una pagina all’altra, costruendo autonomamente il proprio percorso conoscitivo. Un insieme di pagine web, collegate tra loro e riferibili ad un unico web server, costituiscono un sito web. Esistono numerosi software, denominati editor, che permettono di creare in maniera semplice un sito web, fornedo così anche ai meno esperti la possibilità di realizzare una propria pagina personale on line. Vediamo gli editor più diffusi:




Sites di google: Questo software permette anche ai meno esperti di condividere e organizzare come collegamenti web, calendari, foto, video, presentazioni, profili personali, allegati e altri documenti, in un sito facile da creare e aggiornare e che può essere consultato solo dagli iscritti.




Frontpage: Microsoft FrontPage è un editor per creare pagine html ed amministrare siti web sviluppato dalla Microsoft per il sistema operativo Windows. È un componente della suite Office ed è incluso in alcune versioni di questo popolare pacchetto. Esistono inoltre versioni stand alone, col solo programma Frontpage.


Dreamweaver: è un editor prodotto da Macromedia ed è tra i programmi più utilizzati per realizzare siti web. Questo software dà un'interfaccia visuale: con esso si possono allestire pagine web, scrivendo semplicemente del testo, inserendo immagini e collegamenti ipertestuali, senza dover conoscere il linguaggio html.





SciTE (SCIntilla based Text Editor): è un editor di testo libero multipiattaforma scritto da Neil Hodgson usando il componente di editing libero Scintilla.


Nvu: è un editor web che si affianca a Mozilla Firefox e Mozilla Thunderbird per sostituire la suite Mozilla. La pronuncia dovrebbe essere "enview", che sta per new view. "Nuova vista" è rivolto ad una utenza non tecnica o comunque semi-professionale: non mira quindi a sostituire Adobe Dreamweaver quanto piuttosto Microsoft FrontPage. Nvu inoltre è totalmente gratuito!


KompoZer: è una evoluzione di Nvu. È mantenuto da una community di sviluppatori ed è un progetto di Sourceforge.


Expression Web: Un editor della Microsoft che nella sua seconda versione presenta innovative funzioni facilmente utilizzabili anche dai meno esperti. Crea siti Web basati su stili CSS e compatibili per impostazione predefinita con le specifiche XHTML 1.0 Transitional. Grazie a un migliore utilizzo dei browser, semplifica le attività di deployment e manutenzione. Consente di realizzare siti web e con applicazioni e toolset con un'interfaccia grafica che unisce la professionalità alla semplicità d'uso, permettendo di intervenire direttamente sulle impostazioni e nello stesso tempo di pensare allo sviluppo dei contenuti.

lunedì 13 ottobre 2008

-->DbMs...i software più diffusi...


Un DBMS è costituito da un complesso insieme di programmi software che controllano l'organizzazione, la memorizzazione e il reperimento dei dati (campi, record e archivi) in un database. Nello specifico un DBMS accetta richieste di dati da parte del programma applicativo e "istruisce" il sistema operativo per il trasferimento dei dati appropriati. I DBMS sono regolati da meccanismi di autorizzazione mediante l’utilizzo di password che tutelano i contenuti nell’intero database o in una parte di esso (in tal caso si parlerà di subschema). I tre tipi di organizzazione più comuni sono il modello gerarchico, il modello reticolare e il modello relazionale: il modello dominante oggi è quello relazionale, normalmente utilizzato con il linguaggio di interrogazione SQL. I DBMS relazionali sono detti anche RDBMS (Relational DBMS). Si tratta di un modello di database che consiste di diversi file separati che sono correlati l'un l'altro attraverso campi chiave. Si può accedere alle informazioni memorizzate in un file attraverso uno o più file, grazie alle relazioni stabilite tra questi. Ad esempio, un database relazionale vede il collegamento fra un database anagrafico degli impiegati in una società ed il database delle retribuzioni, tramite un codice univoco che identifica il singolo impiegato. I DBMS più diffusi sono Oracle, Microsoft SQL Server, Microsoft Access, Sybase SQL Server, Pico SQL.

...I vantaggi dell'informazione on line...


Grazie all’utilizzo di moderni software, l’informazione è oggi libera da qualsiasi vincolo spaziale e temporale. Acquista le vivaci tinte della democrazia, laddove si presenta veicolata dai più disparati punti di vista, filtrata da ogni tipo di visione ed ideologia, libera da preconcetti e costrizioni, alla portata di tutti. L’informazione on line è sempre aggiornata, il suo gap temporale con la contingenza è quantificabile in una manciata di secondi. Se la borsa di Tokyo crolla, a New York lo sapranno nello stesso momento in cui un lo apprenderà lo sventurato azionista giapponese. L’informazione on line dà voce alla gente, permette agli utenti di controbattere, di commentare, di fare raffronti in tempo reale. Il web trascina il pubblico nell’arena della comunicazione, svestendolo di quel ruolo di bersaglio statico e agevole sa scovare, e fornendogli tutti gli strumenti necessari per divenire protagonista indiscusso dello spazio multimediale. L’interattività è un concetto, una idea che è sempre esistita, la vera rivoluzione sta nel fatto che oggi essa venga sfruttata appieno. L’interattività e il dinamismo del web si concretizzano in una ricchissima gamma di aspetti, dai siti di controinformazione che affermano di dire ciò che i media tacciono, ai blog dove firme note o persone comuni lasciano testimonianze di vita e opinioni personali, ai forum di discussione visitati con assiduità da migliaia di internauti e spesso caratterizzati da un sorprendete fermento culturale ed ideologico. Ai vantaggi offerti agli utenti si affiancano quelli di cui godono i creatori dell’informazione. La possibilità di effettuare continui aggiornamenti, l’assenza di barriere spaziali, laddove è possibile modificare e creare contenuti da ogni angolo del globo con un colpo di mouse. Non è da sottovalutare la mole di contatti che il web permette di raggiungere, con un costo per unità che rasenta lo zero. Maggiore economicità quindi, tanto monetaria, quanto temporale, visto che si aggirano i tempi e i costi di produzione del supporto hardware per veicolare l’informazione, come accade invece nelle riviste cartacee.

Accessibilità dei siti WeB...


Una premessa sulla capillare diffusione e sulla crescente importanza del mezzo Internet allo stato attuale risulta al contempo fondamentale quanto scontata. È difatti opinione più che diffusa che il web abbia invaso ogni interstizio della vita sociale moderna, rivelandosi un indispensabile motore di progresso. Un aspetto probabilmente meno scontato che riguarda la web realtà, è quello concernente la fruibilità del cyberspazio, denominata dai tecnici “accessibilità”. Dal momento in cui il web ha smesso di essere appannaggio dei ricercatori, valicando aule universitarie e uffici governativi, è entrato nelle case della gente, imbattendosi così anche nei diversamente abili, possibilità che fino a pochissimo tempo fa non era stata tenuta in conto. Il punto nodale della questione è costituito dai disabili della vista, dagli ipovedenti ai ciechi. Per diverso tempo a questa categoria è stato negato l’utilizzo del mezzo, intere generazione hanno sofferto una vera e propria “ghettizzazione mediatica”. Grazie agli screen reader, i sintetizzatori vocali che hanno migliorato progressivamente le loro prestazioni, alla barra braille, che traduce in codici tattili i contenuti dei testi, alle schede audio (soundblaster), a un modem e ai comandi da tastiera, predisposti anche per navigare utilizzando il mouse e le icone, un non vedente è in grado oggi di utilizzare perfettamente le versioni più aggiornate di un sistema operativo che si regge esclusivamente sulla grafica come Windows, leggendo ciò che appare sul suo monitor, usando i più diffusi software (per esempio, editor di testo, database, fogli elettronici; così come programmi di posta elettronica, browsers, ecc.); i non vedenti muniti dell'hardware necessario possono stampare, anche in braille, i documenti prodotti e scansionare testi e immagini. Esattamente come qualsiasi altro utente informatico normodotato. Per gli ipovedenti, poi, vi sono anche altri strumenti, come gli ingranditori (magnifier), mirati per rispondere a esigenze diverse in funzione dell'ampia gamma di difficoltà visive esistenti, e accorgimenti nella stesura di documenti e nella presentazione di immagini che permettono a tali utenti di superare in modo relativamente semplice difficoltà oggettive. L’accessibilità dei siti web non concerne solo le disabilità visive, fisiche e cognitive, ma contempla anche le barriere tecnologiche, ovvero il disporre o meno di strumenti hardware e software adeguati. Ad esempio è sconsigliato nella creazione di pagine html l’utilizzo di formati pdf di Acrobat Reader, fla o swf di Flash, ecc.: tutti formati che per essere visualizzati necessitano di applicazioni autonome (o plug-in), che non vengono riconosciute dai software di navigazione standard (browsers e plug-in di cui essi dispongono) e neppure dagli strumenti di ausilio di cui comunemente si servono i non vedenti. Se si utilizzano per lo sviluppo delle pagine web tecnologie non accessibili, è necessario realizzare anche pagine equivalenti che rispondano a criteri di accessibilità. È altresì consigliabile l'inserimento di codici html quando si riferiscano a files audio e alla possibilità di offrire l'ascolto di questi ultimi in coincidenza con l'apertura di una pagina: in casi del genere si creerebbero problemi di sovrapposizione sonora per tutti gli utenti che stiano utilizzando in quello stesso momento un sintetizzatore vocale. Particolare attenzione va data all’utilizzo di caratteri che siano facilmente leggibili, quindi sufficientemente grandi e di un colore che crei un buon contrasto con lo sfondo. I link devono essere chiari e posizionati in maniera comprensibile rispetto al testo. Per quanto riguarda i contenuti è necessario che gli stessi siano linguisticamente chiari e laddove vi siano elementi grafici in movimento è opportuno fornire testi alternativi statici.

giovedì 9 ottobre 2008

Statistici versus Informatici, una sfida all’ultimo numero.


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. Facendo un passo all’indietro vedremo come i dati raccolti nelle aziende sono organizzati all’interno di archivi informatici, i database, i quali sono organizzati in una o più tabelle, a loro volta strutturate in una serie di righe o colonne. Uno statistico che osservi una colonna ci vedrà un “carattere, variabile o attributo”. Un informatico ci scorgerà invece “campi, field o dimensioni”. Passando alle righe il primo individuerà unità statistiche o entità, mentre l’amante del pc scoverà senza dubbio un record. L’incontro dell’attributo con l’entità, o che dir si voglia, del field col record, genererà una modalità, meglio conosciuta dagli informatici come misura.

La Normalizzazione dei DataBase


La normalizzazione è una prassi finalizzata alla eliminazione della ridondanza e del rischio di inconsistenza dai database. Questo processo presenta differenti livelli, demominati forme normali che certificano la qualità dello schema del database. Si tratta di una procedura di tipo graduale, che realizza un’ottimizzazione progressiva a partire da relazioni non normalizzate fino a raggiungere un certo livello di normalizzazione. Si fonda su un assunto tanto semplice quanto basilare: se una relazione presenta più concetti tra loro indipendenti, la si decompone in relazioni più piccole, una per ogni concetto. Questo tipo di processo non è purtroppo sempre applicabile in tutte le tabelle, dato che in taluni casi potrebbe comportare una perdita d'informazioni. Prima di passare al vaglio le diverse tipologie di normalizzazione, è bene precisare due concetti fondamentali, quello di ridondanza e di anomalia. La prima si riferisce alla situazione in cui gli stessi dati vengono memorizzati inutilmente più volte, mentre le anomalie si riscontrano nel momento in cui si verificano irregolarità dei dati. Tornando alle forme normali, possiamo affermare che esse sono una proprietà di una Base di Dati Relazione che ne garantisce la qualità. La decomposizione di una relazione dovrebbe sempre garantire che non avvenga una perdita, affinché possa esserci la ricostruzione delle informazioni originarie e che si conservino le dipendenze, per il mantenimento dei vincoli di integrità originari. Di seguito le forme normali:


Prima forma normale


Definizione: Si dice che una base dati è in 1NF (prima forma normale) se vale la seguente relazione per ogni relazione contenuta nella base dati:



  1. una relazione è in 1NF se e solo se:
    non presenta gruppi di attributi che si ripetono


  2. esiste una chiave primaria (ossia esiste un insieme di attributi, che identifica in modo univoco ogni tupla della relazione)

Seconda forma normale



Definizione: Una base dati è invece in 2NF (seconda forma normale) quando è in 1NF e per ogni tabella tutti i campi non chiave dipendono funzionalmente dall'intera chiave primaria e non da una parte di essa.

Terza forma normale



Definizione: Una base dati è in 3NF (terza forma normale) se è in 2NF e per ogni dipendenza funzionale è vera una delle seguenti condizioni:



  1. X è una superchiave della relazione

  2. Y è membro di una chiave della relazione

Teorema: Ogni relazione può essere portata in 3NF.

Quarta forma normale

Una base dati è detta invece essere in 4NF quando per ogni relazione di dipendenza funzionale molti a molti X Y, X sia una superchiave.


Quinta forma normale

Infine, una base dati si dice in 5NF se e solo se:



  1. è in 4NF;

  2. ogni relazione di dipendenza è implicata dalle chiavi candidate.

lunedì 6 ottobre 2008

Dati, informazione e conoscenza.


La conoscenza è capacità di osservazione, di discernimento e di interpretazione. L’istinto umano, come quello animale, ci porta ad inquadrare il mondo circostante, a scandagliarlo, e a strapparne unicamente i brandelli necessari a ricucire l’informazione di cui necessitiamo. Siamo abili tessitori di infinite tele di esperienza, che spesso presentano intrecci errati e trame contorte, ma costituiscono senza dubbio un progresso, seppur di lieve entità. Un dato è una informazione riconoscibile e rilevante, è la porzione di mondo che individuiamo sulla base dei filtri adottati, dei nostri intenti conoscitivi. La sua rilevazione ed elaborazione genererà una informazione, che a sua volta sfocerà in conoscenza esplicita e formalizzata, la quale si baserà su un uso consapevole e produttivo del dato originale. La gestione della conoscenza e dell’informazione rappresenta la chiave di volta della società moderna e dell’economia internazionale. L’oceano di dati e di informazioni a disposizione è sconfinato, non quantificabile, semplicemente inesauribile. Volendo operare una semplificazione di sicuro non esaustiva, potremmo dire che il compito degli Statistici consiste nella raccolta e codificazione dei dati, mentre quello dei Comunicatori, includendo tutte le mansioni e professioni che questo titolo racchiude, consta della manipolazione della informazione. Prescindendo dalla diffusa accezione negativa, per manipolazione intendiamo qui la proposta al pubblico di una lettura personale dell’informazione e della conoscenza, sulla base dei propri ideali e dei propri fini comunicativi.

I canali di comunicazione software e la comunicazione sociale


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à.

...Software Platonici...


“La scrittura non è un farmaco della memoria” affermava Platone, così come il Software non è un sostituto della mente umana. Il libro «ha sempre bisogno dell’aiuto del padre, perché non è capace di difendersi e di aiutarsi da solo» ci ha altresì insegnato questo grande pensatore, e la sua saggezza si sa, non conosce limiti epocali. Il termine libro sia in greco che in latino deriva etimologicamente dalla parola “corteccia”(liber e biblos), dalla parte, potremmo dire, hardware della creazione. Il che rimanda alla concreta realizzazione dello stesso da parte dell’uomo. L’uomo si è sempre sforzato di potenziare la sua memoria con supporti esterni, che egli stesso ha realizzato con l’ausilio del proprio intelletto e infinito acume. Ma come Platone stesso ci ha mostrato, la scrittura non produce autonomamente sapere. La conoscenza è una prerogativa squisitamente umana, così come sono di derivazione umana i supporti alla conoscenza stessa. Le moderne tecnologie e quelle antiche sono stupefacenti strumenti nelle mani degli uomini, indispensabili ausili per la gestione dell’informazione e della sapienza.