MICROSOFT ACCESS
DEFINIZIONE
Prima di parlare di cosa sia un database è bene spiegare un concetto fondamentale per capire cosa sia,
appunto, un database: l’archivio. Per “archivio” si intende un contenitore di informazioni raggruppate
secondo un criterio specifico, come ad esempio l’ordine alfabetico, che ne permetta il recupero,
l’aggiornamento, l’inserimento e l’eliminazione nel modo più efficiente possibile.
Un esempio di archivio semplice sono le biblioteche, nelle quali, fino a non molto tempo fa, per cercare un
certo libro si utilizzava lo schedario; nello schedario erano presenti diversi fogli che potevano contenere
diverse informazioni (il nome dell’autore, il titolo del libro, data pubblicazione, edizione, ecc.) e si poteva
usufruire delle schede che suddividevano i nomi degli autori in ordine alfabetico. Una volta trovato il libro
bastava appuntare su un foglio il codice della collocazione. La stessa cosa valeva per l’argomento: se si
volevano trovare testi che parlassero ad esempio di informatica, si cercava la parola “informatica” o
“computer” nell’apposito schedario.
I problemi arrivavano quando non si aveva un’idea precisa del tema del libro o si ricordava solo una parte
del nome dell’autore: cercare un determinato volume non era proprio agevole.
Oggi è tutto molto più semplice; grazie al computer si eseguono tutte le ricerche possibili in modo facile e
veloce anche se non si ricordano del tutto titolo o l’autore dell’opera cercata.
Un DATABASE, in italiano, base di dati o banca dati, abbreviato con la sigla DB, indica un insieme
organizzato di dati. Una serie di informazioni strutturate e collegate tra loro secondo un particolare
modello logico scelto dal progettista del database, ad es. relazionale, che poi è il modello che seguiremo in
queste lezioni, a cui gli utenti accedono attraverso l’invio di richieste in Query Language (QL - linguaggio di
interrogazione) ed i progettisti attraverso software dedicati chiamati DBMS (Data Base Management
System).
In pratica, per database si intende l'archiviazione a livello fisico di dati (spazio su memoria fisica) tramite
supporti di memorizzazione (hard disk) e il processore per l'elaborazione di questi (database server).
Fig.1 – Modello di Database Server
1
DALLA REALTA’ AL MODELLO FISICO
IL MODELLO LOGICO (STRUTTURA DI UN DATABASE)
Le basi di dati possono avere varie strutture, di solito:
1.
2.
3.
4.
5.
gerarchica;
reticolare;
relazionale (attualmente il più diffuso);
ad oggetti (“Object Oriented”, tipico della programmazione a oggetti);
semantica.
Un requisito importante di una buona base dati consiste nel non duplicare inutilmente le informazioni in
essa contenute: questo è reso possibile dai gestori di database relazionali (teorizzati da Edgar F. Codd), che
consentono di salvare i dati in tabelle che possono essere collegate.
La funzionalità di un database dipende in modo essenziale dalla sua progettazione: la corretta
individuazione degli scopi del database e quindi delle tabelle, da definire attraverso i loro campi e le
relazioni che le legano, permette poi una estrazione dei dati più veloce e, in generale, una gestione più
efficiente.
IL DATABASE SERVER
Un Server di database è la parte del DBMS che si occupa di fornire i servizi di utilizzo del database ad altri
programmi e ad altri computer secondo la modalità client/server. Il server memorizza i dati, riceve le
richieste dei client ed elabora le risposte appropriate.
I database server sono complessi sistemi software concepiti per fornire un accesso rapido ed efficace a una
pluralità di utenti contemporaneamente e garantire protezione sia dai guasti che dagli accessi indebiti
(sicurezza o protezione del database).
Tra i più diffusi DBMS open source troviamo:
2



MySQL
Firebird SQL
PostgreSQL
I più diffusi sistemi commerciali sono:



