venerdì 27 novembre 2009

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

L'SQL "standard" può presentare delle variazioni più o meno marcate a seconda del DBMS preso in considerazione.Access, a tal proposito, è fondamentalmente un DBMS sui generis.
A differenza di altri ambienti di sviluppo, in Access un unico file comprende tutti gli strumenti per lo sviluppo delle applicazioni: tabelle, query, maschere, report. Le tabelle sono i contenitori dove vengono memorizzati i dati; le query sono gli strumenti idonei all'interrogazione ed alla manipolazione dei dati che avvengono attraverso un mini-SQL; le maschere consentono di interagire con i dati delle tabelle o delle query attraverso un'interfaccia grafica; i report, infine, consentono principalmente di visualizzare dei risultati basati sui dati.
Negli anni '90 Microsoft inserisce Access nel pacchetto dei prodotti Office e Access, oltre ad essere un programma in grado di gestire le informazioni "depositate" in un database relazionale, si rivela potente e flessibile ma soprattutto user friendly, tanto che può essere utilizzato sia per progetti "semplici" (si pensi ad una rubrica telefonica) che "complessi" (una ricerca scientifica). Access rientra in quella categoria di RDBMS che possono relazionarsi con il linguaggio SQL.
Per poter usare SQL in Access è necessario definire una query e scegliere l’opzione "Visualizza SQL", cosi facendo è possibile aprire una finestra di testo (la c.d. "Finestra SQL") in cui riportare le istruzioni SQL.
Gli elementi che caratterizzano il linguaggio SQL di Access sono:

- Non accetta il costrutto CHECK (è un vincolo).

-Cambia la valutazione dell’operatore COUNT: se l’argomento è un attributo, non vengono restituiti i singoli valori dell’attributo, ma il numero dei valori non nulli.
-La clausola DISTINCT non può essere utilizzata.

- L'operatore JOIN deve essere sempre identificato con il termine INNER od OUTER, mentre con Oracle utilizzeremmo, per esempio, l'operatore WHERE.
- Il carattere JOLLY (corrisponde a qualsiasi stringa composta da zero o più caratteri) viene indicato con il segno asterisco (*) e non con il simbolo della percentuale (%).

-Riconosce sia il singolo apice (') che i doppi apici (") nell’identificazione delle stringhe alfanumeriche.
- Per le stringhe che contengono date Access permette di adottare la formula latina GG/MM/AAAA mentre per alcuni DBMS di origine anglosassone ciò non è possibile. Nei comandi le date vanno racchiuse attraverso l'apice singolo ('), per la maggior parte dei dialetti SQL, mentre in Access si usa il cancelletto (#).

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

- Le parentesi quadre racchiudono gli identificativi di tabelle

mercoledì 18 novembre 2009

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

SQL (Structured Query Language) è un linguaggio creato per l'accesso a informazioni memorizzate nei database.
Questo linguaggio può essere suddiviso in tre parti:
-DATA DEFINITION LANGUAGE (DDL): permette di creare, modificare o cancellare il database, definendo la struttura dello stesso con dei dati –contenuti.
-DATA MANIPULATION LANGUAGE (DML): permette di inserire, cancellare, modificare e leggere i dati, fornendone gli strumenti.
- DATA CONTROL LANGUAGE (DCL): permette di gestire gli utenti e i permessi che gli consentono di agire sulla struttura del database.
SQL ha tre aspetti fondamentali:
1- l’estrazione delle informazioni (query);
2- l’inserimento dei dati (insert to);
3- la modifica dei dati (update).
Gli operatori messi a disposizione dall’ SQL standard si dividono in 4 categorie:
- OPERATORI DI CONFRONTO: determinano le uguaglianze e disuguaglianze tra valori ed effettuare ricerche all’interno dei dati;
- OPERATORI ARITMETICI: effettuano calcoli all’interno di una ricerca; (ad esempio il “+” effettua una addizione, il “-” una sottrazione, il “*” una moltiplicazione ed il “/” una divisione);
- OPERATORI CONDIZIONALI: unico operatore condizionale di SQL è il WHERE (dove) e serve a definire i criteri di ricerca mirati;
- OPERATORI LOGICI: sono AND (e), OR (o), NOT (non) e possono essere ripetuti più volte all’interno della ricerca.
Il comando SELECT abbiamo la possibilità di estrarre i dati in modo mirato dal database. Sintassi del comando SELECT:
SELECT lista elementi
FROM lista_riferimenti_tabella
[WHERE] espressione condizionale
[GROUP BY lista colonne]
[ORDER BY lista colonne]
La nota ORDER BY serve per ORDINARE e viene sempre applicato al primo attributo inserito nella SELECT. Il comando INSERT ha la funzione di inserire i dati nelle tabelle. (INSERT TO….). Il comando UPDATE ha la funzione di modificare i dati nelle tabelle. Il nome di ogni campo che deve essere modificato va dopo la parola SET e deve essere seguito dal simbolo “=” e dal nuovo valore che deve assumere. Il comando DELETE ha la funzione di cancellare i dati dalle tabelle. Una tabella priva di clausola WHERE cancella tutte le righe della tabella specificata. Esiste un altro modo per svuotare completamente una tabella, con il comando TRUNCATE TABLE. L’unica pecca dell’SQL riguarda il suo linguaggio, considerato da molti molto complicato e non fornisce un modo standard per suddividere un lungo comando in comandi più brevi.

venerdì 6 novembre 2009

Multidimentional Cube, Slice & Dice, Roll Up, Drill Down, Filtering


Come ho già spiegato nel post dal titolo Elementi teorici e strutturali del report, il report aziendale è uno strumento che consente di valutare, attraverso informazioni prelevate da archivi diversi, lo stato di salute di una qualsiasi società di persone o di capitali.Esso è anche un documento formato da tabelle e grafici esposti in modo sinottico con l’obiettivo di supportare le decisioni strategiche di un’azienda in base ad un determinato fenomeno d’interesse che è analizzato a sua volta secondo più dimensioni.
Le dimensioni sono i caratteri che si rilevano sulle unità statistiche. Si possono considerare anche più caratteri per singola unità statistica per agevolare la lettura del Report. Il Multidimentional Cube si può associare un database relazionale ad un database multidimensionale. L’accesso ai dati è semplificata dal costante tracciato del cammino che lo identifica.

Per rendere ancora più semplice la lettura di un Report sono state messe a punto alcune tecniche di visualizzazione come:

_ drill down ( termine che indica la perforazione di un terreno) è la possibilità di esplorare tutta la gerarchia a partire da un dato complessivo relativo ad una dimensione gerarchizzata.

_ slice & dice ( è l’insieme di operazioni di divisione di una torta) è la possibilità di restringere l’analisi solo ad alcune dimensioni.

_ Roll up è la possibilità di aumentare l’aggregazione dei dati eliminando i dettagli di gerarchizzazione. Il Roll Up può dividersi poi in due tipi: il primo che consiste nell’applicazione di una funzione aggregata e il secondo nell’eliminazione di una dimensione.

_ Filtering attraverso di esso si filtrano i dati con un algoritmo.