Powered By Blogger

30 novembre 2008

Creazione di un Data Source con DataTime, Creazione di join arbitrarie mediante lo strumento visuale di DataTime, Report da tabelle multiple


Data Source è riferito ad una sorgente di dati (es DB) a cui collegare un’applicazione.
Dopo aver scaricato il software DataTime dal sito www.datatime.eu/DataTimeuniversal.htm è possibile creare dei report cliccando, nella schermata principale del programma, su “Quick Report” oppure attraverso la procedura “New Data Source”.
Utilizzando quest’ultima procedura si apre una schermata (Design, sezione 1) che consente di visualizzare gli oggetti (tabelle) del nostro database.
Per creare, ad esempio, una query considerando solo due tabelle, è possibile operare su di esse selezionandole nel DB Objects (and schemas) posto sulla sinistra e trascinandole nell’ area vuota a destra dello schermo.
A questo punto, selezionare gli elementi da valutare (Functions, sezione 2) e definire le relazioni (Join Path, sezione 3) tra le tabelle in due possibili modi:

1- Cliccare col tasto destro del mouse nell’area di disegno a destra e selezionare “Map DBMS Relationship on OBjects on Designer Panel";
2- Trascinare manualmente il mouse da una tabella all’altra.

A questo punto, nella sezione 4 (Check Out) è possibile visualizzare e testare (cliccando su Try Query in basso a sinistra) la query realizzata graficamente.
Per salvare tutto il lavoro bisogna cliccare su Manual Refine (sezione 6) e poi su save.

Entrando nella finestra Data Source (schermata iniziale) è possibile visualizzare il report cliccando su “new report”.
Specificando le dimensioni e le misure da considerare, queste devono poi essere trascinate, in base all'aspetto che si vuole dare al report, nei campi Vertical, Horizontal o Cross.
Per lavorare sul report creato e per aggiungere titoli, immagini, grafici, etc., cliccare su generate che aprirà la schermata Report Composer.

Reporting e Charting con DataTime

REPORTING