Oracle
Microsoft SQL Server
Microsoft Access
ESEMPIO PRATICO DI DATABASE: LA RUBRICA TELEFONICA
Ogni colonna corrisponde ad un attributo dell’entità, (detto anche campo) e ogni riga della tabella (detta
anche record) rappresenta un’istanza dell’entità (un caso particolare)
Volendo rappresentare ad esempio l’entità persona, possiamo impostare una tabella che abbia come
colonne gli attributi di una persona (nome, cognome, data di nascita, indirizzo). Ogni riga (o record)
corrisponde ad una persona particolare.
Gli attributi (o campi) rappresentano tipi diversi di informazione, ad esempio possiamo avere campi
numerici o campi di testo, oppure campi per le date. In gergo informatico questa natura diversa
dell’informazione si indica con la parola “tipo”. Anche Access lavora con i tipi: il nome dell’autore è di tipo
testo (o stringa: sequenza di caratteri alfanumerici), la data è di tipo “data”, l’anno di pubblicazione può
essere un tipo “numerico intero” e così via.
È importante che i dati siano coerenti con i tipi corrispondenti, ad esempio, se nel campo data di nascita
dell’autore inseriamo un numero come 01121980, commettiamo un errore di coerenza.
Lo schema della figura è quello che visualizziamo quando chiediamo di visualizzare la struttura della
tabella. Nella visualizzazione della struttura possiamo impostare, visualizzare e modificare il tipo degli
attributi; ad esempio nel campo nome inseriremo solamente delle stringhe di caratteri pertanto il tipo
idoneo è il tipo testo; all’attributo data abbiamo assegnato il tipo data. Approfondiremo i tipi più avanti
nella guida
Per iniziare la nostra esperienza con le basi dati utilizzeremo, forse, il più banale degli esempi di archivio
dati: la rubrica telefonica.
Chiunque di noi possiede una rubrica telefonica; una volta era presente in forma cartacea (uno schedario
cartaceo dove vengono memorizzati informazioni è un database) nelle agendine tascabili, oggi, con tanti
modelli di archiviazione elettronica a nostra disposizione, abbiamo diverse possibilità di memorizzazione
dei nostri contatti, e tutti sono fatti tramite database.
Un database in formato elettronico lo puoi creare anche con un foglio elettronico Excel o Calc.
Per il nostro esempio utilizzeremo, come detto, Access. Dalla schermata iniziale di MS Access 2007
selezioniamo la sezione Nuovo database vuoto, rinominiamo il nostro database come rubrica_telefonica
(l’estensione .accdb verrà inserita automaticamente), scegliamo il percorso dove salvare l’archivio che
stiamo creando, nel nostro caso sul Desktop, quindi premiamo il tasto Crea, come da figura sotto:
3
Fig.2 Schermata iniziale di Access 2007
Dalla schermata successiva, cominciamo a costruire la nostra rubrica telefonica:
Clicchiamo sul pulsante Nuovo campo, in alto sulla sinistra. Apparirà, a destra, una schermata con la
tipologia dei campi disponibili per costruire la nostra base di dati. Basterà semplicemente fare doppio clic
4
sui campi visualizzati, in ordine o meno di come li vorremmo disporre (tanto si possono spostare
semplicemente “trascinandoli” col mouse), per comporre la nostra tabella:
Una volta sistemati i campi noterete che il primo campo, ID, è inserito automaticamente dal software. Si
tratta del campo Chiave Primaria, un campo che consente di individuare univocamente ogni record che
inseriremo nella nostra tabella. E’ un campo auto incrementale (numeri progressivi inseriti in automatico).
Per vedere tutte le proprietà dei campi, ed effettuare eventuali modifiche, cliccate sulla freccia del tasto
Visualizza, in alto a sinistra, e selezionare Visualizzazione Struttura:
5
Torniamo alla nostra Visualizzazione Foglio dati e inseriamo il primo record e clicchiamo sul pulsante Salva,
nella Barra del Titolo, come da figura in basso:
Così abbiamo creato la nostra prima tabella (entità) all’interno del nostro primo database.
Adesso inseriamo altri record all’interno della nostra tabella così da creare una più completa rubrica
telefonica:
Terminata la nostra tabella, torniamo un attimo alla teoria per soffermarci sull’opzione Indicizzato delle
proprietà dei campi. Se cerchiamo il numero di telefono di una persona sull’elenco telefonico e il cognome
6
inizia con la lettera “p”, non iniziamo la ricerca dalla prima pagina ma cerchiamo direttamente nella
seconda metà della lista. L’ordine alfabetico facilita e velocizza la ricerca.
In modo analogo, quando rendiamo un campo indicizzato (nel nostro caso abbiamo scelto coerentemente il
campo Cognome, in quanto il più utilizzato nelle ricerche di questo tipo), Access costruisce un indice
interno basato su quel campo garantendo maggiore velocità per ogni operazione che lo riguarda. Si sceglie
il Sì con duplicati ammessi per l’intuibile ragione che è fortemente probabile la presenza di due o più
cognomi uguali in una rubrica telefonica.
Ricordiamo, però, che gli indici occupano spazio e aumentano la complessità del file quindi è meglio non
abusarne. Bastano semplicemente uno o due campi, oltre la nostra Chiave Primaria, già indicizzata di
default, per ottenere ottimi risultati in termini di ricerca nella nostra tabella.
Una volta ultimata la nostra tabella possiamo iniziare le operazioni per lavorare con i nostri dati.
Cominciamo con una semplice maschera di visualizzazione dei dati, in modo da vedere i contatti tramite
una Maschera invece che tramite la modalità Foglio Dati di Access che abbiamo avuto a disposizione finora.
Dal menu Crea, nella sezione Maschere, clicchiamo su Altre maschere e selezioniamo Creazione guidata
Maschera:
Si aprirà una finestra con due moduli in cui, a sinistra, sono elencati tutti i campi creati con la tabella Utenti
ed a destra, inizialmente vuota, c’è il modulo dei campi selezionati.
7
A questo punto trasferite tutti i campi simultaneamente, tramite il tasto ‘>>’, e poi cliccate su Avanti:
Continuate a selezionare Avanti, se volete lasciare la struttura standard della Maschera, fino
all’inserimento del nome: qui dovete inserire un nome significativo della maschera creata. Dato che
parliamo di visualizzazione di contatti, l’ho chiamata visualizza_utenti. Quindi cliccate su Fine.
La schermata successiva visualizzerà i nostri contatti inseriti come da figura sotto:
8
Tramite le freccette poste in basso alla finestra possiamo scorrere i nominativi finora inseriti.
Analogamente, se vogliamo creare un Report (rapporto) con i soli campi che ci interessa esportare per le
nostre varie esigenze, sempre dal menu Crea, nella sezione Report scegliamo Creazione guidata Report e
dalla finestra successiva, identica a quella delle Maschere, selezioniamo i campi (ma con il tasto ‘>’ per la
selezione dei singoli campi) che ci interessano nel modulo destro:
Nel nostro caso stiamo creando un Report con i soli campi Nome, Cognome, Città, Telefono e Cellulare.
9
Il passo successivo ci chiederà la priorità di alcuni campi. Clicchiamo su Avanti.
Nella schermata seguente invece ci chiede di ordinare il report, fino ad un massimo di 4 campi.
Selezioniamo il Cognome in ordine Crescente, in quanto, come detto, campo significativo della nostra
rubrica telefonica:
Successivamente potrete scegliere tipo di ordinamento e Stile in base ai vostri gusti, come già provato per
la Maschera, ma anche in questo caso è importante il nome. Lo chiameremo report_utenti.
10
Una volta cliccato su Fine, come da immagine sopra, ci ritroveremo il nostro Report come da immagine
sotto, modificabile dalla sezione Layout di Pagina, pronto per i nostri utilizzi (esportazione nei formati
elencati nella sezione Dati, oppure pronto per la stampa su carta):
Se chiudiamo l’Anteprima di Stampa, il Report verrà visualizzato in modalità Struttura, pronto per eventuali
modifiche del foglio finale.
Proviamo a fare qualche modifica e vedere qualche altra proprietà del Report:
Innanzitutto, nella Barra del Titolo, si è attivato il menu dedicato al Report grazie al quale possiamo vedere
e modificare diverse proprietà del nostro Report. Cominciamo con l’aggiungere un campo della nostra
tabella, quello della mail, nel nostro report, come indicato nella figura sopra, cancelliamo l’etichetta
Indirizzo posta elettronica (quella scritta in azzurrino) e lasciamo il riquadro dati Indirizzo posta elettronica
11
allineandolo agli altri dati. Duplichiamo copiandolo una delle etichette nella sezione Intestazione report e
cambiamone il nome tramite doppio clic (rinominiamolo E-mail), allineiamo anch’esso al resto delle
etichette. Possiamo modificare la grandezza dei campi da modificare cliccando sull’etichetta in Intestazione
pagina e allargarli o restringerli a piacimento. Infine cancelliamo l’istruzione ‘=Now()’, che inserisce la data
corrente nel piè di pagina a sinistra, semplicemente selezionandolo e premendo il tasto Canc. Il risultato è
quello della figura sotto:
Infine salviamo il tutto. Selezionando Visualizza Report, in alto a sinistra, il nostro nuovo Report sarà il
seguente:
Per completare questa prima lezione, creiamo anche la nostra prima ‘interrogazione’ al nostro database
chiedendo di visualizzare sotto forma di nuova tabella i campi richiesti. Dal menu Crea, nella sezione Altro,
clicchiamo su Creazione guidata Query e scegliamo quella semplice:
12
Dalla schermata successiva scegliamo quali campi vogliamo richiedere di visualizzare. Scegliamo i campi che
di solito ci interessano maggiormente e cioè Nome, Cognome, Cellulare e E-mail:
Il passo successivo chiede il nome da dare alla query. Scrivete utenti_Query e cliccate su Fine.
La tabella che otterremo sarà la seguente:
13