DataTime permette di creare ogni tipo di Layout con elevate possibilità di Slice & Dice, ed effettuare sezioni o interruzioni verticali ed orizzontali, totali su livelli multipli, drill down o roll up su ogni livello.
Tra le sue molteplici funzioni, tale software ci consente di realizzare report ad alta qualità visiva e di controllare tutti gli elementi grafici e stilistici.
I report possono essere pubblicati sulla rete in 2 modi:
1- Updatable (i report sono destinati alla sola consultazione e l'utente ha la possibilità di pianificarne il refresh)
2- Interactive (possibilità di interazione con i report).



CHARTING

Attualmente, DataTime è uno dei più potenti sistemi di rappresentazione grafica disponibili. Esso consente la realizzazione del posizionamento dei grafici in 3D con la massima flessibilità; possiamo, infatti, sezionare, definire o colorare a nostro piacimento tutti i grafici.

Introduzione a DataTime Reporting System: un semplice report


DataTime è un software intuitivo capace di creare report ad alto impatto visivo, dove tutti gli elementi grafici e stilistici possono essere controllati dall’utente ed è, attualmente, il più potente e moderno tra quelli disponibili sul mercato.

DataTime ci dà la possibilità di connetterci a qualunque DBMS: Oracle, SQL Server, Access, DB2, Sybase, MySQL, etc.

Tale programma, consente la definizione di:
- Sezioni verticali e orizzontali;
- Interruzioni orizzontali e verticali;
- Drill down / Roll Up su qualunque livello.

Inoltre, grazie alla sua flessibilità e facilità di utilizzo, consente di creare qualunque tipo di Layout (es verticale, orizzontale cross).

I report vengono creati attraverso due diverse architetture possibili:
1- Updatable (i report sono destinati alla sola consultazione)
2- Interactive (l’utente può solamente interagire con i report cioè può effettuare:
operazioni di rigenerazione on demand, operazioni di drill, redesign remoto del
report).

20 novembre 2008

I principali tool software di Query reporting: Business Objects, Microstrategy, Cognos, DataTime

I principali strumenti software di query reporting derivano dalle attività di reportistica presenti nelle grandi aziende che creano e commercializzano “applicazioni di business intelligence”.
Le maggiori aziende specializzate nel settore sono:


1- Business Objects è un’azienda nata per offrire agli utenti non tecnici un accesso semplice e intuitivo ai dati archiviati nei database, data warehouse, data mart e pacchetti applicativi aziendali. E’ attualmente l’azienda leader nel mercato della business intelligence.


2- MicroStrategy è un’organizzazione che a livello mondiale è composta da centinaia di professionisti la cui missione è quella di assicurare il ritorno dell’investimento effettuato nella tecnologia MicroStrategy. Ai clienti, ed ai partner, viene messo a disposizione un ampio ventaglio di servizi fra i quali il Technical Account Service (TAS) progettato per fornire tutto il supporto necessario ad assicurare il successo di ogni progetto.


3- Cognos, leader mondiale nel campo della Business Intelligence (BI) e del Performance Management, fornisce soluzioni per migliorare le performance aziendali a tutti i livelli organizzativi (gestione delle relazioni con i clienti, analisi di vendita, controllo di gestione, pianificazione e reporting, analisi multidimensionale, applicazioni analitiche, ecc.). Cognos consente alle aziende di ogni dimensione di migliorare il proprio vantaggio competitivo attraverso il Performance Management, grazie a un utilizzo strategico della Business Intelligence.



4- DataTime è una società di Roma nata 2 anni. «Non è stato facile – racconta il Prof. Tommaso Gastaldi, il fondatore della società – entrare sul mercato è una cosa davvero complicata. Ma ne è valsa la pena perché abbiamo creato un prodotto davvero innovativo che tiene testa ai più grandi software di Business Intelligence delle più grandi società al mondo. E soprattutto è un prodotto italiano». Il prodotto di questa azienda è il “DataTime Reporting Solution” il quale soddisfa l’esigenza di raccolta e gestione dei dati, con la possibilità di generare dei report completi ed efficaci.
Fino a oggi, la risposta a questo problema è stata lo sviluppo di software “ad hoc”, costosi, poco flessibili e di difficile utilizzo, oppure l’uso di un software generico come Excel, che richiede una programmazione e la mano di un esperto.
DataTime Reporting Solution è destinato a cambiare radicalmente questo scenario. Immaginate di avere a disposizione un software tanto potente e semplice da permettere a chiunque di sviluppare il proprio report, senza necessità di richiedere l’intervento di tecnici e programmatori. Immaginate di ridurre drasticamente i tempi di deployment e annullare i costi associati a queste operazioni.
È facile comprendere i numerosi vantaggi di una soluzione come DataTime Reporting Solution:
- Agli integratori consente di implementare in modo veloce e con sforzi e investimenti ridotti, una soluzione di reporting decisamente meno onerosa (non richiede alcuno sviluppo, riduce i tempi di configurazione e di generazione del report), permettendo così di ampliare il parco clienti. Questo con la contemporanea soddisfazione del cliente stesso, che si trova ad avere un servizio personalizzato, rapido ed efficiente.
- Ai clienti finali, consente di creare i propri report con minime competenze, di prendere importanti decisioni riguardanti l’azienda in base a dati aggiornati in tempo reale, di accedere in ogni momento a dati presenti in database situati in qualunque parte del mondo.
In definitiva DataTime Reporting Solution è stato progettato per essere totalmente al servizio esigenziale dell’utente e a differenza degli altri prodotti esistenti, è l’ideale per chi vuole una maggiore qualità e una affidabilità senza compromessi al minor prezzo sul mercato.

Funzione dell'ETL e i principali tool software di ETL

Extract, Transform, Load (ETL) sono le 3 fasi di estrazione, trasformazione e caricamento dei dati in un sistema di sintesi (DW, DM, ecc).

1- Estrazione (Extract) dei dati da sistemi sorgenti quali database transazionali, comuni file di testo o da altri sistemi informatici.

2- Trasformazione (Transform) con lo scopo di consolidare i dati (cioè rendere omogenei dati provenienti da sorgenti diverse) e di fare in modo che siano più aderenti alla logica di business del sistema di analisi per cui viene sviluppato.
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

3- Memorizzazione (Load) dei dati nelle tabelle del sistema di sintesi.

I principali software ETL sono:
- SmartDB Workbench
- DataStudio
- Integrator
- Informatica PowerCenter
- Datastage IBM
- SSIS Microsoft
- I-service IngeniumTechnology
- Scriptella ETL
- Benetl
- Oracle Data Integration Suite
- Kettle Pentaho Data Integration

5 novembre 2008

Particolarità riscontrate lavorando con l'SQL in Access: differenze rispetto agli altri DBMS

Un Database Management System (abbreviato in DBMS) è un sistema software progettato per consentire la creazione e manipolazione efficiente di database (ovvero di collezioni di dati strutturati) solitamente da parte di più utenti.
I DBMS più diffusi sul mercato, attualmente, sono:
-Oracle;
-Basis;
-Db2;
-Ms Sql Server;
-mySql;
-Ms Access.

La principale differenza tra l' SQL di Access rispetto agli altri DBMS è che il primo è un DBMS locale, a differenza degli altri che sono DBMS server-side (cioè si fa riferimento a operazioni compiute dal server in un ambito client-server).

Altre particolarità dell’sql in Access sono:
- la clausola top può essere usata per selezionare un certo numero di tuple dal risultato;
- l’uso tra le sue funzioni di Where e On, diversamente dall’ìsql in oracle;
- l’operatore join deve essere sempre qualificato con il termine inner od outer;
- le parentesi quadre vengono usate per racchiudere gli identificativi di tabelle e attributi.

Architetture per i sistemi informativi aziendali: DBMS transazionali, Data mart, DW

- Un Database Management System (DBMS) è un sistema software progettato per consentire la creazione e manipolazione efficiente di database solitamente da parte di più utenti.
In passato (diversamente da oggi in cui ne troviamo una diffusione generale) i DBMS erano estesi principalmente presso le grandi aziende. Questi si occupavano della gestione di tutte quelle operazioni necessarie alla vita dell'azienda.

Oggi, a tal fine, i DBMS si servono di Sistemi Transazionali cioè quei sistemi informatici che eseguono operazioni on-line su basi di dati. Sono, in genere, utilizzati contemporaneamente da più utenti che accedono alla stessa base di dati. I dati provenienti dai sistemi transazionali sono quell'insieme di dati elaborati dai sistemi transazionali dell'azienda e possono essere contenuti all'interno dello stesso database o provenire da diversi database o anche esterni all'azienda.

- Un Data warehouse (DW), è un archivio informatico contenente i dati di un'organizzazione. I DW sono progettati per consentire di produrre facilmente relazioni ed analisi.

Secondo Inmon la raccolta di dati è:
•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.
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 Data mart è un raccoglitore di dati specializzato in un particolare soggetto. Un Data mart contiene un'immagine dei dati che permette di formulare strategie sulla base degli andamenti passati.
Normalmente si colloca a valle di un Data warehouse più globale ed è alimentato a partire da esso, di cui costituisce, in pratica, un estratto. Detto in termini più tecnici, un Data mart è un sottoinsieme logico o fisico di un Data warehouse di maggiori dimensioni.

La differenza fondamentale consiste nel fatto che la creazione del Data warehouse avviene in maniera generalizzata per poi venire incontro alle specifiche esigenze, mentre il Data mart viene generalmente creato per venire incontro ad un'esigenza specifica e già determinata.

Che cosa sono i datawarehouse e cosa li differenzia dai sistemi OLTP


Un Data warehouse (DW) (magazzino di dati), è un archivio informatico contenente i dati di un'organizzazione. I DW sono progettati per consentire di produrre facilmente relazioni ed analisi.
I dati estratti dagli archivi transazionali vengono memorizzati internamente al data warehouse. Nel DW l'accesso ai dati è consentito in sola lettura.
Tali dati hanno una dimensione storica e sono riferiti a soggetti di business. Essi possono essere memorizzati in un archivio centrale o in un data mart.
Il termine data mart identifica un data warehouse di dimensioni ridotte, specializzato per una particolare area di attività.
Il DW è un sistema OLAP(Online Analytical Processing) e differisce dai sistemi OLTP (On Line Transaction Processing)per una serie di motivi.
Innanzitutto dobbiamo definire l'OLTP come un insieme di tecniche software utilizzate per l'analisi dei dati.
I sistemi OLAP sono orientati al soggetto, integrati, invarianti nel tempo, non volatili, storici e permanenti. I dati nei sistemi OLAP vengono subito memorizzati e messi a disposizione, e non sono aggiornati come nei sistemi OLTP.
Questi ultimi comprendono dati statici e analitici a differenza dei sistemi OLAP.

4 novembre 2008

SQL : Istruzioni di base per Estrazione, Inserimento, Update dei dati


Il comando SELECT è l'unico comando di interrogazione (query) di SQL. Il risultato del comando è una tabella. La select prevede molte clausole che la rendono molto flessibile e potente.
La sintassi nella forma più semplice è:

SELECT
FROM
WHERE


Il comando INSERT ha la funzione di inserire i dati nelle tabelle.
Le colonne (o campi) di destinazione dei valori possono essere o meno dichiarate nel comando. Se non vengono dichiarate, è necessario passare al comando un valore per ogni colonna della tabella, rispettando rigorosamente l'ordine delle colonne stesse. Se, invece, le colonne di destinazione vengono dichiarate, è possibile indicare le sole colonne per le quali vengono passati dei valori, purché vengano inseriti comunque i valori per tutte le colonne not null (che non possono essere nulle) della tabella.
Di per sé il comando insert opera inserendo in tabella una sola riga per volta. È possibile, però, inserire più di una riga "in modo automatico" passando all'insert una serie di righe (o tuple) risultanti da un comando di select, purché tali righe siano compatibili con le colonne della tabella su cui si inseriscono i dati.
La sintassi nella forma più semplice è:

INSERT INTO nome_tabella
VALUES (elenco valori, tutti, rispettando l’ordine dei campi della tabella);



Il comando UPDATE ha la funzione di modificare i dati delle tabelle.
Il nome di ogni campo che deve essere modificato va dichiarato dopo la parola chiave SET e deve essere seguito dal simbolo " = " e dal nuovo valore che deve assumere.
È possibile modificare più campi della stessa riga in un unico comando update, separandoli l'uno dall'altro con il simbolo " , ".
La sintassi nella forma più semplice è:

UPDATE nome_tabella
SET nome_campo1 = 'valore1_nuovo',
nome_campo2 = 'valore2_nuovo',
...
;

Approfondimenti su SQL: clausole where, having, group by


Le clausole WHERE e HAVING di un'istruzione SELECT consentono di specificare le righe delle tabelle di origine con cui generare il set di risultati. Entrambe le clausole sono filtri che specificano una serie di condizioni di ricerca. Solo le righe che soddisfano tali condizioni verranno incluse nel set di risultati. Tali righe sono definite qualificate per partecipare al set di risultati.

La clausola HAVING viene generalmente utilizzata insieme alla clausola GROUP BY per filtrare i risultati di valori aggregati. È tuttavia possibile specificare la clausola HAVING senza la clausola GROUP BY. La clausola HAVING specifica ulteriori filtri che vengono applicati dopo i filtri della clausola WHERE. Questi filtri possono essere applicati a una funzione di aggregazione utilizzata nell'elenco di selezione.

La clausola GROUP BY limita il numero di righe del set di risultati in modo che venga restituita una sola riga per ogni valore distinto delle colonne di raggruppamento. Ogni riga del set di risultati include dati di riepilogo correlati al valore specifico delle relative colonne di raggruppamento.

Quando un'istruzione SELECT include una clausola GROUP BY, nell'elenco di selezione è possibile specificare solo valori specifici, ovvero:
- colonne di raggruppamento;
- espressioni che restituiscono un solo valore per ogni valore delle colonne di raggruppamento, ad esempio funzioni di aggregazione in cui un parametro è impostato su un nome di colonna. Tali funzioni sono denominate funzioni di aggregazione vettoriali.

ANSI SQL


Per spiegare l'ANSI SQL introduciamo innanzitutto il concetto di Database "relazionali". Con questo indichiamo la divisione del contenuto di un database in tante tabelle che contengono dati logicamente correlati tra loro. Per metterle insieme, si usano delle relazioni tra l' una e l' altra tabella.

Il modo per poter utilizzare un database relazionale è avere un "linguaggio" che ci permetta di interrogarlo in maniera opportuna. Lo "standard" che avrebbe permesso a tutti di parlare lo stesso linguaggio è rappresentato dall'ANSI SQL (Structured Query Language della American National Standard Institute).

23 ottobre 2008

Join


Il comando join consente di recuperare dati da due o più tabelle in base alle relazioni logiche esistenti tra le tabelle stesse. I join indicano la modalità di utilizzo dei dati di una tabella in Microsoft SQL Server per la selezione di righe in un'altra tabella.

Una condizione di join definisce il modo in cui due tabelle sono correlate in una query in base agli elementi seguenti:

L'impostazione della colonna di ogni tabella da utilizzare per il join. In una condizione di join tipica viene specificata una chiave esterna di una tabella e la chiave associata nell'altra tabella.
L'impostazione dell'operatore logico (ad esempio = o <>) da utilizzare per il confronto dei valori delle colonne.
Gli inner join possono essere specificati nelle clausole FROM e WHERE, mentre gli outer join possono essere specificati solo nella clausola FROM. Le condizioni di join vengono utilizzate insieme alle condizioni di ricerca delle clausole WHERE e HAVING per definire le righe da selezionare nelle tabelle di base a cui viene fatto riferimento nella clausola FROM.

L'impostazione delle condizioni di join nella clausola FROM consente di separare queste condizioni da altre condizioni di ricerca specificate nella clausola WHERE. Corrisponde inoltre al metodo consigliato per l'impostazione dei join. La sintassi ISO semplificata per la definizione di un join nella clausola FROM è la seguente:

FROM first_table join_type second_table [ON (join_condition)]

join_type specifica il tipo di join da eseguire, ovvero inner join, outer join o cross join. join_condition definisce il predicato da valutare per ogni coppia di righe unite in join.

Se in una singola query viene fatto riferimento a più tabelle, nessuno dei riferimenti alle colonne deve presentare ambiguità. Nell'esempio precedente entrambe le tabelle ProductVendor e Vendor includono una colonna denominata VendorID. I nomi di colonna duplicati in due o più tabelle a cui viene fatto riferimento nella query devono essere qualificati con il nome della tabella. Nell'esempio tutti i riferimenti alle colonne Vendor sono qualificati.

Se il nome di una colonna non è duplicato in due o più tabelle utilizzate nella query, non è necessario qualificare i riferimenti con il nome della tabella, come illustrato nell'esempio precedente. Un'istruzione SELECT di questo tipo a volte è di difficile comprensione in quanto non indica la tabella a cui appartiene ogni colonna. La query risulta più leggibile se tutte le colonne sono qualificate con i nomi delle rispettive tabelle. Il grado di leggibilità aumenta ulteriormente se si utilizzano gli alias di tabella, soprattutto quando è necessario qualificare anche i nomi delle tabelle con il nome del database e del proprietario.

Nell'elenco di selezione di un join è possibile fare riferimento a tutte le colonne delle tabelle unite in join o a qualsiasi subset delle colonne. Nell'elenco di selezione non è necessario specificare le colonne di ogni tabella del join. Ad esempio, in un join tra tre tabelle è possibile utilizzare una sola tabella come collegamento tra le altre due e le colonne di tale tabella non devono essere necessariamente incluse nell'elenco di selezione.

Sebbene le condizioni di join includano in genere confronti di uguaglianza (=), è possibile specificare altri operatori di confronto o relazionali e altri predicati. Per ulteriori informazioni, vedere Utilizzo di operatori nelle espressioni e WHERE (Transact-SQL).

Durante l'elaborazione di join in SQL Server, il motore query sceglie il metodo di elaborazione di join più efficiente tra quelli possibili. L'esecuzione fisica di vari join può essere realizzata con molte ottimizzazioni diverse e pertanto non può essere stimata in maniera affidabile.

Non è necessario che alle colonne di una condizione di join sia associato lo stesso nome o lo stesso tipo di dati. Se tuttavia i tipi di dati sono diversi, devono essere compatibili o supportare la conversione implicita in SQL Server. Se non è possibile eseguire la conversione implicita dei tipi di dati, è necessario impostare nella condizione di join la conversione esplicita tramite la funzione CAST. Per ulteriori informazioni sulle conversioni implicite ed esplicite, vedere Conversione del tipo di dati (Motore di database).

Fonte: http://technet.microsoft.com/it-it/library/ms191517.aspx

Formalizzazione dei concetti statistici di base


Matrice dei dati
consiste in un insieme rettangolare di numeri dove in riga si hanno i casi, in colonna le variabili, ed in ogni cella (derivante dall’incrocio tra riga e colonna) un dato, e cioè il valore assunto da una particolare variabile su un particolare caso.

Unità (statistica)
è l’unità elementare su cui vengono osservati i caratteri oggetti di studio.

Carattere
può assumere modalità differenti in corrispondenza delle diverse unità statistiche del collettivo. Le modalità del carattere devono essere esaustive e non sovrapposte. Con il termine esaustive si intende che le modalità elencate devono rappresentare tutti i possibili modi di manifestarsi del carattere. Le modalità si definiscono non sovrapposte se ad ogni unità si può associare una sola modalità.

Tabella
è un archivio che include dati relativi a un certo argomento, strutturato in record. Contiene i dati immessi dall’utente come sequenza di record, che possono essere modificati, visualizzati e stampati dall’utente seguendo certi criteri e ordinati secondo uno o più indici.

Campo
è l’elemento base di un record di una tabella di un database. Come una cella di un foglio elettronico, contiene uno dei dati elementari di cui è composto un record. Un campo ha diversi attributi che lo caratterizzano; i principali sono il nome, il tipo e la dimensione.

Tabelle di contingenza
sono tabelle utilizzate in statistica per rappresentare e analizzare le relazioni tra due o più variabili. Le tabelle di contingenza sono tabelle realizzate per rappresentare la distribuzione di frequenza di due variabili congiunte di tipo quantitativo discreto o qualitativo.

CMS


Un Content management system (CMS), letteralmente "Sistema di gestione dei contenuti" è un software che si installa su un server web per la gestione automatizzata di siti web tramite pannello di controllo protetto da password.
Esistono CMS specializzati, cioè appositamente progettati per un tipo preciso di contenuti (un'enciclopedia on-line, un blog, un forum, ecc.) e CMS generici, che tendono ad essere più flessibili per consentire la pubblicazione di diversi tipi di contenuti.
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.
I CMS possono essere programmati in vari linguaggi tra cui più comunemente in PHP e ASP; il tipo di linguaggio adoperato è indifferente a livello di funzionalità. I CMS in PHP vengono utilizzati per piattaforme Linux, i CMS in ASP vengono utilizzati su piattaforme Windows.

Esistono moltissimi tipi di CSM, ma i più usati sono:
Drupal
Joomla
Plone
Xoops
Mambo
OpenCMS
Wordpress

Fonte: http://it.wikipedia.org/wiki/Content_management_system

L'SQL


L'SQL (Structured Query Language) è un linguaggio non procedurale utilizzato nella gestione dei database relazionali. Rispetto ad altri linguaggi di programmazione per database è molto semplice per quanto riguarda: concisione dei comandi; visione tabellare dei dati; facilità istruzioni; il che fa aumentare il suo sviluppo nelle applicazioni di carattere gestionale. Esso permette all'utente di: definire la struttura delle relazioni del database (FUNZIONE DDL); modificare i contenuti del database, con operazioni di inserimento, modifica e cancellazione (FUNZIONE DML); gestire il controllo degli accessi (FUNZIONE DML); interrogare la base di dati (FUNZIONE QUERY LANGUAGE).

Attraverso l’impiego del linguaggio SQL si possono effettuare in particolare tre operazione di gestione:

1- estrazione delle informazioni (attraverso l’istruzione Select)

2- inserimento di dati (con l’impiego dell'istruzione Insert)

3- modifica dei dati (attraverso l'istruzione Update)

Le select


Il linguaggio per la manipolazione dei dati impiega quattro istruzioni fondamentali: SELECT, INSERT, UPDATE e DELETE.
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.

Aggregate functions


Le 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.
Le domain aggregate functions sono:
- DAvg
- DCount
- DLookup
- DMin, DMax
- DStDev, DStDevP
- DSum
- DVar, DVarP

Queste funzioni sono estensioni Access-specific dell'expression evaluation
engine usato dal Jet e non sono disponibili negli altri prodotti. Il fatto
che possano funzionare da Visual Basic non implica che siano supportate.
Infatti il loro funzionamento e` del tutto aleatorio ed imprevedibile, ad
esempio si riesce ad utilizzare queste funzioni da Visual Basic se
casualmente e` caricato in memoria l'Access expression service.

Fonte: http://support.microsoft.com/kb/639768/it

Multidimensional cube, slice & dice, roll up, drill down e filtering


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

Le tecniche note nella visualizzazione dei report sono:

- Slice & dice --> permette di selezionare e ristrutturare i dati riducendone le dimensioni e consentendone una più efficace visualizzazione

- Drill down --> consente di aumentare il livello di dettaglio dei dati

- Roll up --> permette di aumentare il livello di aggregazione dei dati

- Pivot --> per orientare il piano

- Filtering --> utile per migliorare la funzione di ricerca e, quindi, per selezionare una parte dei dati in modo da dare una migliore risposta

Struttura di un record: elementi strutturali e teorici


Una struttura dati è un'entità usata per organizzare un insieme di dati all'interno della memoria del computer, ed eventualmente per memorizzarli in una memoria di massa.
Il record è un oggetto di un database stutturato di dati che contiene un insieme di campi o elementi, ciascuno dei quali possiede nome e tipo propri. I record devono molto alle tradizionali schede cartacee delle biblioteche, da cui riprendono in gran parte la struttura.È una struttura dati eterogenea, contenente una combinazione di elementi di diverso tipo, ad esempio un intero, un numero in virgola mobile e un carattere testuale. Gli elementi di un record sono detti anche campi, e sono identificati da un nome.Una struttura dati è un'entità usata per organizzare un insieme di dati all'interno della memoria del computer, ed eventualmente per memorizzarli in una memoria di massa.

Fonte: http://it.wikipedia.org/wiki/Pagina_principale

11 ottobre 2008

Elementi teorici e strutturali del report: Dimensioni, Misure, Aggregazione, funzioni di aggregazione


Un modello di report consiste in un livello di metadati sovrapposto a un database fisico che identifica entità, campi e ruoli aziendali. Dopo la loro pubblicazione, questi modelli consentono agli utenti, che non conoscono le strutture dei database e che non comprendono o non scrivono query, di sviluppare report. I modelli sono costituiti da entità, ovvero set di elementi di report correlati raggruppati con un nome descrittivo, da relazioni predefinite tra tali entità aziendali e da calcoli predefiniti. I modelli vengono definiti utilizzando un linguaggio XML denominato Semantic Model Definition Language (SMDL). L'estensione dei file dei modelli di report è smdl.

Le principali caratteristiche di un report sono:
- Dimensioni, che costituiscono il numero di variabili che vengono prese in considerazione;
- Misure, che, a differenza delle precedenti, identificano le operazioni che possono essere realizzate sulle suddette variabili;
- Aggregazioni e funzioni di aggregazione, in cui le prime danno una visione congiunta dei dati, mentre le seconde consentono di eseguire varie operazioni(min, max, sum, avg, etc.) su una serie di valori.

Principali prodotti software per l'archiviazione delle informazioni (DBMS)


In informatica, un Database Management System (DBMS) è un sistema software progettato per consentire la creazione e manipolazione efficiente di database solitamente da parte di più utenti. 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)
-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

9 ottobre 2008

Vantaggi per creatori o fruitori di informazioni


Esistono diversi modi di accedere come fruitori alle più svariate informazioni, ma anche molte possibilità di distribuire, mettere a disposizione la nostra conoscenza, come creatori di informazioni, agli altri utenti di internet.

Dal punto di vista dei cretori dell'informazione, possiamo evidenziarne alcuni, come il poter accedere al nostro blog o sito personale, per modificare o aggiungere contenuti, da qualunque postazione, anche dall'estero, basta che abbiamo un computer collegato alla rete. Inoltre, dal punto di vista del creatore del blog e dei suoi contenuti, c'è la possibilità che chiunque possa leggerli.

Dal punto di vista dei fruitori delle informazioni, avremo una serie di vantaggi: la riduzione del tempo che s'impiega per accedere alle informazioni, un aggiornamento di queste in tempo reale. L'interazione diretta e quindi molto più economica, ci permette di poter confrontare le varie notizie a disposizione, effettuare un controllo incrociato, cercare di approfondire diversi punti di vista contemporaneamente, selezionare la parte che più ci interessa. Questo mette in evidenza il fatto che cercare l'informazione in internet sia anche una forma di fruizione attiva, di scelta di forma e contenuti, contrastando la manipolazione. Il grande limite che possiamo riscontrare è l'acceddibilità dei siti e la loro fruibilità.

Accessibilità sul web


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.

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.

Formato ideale di software


Quale deve essere il formato idele di un software? Se ad esempio lo si dovesse presentare sotto forma di brief, come andrebbe strutturato?
Personalmente, ritengo che una presentazione in Powerpoint aiuterebbe, magari proponendo una copia delle varie pagine, in base alle funzioni, con le relative spiegazioni a margine. Per quanto riguarda invece il mero aspetto, credo che sarebbe opportuno posizionare il logo in un angolo, magari in basso a sinistra, in posizione ben visibile ma discreta, magari affiancato dal nome dell'azienda ideatrice.
In quanto alle informazioni sulle funzionalità e sull'utilizzo, è bene che esse siano suddivise per argomento, e magari capoversate nel brief, in modo che per ognuna sia possibile individuare delle parole chiave, o delle brevi frasi, che saranno poi spiegate approfonditamente nel rispettivo capoverso.

Termini informatici e statistici a confronto


I report statistici sono degli elaborati in cui vengono sintetizzati e rappresentati dei dati iniziali attraverso il supporto di software.
I DATI iniziali sono conservati in archivi informatici chiamati DBMS (data base management sistem) e all’interno dei DBMS sono organizzati nei database in tabelle.
A sua volta una tabella è organizzata in righe e colonne, le righe rappresentano i RECORD ossia le entità individuali (in statistica UNITA’) mentre le colonne i CAMPI ossia gli attributi (in statistica VARIABILI o CARATTERI).
Nei database le informazioni sono distribuite in più tabelle per evitare la ripetizione dei dati (in statistica NORMALIZZAZIONE), le tabelle sono poi collegate tra loro da relazioni, in particolare queste relazioni avvengono tra campi chiave; chiave che può essere primaria ( in questo caso abbiamo una relazione a uno) o secondaria (in questo caso abbiamo una relazione a molti).
Tutto questo sistema descrive un insieme di tabelle in relazione (in statistica MATRICE DEI DATI).
Un esempio di report statistico sono le tabelle di associazione o tabelle di contingenza, 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. Il caso più semplice è quello delle tabelle tetracoriche, in cui ciascuna delle due variabili assume solo due possibili valori.
I risultati contenuti all’interno della tabella di contingenza vengono chiamati MISURE mentre la DIMENSIONE della tabella è data dai lati della tabella.

Tabelle di contingenza


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. Il caso più semplice è quello delle tabelle tetracoriche, in cui ciascuna delle due variabili assume solo due possibili valori, ad esempio: Dove, tra le 100 persone esaminate, 30 presentano capelli biondi, 40 occhi chiari e soltanto 21 hanno capelli biondi e occhi chiari. Da questi dati è possibile ricavare i dati restanti della tabella. Utilizzando le tabelle di contingenza e operando specifici calcoli su di esse, si può arrivare a determinare la dipendenza o indipendenza tra le due variabili considerate, in base al valore assunto dall’indice di contingenza quadratico . Come già detto sopra le tabella di contingenza, o tabelle a doppia entrata, sono tabelle realizzate per rappresentare la distribuzione di frequenza di sue variabili congiunte di tipo quantitativo discreto o qualitativo. Indicando con X e Y i due caratteri e rispettivamente con (i = 1,2,…,h) e (j=1,2,…,k) le modalità rilevate per i due caratteri, ad ogni coppia (, ) si fa corrispondere nella tabella la sua frequenza associata , cioè il numero di elementi, tra gli n della popolazione, che possiedono contemporaneamente la modalità di di X e di Y.

8 ottobre 2008

Il software come complemento alla mente umana


Il termine software è una vocabolo creato a partire da due termini della lingua inglese, soft (morbido) e ware (manufatto, oggetto) e sta ad indicare un programma o un insieme di programmi in grado di funzionare su un elaboratore.
Dal 1950 l'analogia tra l'hardware ed il corpo umano e quella tra il software e la mente umana si è fatta molto forte, dal momento che Turing (noto matematico britannico) ha sostenuto che il progresso tecnologico sarebbe riuscito a creare entro il 2000 delle macchine intelligenti, in grado di pensare autonomamente per la risoluzione dei problemi.

Normalizzazione del database


La normalizzazione è un procedimento volto all'eliminazione della ridondanza e del rischio di inconsistenza dal database. Esistono vari livelli di normalizzazione (forme normali) che certificano la qualità dello schema del database.

Questo processo si fonda su un semplice criterio:
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 alcuni casi potrebbe comportare una perdita d'informazioni.

Alcuni concetti importanti riguardanti la normalizzazione:

Ridondanze --> Caratteristica di ciò che è ridondante. Aggiunta di parole non necessarie alla comprensione di una frase.

Anomalie --> si verificano quando ci sono irregolarità di dati.

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.

Decomposizione di una relazione--> una decomposizione 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" si 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

Teorema: Sia data una relazione R(X), con X insieme degli attributi di R, e due sottoinsiemi A, B di X tali che A unito B coincide con X; siano inoltre R1 e R2 due relazioni rispettivamente su A e su B. Allora è condizione sufficiente affinché la decomposizione su A e B sia senza perdita se, detto C l'insieme intersezione tra A e B, è superchiave per R1(A) o R2(B).


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: una relazione è in 1NF se e solo se:
-non presenta gruppi di attributi che si ripetono (ossia ciascun attributo è definito su un dominio con valori atomici).
-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.

Come esempio supponiamo di avere una tabella con gli esami sostenuti dagli studenti universitari. I campi di interesse potrebbero quindi essere i seguenti:

"Codice corso di laurea"
"Codice esame"
"Matricola studente"
"Voto conseguito"
"Data superamento"
La tabella avrà quindi la seguente intestazione

id_corso_laurea id_esame id_studente voto data

La superchiave è rappresentata dalla tripla evidenziata, ossia da:

"Codice corso di laurea"
"Codice esame"
"Matricola studente"
Essa infatti risulta essere l'insieme di chiavi minimale per poter identificare in modo univoco le tuple (i record) della tabella.

I campi "Voto conseguito" e "Data superamento", invece, sono campi non chiave, e fanno riferimento all'intera superchiave.


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:

X è una superchiave della relazione
Y è membro di una chiave della relazione
Teorema: Ogni relazione può essere portata in 3NF.


Forma Normale di Boyce e Codd
Definizione: Una relazione R è in forma normale di Boyce e Codd (BCNF) se e solo se per ogni dipendenza funzionale (non banale) , X è una superchiave per R.

Dato un insieme di relazioni, non è possibile garantire sempre il raggiungimento della BCNF; in particolare il mancato raggiungimento di questo obiettivo è indice che la base dati è affetta da un'anomalia di cancellazione (ossia è possibile perdere dati a seguito di un'operazione di cancellazione).

Es: Facciamo un esempio molto banale, se abbiamo uno schema relazionale
Mettiamolo in forma canonica.

Calcoliamo le chiavi: A, B e C non stanno a destra di nessuna dipendenza, quindi appartengono a tutte le chiavi.
La chiusura di ABC è ABCDE quindi ABC è una chiave.
Ora, visto che una chiave è una superchiave minimale (ovvero una superchiave con tutti attributi essenziali per derivare ogni attributo del sistema) lo schema relazionale è in BCNF


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:
è in 4NF;
ogni relazione di dipendenza è implicata dalle chiavi candidate.


Limiti di 4NF e 5NF

La quarta e quinta forma normale, in realtà, raramente vengono 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).

3 ottobre 2008

Differenza tra conoscenza, informazione e dati


-La conoscenza è la consapevolezza e la comprensione di fatti, verità o informazioni ottenuti attraverso l'esperienza o l'apprendimento (a posteriori), ovvero tramite l'introspezione (a priori). E' l'autocoscienza del possesso di informazioni connesse tra di loro, le quali, prese singolarmente, hanno un valore e un'utilità inferiori.
-L’informazione fa riferimento ai dati selezionati e organizzati per essere comunicati.
-I dati sono materiale “grezzo” dell’informazione, che descrivono semplicemente eventi o situazioni. L'elaborazione dei dati può portare alla conoscenza di una informazione.

Principali canali di comunicazione sociale


La comunicazione non è soltanto un processo di trasmissione di informazioni. In italiano, comunicazione ha il significato semantico di "far conoscere", "render noto". In tedesco, il termine Mitteilung mantiene la radice latina mettere in comune, condividere. La comunicazione è un processo costituito da un soggetto che ha intenzione di far sì che il ricevente pensi o faccia qualcosa.
I principali canali di comunicazione sono:

-videoconferenze (basta avere una WebCam e un microfono attraverso i quali è possibile effettuare delle conversazioni con altri utenti che sono in possesso di tali strumenti);

-newsgroup (sono delle bacheche elettroniche dedicate ad uno specifico argomento. I membri possono accedere e leggere o rispondere ai mess
aggi pubblicati);

-posta elettronica (Si tratta di uno strumento che permette ad ogni utente di inviare un messaggio ad un qualsiasi destinatario, che potrà leggerlo nel momento in cui accederà alla propria casella di posta elettronica. I messaggi inviati non sono esclusivamente di tipo testuale, è possibile allegare o includere direttamente nel corpo della mail immagini, suoni o filmati);

-mailing list (consistono nello scambio di informazioni tra un gruppo predefinito di persone che solitamente condividono uno stesso interesse);

-MUD (Gli utenti non si limitano a comunicare tra loro in un ambiente virtuale, ma hanno delle regole e degli scopi ben precisi e devono fare attenzione ai vari ostacoli e pericoli che incontrano nel loro percorso);

-ICQ (Una volta installato il programma ed inserita la lista dei propri contatti (le e-mail e i nomi delle persone che possiedono lo stesso software), ICQ avverte quando gli altri utenti sono collegati. A quel punto è possibile aprire una finestra a parte ed iniziare la discussione in tempo reale);

-IRC (In Internet consiste in uno spazio virtuale composto da stanze o canali. Nel momento dell'ingresso agli utenti può essere chiesto di scegliere un nickname, dopo di che può iniziare la conversazione con gli altri membri);

-Chat 3D (sono un’evoluzione di quelle tipiche. La conversazione avviene in un ambiente tridimensionale in cui i partecipanti sono rappresentati da personaggi o Avatar che attraverso il mouse o la tastiera possono muoversi, incontrarsi e interagire con gli altri).

Software per la creazione di homepage


Al giorno d'oggi è molto semplice costruire una homepage, a differenza del passato quando era necessario conoscere il linguaggio HTML. Questo grazie ai tanti server che offrono delle applicazioni attraverso le quali risulta semplice per chiunque creare un sito.

Gli strumenti software utilizzati per la creazione di homepage sono:
Frontpage;
Dreamweaver;
Easywebeditor;
Visual web developer;
Visual studio.