• Non ci sono risultati.

ESERCITAZIONI SVOLTE ACCESS

N/A
N/A
Protected

Academic year: 2021

Condividi "ESERCITAZIONI SVOLTE ACCESS"

Copied!
106
0
0

Testo completo

(1)

QUIZ

Answer key on page 512

1. Which of the following statements is the definition of degree of a relation?

a. The degree of a relation is the number of attributes it contains.

b. The degree of a relation is the number of different values in a candidate key. c. The degree of a relation is the number of alternate keys in the relation. d. The degree of a relation is the number of candidate keys of the relation.

2. Choose the relational schema representing the E/R model in the figure.

a. FacultyStudent (FacultyID, FacAttributes, RegistrationDate, StudentID, StudAttributes). b. Faculty (FacultyID, FacAttributes) Student (StudentID, StudAttributes, RegistrationDate). c. Faculty (FacultyID, FacAttributes) Student (StudentID, StudAttributes, FacultyID,

RegistrationDate).

d. Faculty (FacultyID, FacAttributes, RegistrationDate) Student (StudentID, StudAttributes, FacultyID). e. Faculty (FacultyID, FacAttributes, StudentID, RegistrationDate) Student (StudentID, StudAttributes).

3. Which of these statements, related to the below relational schema, are true (T) and which are false (F)?

Customers (CustomerID, Name, Surname, SSN, Address, Town, ZIP) Purchases (ID, Date, Article, UnitPrice, Qty, CustomerID)

Note: In the United States, a Social Security Number (SSN) is a nine-digit code identifying US

citizens and workers, similarly to Codice Fiscale in Italy

a. CustomerID in Customers table is a primary key b. CustomerID in Purchases table is a candidate key c. SSN is a candidate key

d. The set of attributes (Name, Surname, SSN) is a candidate key e. SSN is an alternate key

f. The set of attributes (Name, Surname) is a candidate key

4. Which of the following statements describes the relational schema of the previous question?

a. The schema represents a 1:1 relationship between Customer and Purchase entities. b. The schema represents a N:1 relationship between Customer and Purchase entities. c. The schema represents a 1:N relationship between Customer and Purchase entities. d. The schema represents a N:N relationship between Customer and Purchase entities.

5. Which of the following statements are correct with respect to the concept of normalization? (K is the primary key)

a. A table in second normal form is also a 3NF table. b. The table: T (K, A1, A2, A3) is definitely a 2NF table. c. The table: T (K, A1, A2, A3) is definitely a 3NF table. d. The table: T (K, A1) is definitely a 2NF table. e. The table: T (K, A1) is definitely a 3NF table.

1 Has N Faculty FacultyID {PK} FacAttributes Student StudentID {PK} StudAttributes RegistrationDate

(2)

Conoscenze

Software DBMS.

Aspetti funzionali e organizzativi del database. Oggetti di Access: tabelle, query, maschere e report.

Raggruppamenti e funzioni di calcolo. Viste logiche.

Abilità

Utilizzare il software Access per implementare il modello logico e le associazioni tra le tabelle.

Creare e modificare tabelle e query.

Creare e personalizzare maschere e report. Inserire criteri avanzati nelle query.

Importare ed esportare dati. Creare query basate su query.

Che cosa imparerai in questo capitolo

Contenuti

Il programma Access La creazione delle tabelle Le proprietà dei campi Le associazioni tra le tabelle Le query

Le maschere

Le maschere con sottomaschere I report

Raggruppamenti e calcoli Criteri avanzati nelle query Formule nelle query

Importazione, esportazione e collegamento dati

Oggetti multimediali Le viste logiche

Query basate su query

Personalizzazione di maschere

4

Access

(3)

1 Il programma Access

Nei precedenti capitoli sono stati descritti gli aspetti generali dei prodotti software per la gestione delle basi di dati e i concetti fondamentali dei database relazionali. In questo capitolo viene presentato l’ambiente software Microsoft Access (versione 2013). Le differenze, per altre versioni del programma, sono presentate nei Contenuti digitali integrativi del testo.

Access è un sistema di gestione di basi di dati relazionali (RDBMS, Relational DataBase

Manage-ment System): può essere utilizzato su personal computer con sistema operativo Windows e

utilizza al suo interno il linguaggio SQL.

Il programma si presenta con l’interfaccia grafica dei prodotti Microsoft Office per Windows, con i comandi organizzati in schede a seconda della loro funzione.

La scheda File (o menu File) ha un ruolo speciale perché in essa sono raggruppati i comandi di uso generale per creare, aprire e salvare un database, comandi che, nelle precedenti versioni di Access, erano raggruppati nel menu File.

Scheda File Scheda Crea

Barra multifunzione

Visualizzazione

(4)

In un database gestito da Access possono essere definite sette categorie di oggetti: le tabelle, le query, le maschere, i report, le pagine, le macro e i moduli. Per dare una prima definizione generale di questi elementi si può dire che:

le tabelle, ottenute dal modello concettuale dei dati secondo le regole di derivazione descritte nel precedente capitolo, costituiscono lo schema secondo cui sono organizzati i dati nel database;

le query (interrogazioni sui dati) permettono di ricavare nuove tabelle dalle tabelle iniziali, estraendo i dati secondo i criteri scelti dall’utente;

le maschere consentono la presentazione dei dati e il loro aggiornamento (inserimento, modifica e cancellazione) usando finestre grafiche;

i report si usano per presentare i dati su carta, secondo prospetti ordinati, in modo da facilitarne la consultazione;

le pagine sono utilizzate per visualizzare e pubblicare i dati del database in formato Web; le macro sono sequenze di comandi di Access raccolti in un’unica operazione. Le macro liberano gli utenti dai lavori ripetitivi perché la loro esecuzione causa l’esecuzione di tutti i comandi che la compongono;

i moduli sono procedure scritte nel linguaggio Visual Basic che permettono di eseguire operazioni più complesse.

L’elenco degli oggetti contenuti in Access è visualizzabile nel riquadro di spostamento.

Riquadro di spostamento Barra di stato Barra di accesso rapido

Schede aggiuntive Campi e

Tabella nel gruppo Strumenti

tabella, quando la tabella è visualizzata con i dati.

(5)

L’uso di Access permette di caricare i dati nelle tabelle e di eseguire successivamente le interro-gazioni sul database. In particolare per caricare i dati occorre:

• creare un database; • aprire un database; • definire le tabelle; • caricare i dati.

Mentre per realizzare le interrogazioni è necessario:

• definire le associazioni (indicate con il termine di relazioni nella terminologia di Access) tra le tabelle;

• realizzare le query necessarie.

Da ultimo, è possibile definire un passo aggiuntivo, per permettere una più facile gestione dei dati, realizzando sia maschere per l’aggiornamento delle tabelle, sia report per la presentazione dei risultati finali su prospetti di stampa. Sulla base di queste ulteriori possibilità, diciamo che Access non è solo un DBMS, ma è anche un generatore di applicazioni.

Per definire un nuovo database, nei programmi di Microsoft Office, selezionare il programma

Access.

Nel riquadro principale della finestra che si apre, clic su Database desktop vuoto.

Clic per specificare il percorso dove salvare il database sul disco. Assegnare un

nome al database.

(6)

Il database viene creato con una tabella vuota denominata Tabella1.

Al database di Access viene automaticamente assegnata l’estensione predefinita .accdb. Per le versioni precedenti del programma Access l’estensione predefinita è .mdb.

Il programma Access salva tutti gli oggetti del database (tabelle, query, maschere, report) in un unico contenitore registrato su disco con un file di tipo .accdb.

Per un database già esistente, occorre ricercare e selezionare il file sul disco facendo clic su Apri nel menu File.

All’apertura del database, il video si presenta diviso in due parti principali: a sinistra il Riquadro

di spostamento con gli oggetti del database e a destra l’area di lavoro con gli oggetti aperti.

Per creare un’applicazione si può usare la funzione di autocomposizione (in inglese Wizard) sulla base di modelli generali presenti in Access, che consentono di generare in modo automatico la struttura di database per gestioni di uso comune per la casa, per l’ufficio o per l’azienda. Per utilizzare i modelli, scegliere il modello desiderato tra quelli proposti nella finestra Nuovo della

visualizzazione backstage.

Questo modo di procedere risulta molto utile per l’addestramento all’uso di Access e comunque fornisce una struttura sulla quale si può successivamente intervenire con modifiche o aggiunte. Nel seguito saranno illustrate le operazioni principali da svolgere per creare le tabelle del database, per inserire i dati e per effettuare interrogazioni senza fare uso di Wizard, ma proce-dendo per passi, a partire dal modello concettuale del problema in esame.

Per imparare le funzionalità del programma Access può essere utile il database di esempio

Northwind.accdb (nelle versioni precedenti Northwind.mdb), fornito da Microsoft: di solito si trova

nella directory di installazione di Access. Contiene molti oggetti (tabelle, query, maschere e report) e le tabelle sono già popolate con molti dati, in modo che possano essere utilizzate per le prove.

Riquadro di spostamento

con gli oggetti del database.

Quando si apre un database esistente, il programma Access visualizza un Avviso di sicurezza sulla barra dei messaggi. Se si è sicuri della provenienza del database, clic sul pulsante Abilita

il contenuto.

Area di lavoro con gli oggetti aperti. Clic per nascondere o aprire il Riquadro di spostamento.

(7)

Creare la base di dati per gestire una collezione di dischi musicali.

Il database di nome CollezioneMusicale comprende le tabelle corrispondenti alle entità che caratterizzano la gestione che vogliamo automatizzare. Le entità individuate sono:

• Artista con le informazioni sugli artisti: nome, genere musicale prevalente praticato dell’ar-tista (classica, rock, jazz, ecc.), note biografiche;

• Registrazione con le informazioni sui dischi: titolo, etichetta, tipo di formato (LP, i diversi tipi di CD e DVD), numero di brani che possono essere contenuti nella registrazione, durata massima e capacità del supporto (di un CD registrabile interessa la capacità in termini di byte), note descrittive;

• Brano per le informazioni sui motivi musicali contenuti nelle registrazioni: titolo, genere musicale, durata e spazio occupato sul supporto, posizione nella registrazione, note sul brano.

Tra Artista e Brano esiste l’associazione Eseguire che è un’associazione uno a molti, perché un artista esegue uno o più brani, mentre un brano è eseguito da un solo artista: per questo problema artista è il singolo cantante o un gruppo musicale, un’orchestra, un quartetto, ecc. e quindi il brano è sempre riconducibile a un solo artista. Tra Registrazione e Brano esiste un’associazione uno a molti, in quanto una registrazione contiene molti brani, mentre un brano è contenuto in una precisa registrazione. Poiché nel database possono esserci registra-zioni prive di brani e artisti per i quali non è stato registrato alcun brano, la partecipazione di Artista nell’associazione Eseguire è facoltativa, così come la partecipazione di Registrazione nell’associazione Contenere.

Riassumiamo l’analisi dei dati nel seguente diagramma entità/associazioni:

Tra gli attributi delle entità compaiono, come chiavi, i tre attributi IDArtista, IDBrano e

IDRegistrazione che identificano univocamente un’istanza dell’entità tramite un numero

pro-gressivo; questa scelta permette, tra l’altro, di gestire le possibili omonimie tra artisti, titoli di brani o titoli di album identici.

Verifichiamo il modello utilizzando le regole di lettura:

Ogni artista può eseguire uno o più brani, ogni brano deve essere eseguito da un solo artista. Ogni registrazione può contenere uno o più brani, ogni brano deve essere contenuto in una sola registrazione.

Utilizzando le regole di derivazione, si passa dal modello concettuale alle corrispondenti tabelle del modello relazionale, introducendo le opportune chiavi esterne per rappresentare le associazioni.

ESERCIZIO GUIDATO

APPLICA 1 N Eseguire Artista IDArtista {PK} Nome Genere Note Brano IDBrano {PK} TitoloBrano Genere DurataBrano Dimensione Posizione Note Registrazione IDRegistrazione {PK} TitoloAlbum EtichettaAlbum TipoAlbum NumeroBrani DurataMassima Capacità Note N 1 Contenere

(8)

Si ottengono tre tabelle con il seguente schema:

Artisti (IDArtista, Nome, Genere, Note)

Registrazioni (IDRegistrazione, TitoloAlbum, EtichettaAlbum, TipoAlbum, NumeroBrani,

DurataMassima, Capacità, Note)

Brani (IDBrano, TitoloBrano, Genere, DurataBrano, Dimensione, Posizione, Note, IDArtista, IDRegistrazione)

Le associazioni uno a molti Eseguire e Contenere sono state rappresentate aggiungendo agli attributi dell’entità a molti, come chiavi esterne, le chiavi primarie delle corrispondenti entità a uno. Conseguentemente, l’associazione Eseguire è all’origine della chiave esterna IDArtista nella tabella Brani, mentre l’associazione Contenere viene rappresentata con la chiave esterna

IDRegistrazione nella tabella Brani.

Lo schema seguente illustra le principali caratteristiche delle colonne delle tabelle.

1. Database Northwind

2. Guida pratica per l’uso della versione Access 2003

CONTENUTI DIGITALI INTEGRATIVI

PK (Primary Key) indica la chiave primaria; FK (Foreign Key) indica la chiave esterna.

Nello schema compare anche la scelta per la possibile indicizzazione di un campo della tabella. L’indicizzazione di un campo, come è stato precisato nel primo capitolo del libro, consente al DBMS di recuperare le informazioni rapidamente, senza dover scorrere tutta la tabella per individuare i record con il valore cercato. L’indicizzazione di un campo, che in Access viene effettuata automaticamente per i campi chiave, è raccomandata per tutti i campi che sono utilizzati di frequente per ricercare informazioni. Per esempio, poiché è probabile che si vorranno ricercare i brani in base al genere musicale, si può decidere di indicizzare il campo Genere della tabella Brani.

Tabella Attributo Chiave Formato Indicizzato

Artisti IDArtista PK Numerico (intero) sì

Nome Carattere (50) sì

Genere Carattere (10) sì

Note Carattere (255) no

Registrazioni IDRegistrazione PK Numerico (intero) sì

TitoloAlbum Carattere (50) sì

EtichettaAlbum Carattere (20) no

TipoAlbum Carattere (10) no

NumeroBrani Numerico (intero) no

DurataMassima Numerico (intero) no

Capacità Numerico (intero) no

Note Carattere (255) no

Brani IDBrano PK Numerico (intero) sì

TitoloBrano Carattere (50) sì

Genere Carattere (10) sì

DurataBrano Numerico (reale) no

Dimensione Numerico (intero) no

Posizione Numerico (intero) no

Note Carattere (255) no

IDArtista FK Numerico (intero) sì

(9)

2 La creazione delle tabelle

Una tabella è un insieme di dati relativi ad uno stesso argomento. I dati di una tabella vengono rappresentati suddivisi in colonne e righe. Spesso si ricorre alla terminologia informatica conven-zionale: le colonne vengono denominate campi e le righe record.

Ogni tabella di un database rappresenta una sola tra le entità che caratterizzano la realtà osservata, in modo da mantenere distinti i dati ed evitare anomalie durante le operazioni su un database.

Per esempio, nel database CollezioneMusicale le informazioni sugli artisti sono conservate in una tabella specifica e le righe dei brani contengono il riferimento al codice dell’artista (IDArtista), e non al nome dell’artista: quando vogliamo ottenere l’elenco dei brani di un artista, possiamo essere sicuri di ottenere tutti i dati richiesti, perché il riferimento è scritto in modo uguale per tutti i brani di quell’artista; inoltre se per qualche motivo il nome dell’artista venisse modificato, non saremmo costretti a cambiarne il nome in tutte le righe dei brani relativi all’artista.

Per creazione di tabelle si intende la descrizione della struttura della tabella specificando obbligatoriamente per ogni colonna:

• il nome della colonna;

• il tipo di dati che essa contiene: testo (per esempio nomi, titoli, descrizioni), numero (stipendi, importi), data/ora (date di nascita, date di registrazione), sì/no (campi di controllo come pagato, registrato, superato).

Le proprietà del campo possono essere ulteriormente precisate impostando: • la dimensione massima (in byte) prevista per i dati da inserire nella colonna;

• il formato di un attributo per indicare le caratteristiche dei valori che il campo può assumere (per esempio, lunghezza in caratteri per i campi di testo, numero intero o reale per i campi numerici);

• il valore predefinito (valore di default) per indicare un valore che viene inserito nel campo in

mancanza di diversa specificazione;

• l’obbligatorietà dell’assegnazione di un valore per il campo (richiesto), cioè il campo deve essere valorizzato e non può essere lasciato vuoto.

Per avere una rappresentazione precisa delle entità del database e per facilitare le operazioni di ritrovamento dei dati, ogni colonna deve contenere un dato elementare, non ulteriormente scomponibile: un campo non può avere sottocampi, né campi ripetuti.

Per esempio, le informazioni sulla residenza di una persona sono rappresentate con diversi campi separati: Indirizzo, CAP, Città, Nazione, Telefono e Fax. In questo modo un’interrogazione al database consente di ottenere immediatamente l’elenco delle persone di una nazione, perché il dato è disponibile in una colonna specifica.

Per Access il nome della colonna può avere un formato qualsiasi purché non ecceda 64 caratteri; il tipo di dati può essere definito da un insieme molto ampio di opzioni; la dimensione è nella maggior parte dei casi predefinita in funzione del tipo scelto. Il tipo testo (Testo breve), essendo il più usato, viene proposto come predefinito.

La tabella della pagina seguente riassume i tipi di dati utlizzabili in Access. Tabelle

(10)

Nella versione Access 2000/2003 il tipo Testo lungo si chiama Memo e il tipo Numerazione

automatica si chiama Contatore.

Si osservi che il tipo Numerazione automatica, essendo autoincrementale, risulta particolarmen-te utile per rappresentare identificatori di record che hanno una numerazione progressiva, per esempio numero delle fatture, oppure numero di registrazione di esami, scontrini, prove degli studenti, in generale movimenti che rappresentano gli eventi nella gestione dei dati e che avvengono in una data specifica.

I campi di questo tipo sono normalmente indicati in Access con il nome ID (abbreviazione di

Identificativo).

In Access, una nuova tabella può essere definita sia in visualizzazione Foglio dati, cioè con lo schema tabellare che presenta i valori dei campi nelle righe, sia in visualizzazione Struttura, che mostra il nome e i tipi dei campi.

Tipo Descrizione Dimensione

Testo breve Testo o combinazioni di testo e di numeri, Fino a 255 caratteri oppure numeri che non richiedono calcoli,

come numeri di telefono

Testo lungo Testo lungo o combinazione di testo e numeri Fino a 1 GB di dati

Numerico Dati numerici utilizzati in calcoli matematici 1 byte (byte), 2 byte (intero), 4 byte (intero lungo oppure non intero con precisione singo-la), 8 byte (precisione doppia)

Data/Ora Valori data e ora per gli anni da 100 a 9999 8 byte (predefinita)

Valuta Valori per valuta e dati numerici utilizzati in 8 byte (fino a 4 cifre per la parte frazionaria calcoli matematici e 15 per la parte intera)

Numerazione Numero progressivo univoco, incrementato 4 byte (se una chiave esterna è associata a Automatica automaticamente di un’unità, ogni volta che una chiave di questo tipo, deve essere

dichia-viene aggiunto un nuovo record a una tabella rata di tipo numerico Intero lungo) Sì/No Campo contenente un solo valore tra due 1 bit

(Sì/No, True/False, On/Off)

Oggetto OLE Un oggetto, come un foglio di calcolo di Fino a 1 GB Excel, documento di Word, grafico, filmato,

suono, collegati o incorporati in una tabella di Access

Collegamento Testo utilizzato come indirizzo di un colle- Composto da quattro parti ognuna delle quali ipertestuale gamento ipertestuale a un documento può contenere fino a 2048 caratteri

registrato su disco oppure un indirizzo Internet nel formato URL

Allegato Qualsiasi tipo di file supportato dal sistema È possibile allegare immagini, grafici, file di ogni tipo come si allegano file a messaggi di posta elettronica (più di un file per record) Calcolato Campo nel quale si visualizzano i valori Dimensione del risultato del calcolo

calcolati in funzione di altri campi della stessa tabella

Ricerca È un campo dove il valore può essere In genere 4 byte guidata scelto da un elenco di valori predefiniti,

utilizzando una casella di riepilogo o una casella combinata

(11)

Vediamo le operazioni per creare una nuova tabella in Visualizzazione Foglio dati: nella scheda Crea, clic sul pulsante Tabella.

Per eliminare un campo, si deve fare clic sul pulsante Elimina nel gruppo Aggiungi ed elimina, dopo averne selezionato il nome.

Poiché la tabella è aperta in Visualizzazione Foglio dati, dopo aver definito la struttura della tabella con i nomi e i tipi dei campi, è possibile già in questa fase inserire i valori delle colonne nelle righe sottostanti, oppure l’operazione di inserimento dei dati può essere rimandata ad un momento successivo.

Vediamo le operazioni per creare una nuova tabella in Visualizzazione Struttura: nella scheda

Crea, clic sul pulsante Struttura tabella.

Nell’area di lavoro viene aperta una finestra con tre colonne:

- nella prima sono indicate le intestazioni delle colonne (Nome campo) - nella seconda il tipo di dato contenuto nelle colonne (Tipo dati) - nella terza (facoltativa) note esplicative o promemoria (Descrizione).

Al campo è assegnato il nome provvi-sorio Campo1:scrivere il nuovo nome oppure usare il pulsante Nome e

didascalia.

3

Viene automaticamente creata una tabella con il nome provvi-sorio Tabella1 con campo ID di tipo Numerazione automatica, che diventa la chiave primaria della tabella.

1

Se il campo è di tipo Testo breve: modificare la lunghezza preimpostata a 255.

Se è di tipo Numerico: impostare il formato con i pulsanti del gruppo

Formattazione.

4

Definire il tipo per il nuovo campo dall’elenco che si apre facendo clic sul titolo della colonna oppure dai pulsanti del gruppo

Aggiungi ed elimina della scheda Campi.

2

Clic per salvare la tabella assegnando un nome significativo.

(12)

Le proprietà dei campi possono essere precisate ulteriormente inserendo dei valori nel pannello inferiore della finestra.

Clic per eliminare il campo selezionato.

Per rinominare un campo, scrivere il nuovo nome sopra il precedente.

Inserire i nomi dei campi e le descrizioni nelle righe usando i tasti freccia a sinistra e freccia a destra della tastiera per spostarsi da una colonna all’altra e le frecce verso l’alto e verso il basso per spostarsi da una riga all’altra. Ci si può spostare anche con il tasto Invio o il tasto di tabulazione.

Il valore predefinito può essere modifica-to nella casella

Dimensione campo.

Quando si sceglie il tipo

Testo breve viene fissata per la lunghezza il valore di default uguale a 255. Clic per inserire un

nuovo campo prima di quello selezionato.

(13)

Seguendo queste indicazioni si può creare la tabella Artisti, con quattro campi: identificativo dell’artista (tipo Numerazione automatica), nome dell’artista (tipo Testo breve. dimensione 50), genere musicale (tipo Testo breve dimensione 10) e note (tipo Testo breve, dimensione 255).

Clic sul pulsante

Chiave primaria.

3

Clic nel quadratino grigio accanto al nome del campo per selezionarlo.

2

Clic per chiudere la tabella.

6

Accanto al nome del campo compare il simbolo di una chiave.

4

Clic per salvare la tabella con il nome Artisti.

5

Inserire i tre campi di tipo

Testo breve.

1

Quando si sceglie il tipo

Numerico, si può precisare il tipo nel pannello inferiore della finestra, scegliendo tra

Intero, Intero lungo, ecc.

Fissando la chiave primaria si stabilisce un controllo intrinseco sull’inserimento dei dati nella tabella, in quanto, in caso di duplicazione della chiave, verrà segnalato un errore.

Inoltre la chiave è lo strumento che ci consente di stabilire i collegamenti tra le diverse tabelle del database attraverso le corrispondenze con la chiave esterna.

(14)

Se l’utente salva la tabella senza definire un campo chiave, il programma suggerisce di usare come chiave, per identificare le righe in modo univoco, un campo aggiuntivo a cui assegna automaticamente il nome ID e il tipo Numerazione automatica (autoincrementale).

Le operazioni appena descritte devono ora essere ripetute per creare le altre due tabelle: Brani e Registrazioni. Si possono usare le due figure seguenti come traccia per il lavoro.

Si osservi l’uso della colonna Descrizione per commentare il campo, descrivendolo e specificando meglio le caratteristiche per i valori immessi nel campo, quali: obbligatorietà e condizioni di validità.

Dopo aver salvato la struttura delle tabelle nel database su disco, occorre procedere all’inseri-mento dei dati nelle tabelle.

(15)

Caricare i dati nella tabella.

1. Nel riquadro di spostamento clic su Tabelle per visualizzare l’elenco delle tabelle nel

database.

2. Selezionare la tabella nella quale si vogliono inserire i dati e doppio clic sul suo nome,

oppure clic con il tasto destro sul nome della tabella e scegliere Apri nel menu di scelta rapida. La tabella viene aperta in modalità Visualizzazione Foglio dati.

3. Inserire i dati nelle righe usando i tasti: freccia a sinistra ← e freccia a destra →, per

spostarsi da una colonna all’altra, e le frecce verso l’alto ↑ e verso il basso ↓, per spostarsi da una riga all’altra. Ci si può spostare anche con il tasto Invio o il tasto Tab (tabulazione) che si trova sulla tastiera a sinistra, sopra il tasto di Blocco maiuscole.

Se un campo è di tipo Numerazione automatica, non va inserito alcun valore, perché viene automaticamente aggiornato e incrementato ogni volta che si passa nella riga sottostante per la registrazione di un nuovo record.

La stessa modalità operativa può essere usata in momenti successivi per aggiungere nuove righe a quelle già registrate, oppure semplicemente per vedere i dati contenuti in una tabella. L’operazione deve essere effettuata per tutte le tabelle del database. È opportuno iniziare dalle tabelle che contengono dati di tipo anagrafico, in modo da utilizzare i valori delle chiavi nelle altre tabelle, quando dobbiamo inserire i valori corrispondenti nelle chiavi esterne delle tabelle collegate. Nell’esempio della collezione musicale si possono inserire nell’ordine: prima

Artisti, poi Registrazioni, e infine Brani.

Si osservi che, mentre si popolano le tabelle con i dati, nella barra di stato appare la descrizione del dato immessa nel campo Descrizione al momento della creazione della tabella. Per esempio, immettendo il valore del campo DurataBrano della tabella Brani, nella

barra di stato compare il messaggio: Durata in minuti: 4,5 indica 4 minuti e mezzo. Si

comprende allora che l’inserimento di descrizioni significative dei dati è utile non solo nella fase della progettazione delle tabelle, ma anche per la loro gestione.

ESERCIZIO GUIDATO

APPLICA

(16)

I dati caricati nelle tre tabelle e le principali caratteristiche della finestra Visualizzazione

Foglio dati sono riportati nella figura precedente e nelle due seguenti.

Cancellare una riga della tabella

1. Clic nel quadratino grigio a sinistra della riga che deve essere eliminata; la riga viene

evidenziata.

2. Premere sulla tastiera il tasto CANC e dare OK alla richiesta di conferma della

cancellazio-ne. In alternativa clic sul pulsante Elimina nella scheda Home della barra

multifunzione; anche in questo caso il sistema richiede di confermare la cancellazione

prima di eseguire il comando.

Selettore di record

Clic qui per selezionare tutti i record. Clic qui per selezionare una colonna.

(17)

ESEMPIO 1

Quando una tabella è aperta in Access, per passare velocemente dalla Visualizzazione Struttura alla Visualizzazione Foglio dati e viceversa, si possono usare le icone che si trovano in basso a destra nella barra di stato.

Il passaggio da una visualizzazione all’altra si esegue anche facendo clic sulla prima icona della scheda Home (indicata con Visualizzazioni) che propone automaticamente l’icona della

Visualizzazione Struttura quando la tabella è mostrata come Foglio dati e viceversa.

Nella Visualizzazione Foglio Dati compare, dopo le colonne definite, una colonna di nome Fare clic per aggiungere, che permette di definire un nuovo campo, specificandone il tipo e il nome. Si osservi, però, che bisogna ricorrere comunque alla Visualizzazione Struttura per definire esattamente le proprietà del campo in quanto, per esempio, un dato di tipo Testo breve è automaticamente di 255 caratteri e il tipo numerico è predefinito del tipo Intero lungo. Ne segue che questa funzionalità, di un certo interesse per la prototipazione veloce di una tabella, non è in pratica di reale concreto interesse e se ne sconsiglia l’uso.

Le icone che compaiono nelle diverse schede della barra multifunzione cambiano automatica-mente nella composizione a seconda dell’attività che si sta svolgendo: nelle prime esercitazioni con Access può sicuramente essere utile controllare il significato delle icone passando con il mouse sopra di esse per visualizzarne una breve descrizione. Per ulteriori dettagli ed esempi sulle tabelle si veda la Guida in linea, attivabile dall’icona posta sopra la barra multifunzione, oppure premendo il tasto F1, e ricercando: “tabella”. Si ricordi poi che il tasto F1 provoca, ove possibile, una ricerca nella guida in linea contestuale alle azioni che si stanno eseguendo e, in questi casi, si ottengono esattamente le informazioni necessarie in quel momento.

Le proprietà dei campi delle tabelle

Per rendere più affidabili e precise le operazioni di inserimento e aggiornamento dei dati possono essere definite opportune caratteristiche dei campi, precisandole nel pannello posto nella parte inferiore della finestra Visualizzazione Struttura della tabella.

Definire le caratteristiche dei campi TitoloBrano, DurataBrano e Genere della tabella Brani nel database CollezioneMusicale.

• TitoloBrano: ogni brano deve obbligatoriamente avere un titolo che sarà utilizzato per ricercare brani nel database; per evidenziarlo, è visualizzato in caratteri maiuscoli.

Per rendere obbligatoria l’immissione del titolo, la proprietà Richiesto è stata impostata a

Sì; per visualizzare il titolo in caratteri maiuscoli, accanto a Formato viene inserito il simbolo > (mentre il simbolo < causa la conversione in caratteri minuscoli).

Infine, per accelerare la ricerca di un brano in base al titolo, alla proprietà Indicizzato viene assegnato il valore Sì(Duplicati ammessi) che ammette la presenza di brani con lo stesso titolo nella tabella Brani.

(18)

Osserviamo che la scelta Sì(Duplicati non ammessi) avrebbe impedito di catalogare due brani con il medesimo titolo e avrebbe attribuito al campo TitoloBrano le caratteristiche tipiche di una chiave.

Visualizza il titolo in caratteri maiuscoli.

Immissione obbligatoria del titolo.

Ammette brani con lo stesso titolo.

Generatore di espressioni: clic sui tre puntini (…) al termine della riga, oppure clic su

Genera … del menu di scelta rapida del tasto destro del mouse sulla riga Valido se.

• DurataBrano: per esprimere la durata del brano in minuti e frazioni di minuto servono numeri con una parte intera e una parte frazionaria espressa, mediante la proprietà

Posi-zioni decimali, con due cifre decimali. La precisione singola, che garantisce 7 cifre

signifi-cative, è adatta a rappresentare questo tipo di dato. Il campo DurataBrano viene propo-sto con 4 come valore predefinito, per mezzo della proprietà Valore predefinito, ritenen-dolo un valore di uso frequente per rappresentare la parte intera della durata.

Si è voluto anche introdurre un test per controllare che i valori immessi ricadano tra i valori ammissibili per la durata. Il controllo è attuato tramite l’espressione >=0 and <= 60, che caratterizza la proprietà Valido se; nel caso venga immesso un valore non consentito dall’espressione, viene visualizzato un messaggio di errore che riporta la scritta immessa nella proprietà Messaggio errore.

(19)

• Genere: definisce il genere musicale del brano. Per limitare le scelte ai soli valori proposti in un elenco visualizzato accanto al campo al momento dell’immissione del dato, ossia tramite una casella di riepilogo, si utilizzano le proprietà della scheda Ricerca.

Per la creazione della casella di riepilogo è consigliabile usare un generatore attivabile in modalità Visualizzazione Struttura direttamente nella colonna Tipo dati selezionando, per il tipo dati prescelto, l’opzione Ricerca guidata … Per l’eventuale modifica delle proprietà è comunque necessario ricorrere alla scheda Ricerca, per aggiungere o eliminare voci o per variare le voci inserite.

La variazione delle proprietà di un campo ha effetto a partire dal momento della variazione; si tengano ben presenti le possibili conseguenze sulla validità dei dati già immessi. Per esempio, se la dimensione di TitoloBrano viene ridotta passando da 50 a 30 caratteri, è possibile che i titoli già immessi vengano troncati o che, per effetto della variazione di un controllo di validità, i dati già immessi non siano più validi.

Nell’esempio precedente non si è fatto uso di alcuna Maschera di input. È utile però ricordare che le maschere di input possono semplificare l’immissione dei dati, per esempio permettono di inserire una data digitando i soli valori numerici corrispondenti a giorno, mese e anno, senza immettere il carattere di separazione tra giorno e mese e tra mese e anno, che viene inserito dal sistema in base alla maschera.

Per costruire una maschera di input conviene fare uso di una creazione guidata, attivando l’opportuno generatore direttamente dalla riga della proprietà Maschera di input, con un clic sui tre puntini a destra (…) per visualizzare la finestra di dialogo Creazione guidata

Maschera di input.

Informazioni dettagliate ed esempi sulle maschere di input, e più in generale su ognuna delle proprietà sopra citate, sono ottenibili dalla guida in linea posizionando il cursore sulla riga della proprietà e premendo il tasto F1 della tastiera.

Scheda Ricerca

Visualizza controllo: Casella di riepilogo. Tipo origine riga: Elenco valori.

Origine riga: elenco dei valori ammissibili tra apici, separati con punto e virgola.

(20)

3 Le associazioni tra le tabelle

Access consente di definire e di memorizzare le associazioni, cioè i collegamenti esistenti tra le tabelle di un database, in modo visuale, con l’interfaccia grafica. Nell’ambiente Access si usa il termine Relazioni per indicare le associazioni tra le tabelle.

Per esempio tra la tabella Artisti e la tabella Brani esiste un’associazione uno a molti, perché per ogni artista si possono avere più brani registrati nella collezione. Anche tra la tabella Registrazioni e la tabella Brani si può stabilire un’associazione uno a molti, perché in ogni disco sono normal-mente contenuti più brani.

Definire le associazioni tra le tabelle.

1. Nella scheda Strumenti database o nella scheda Strumenti tabella della barra

multifunzione, clic sul pulsante Relazioni.

2. Si apre la scheda Relazioni dove sono visualizzate tutte le tabelle che compongono il

database con l’elenco dei campi che compongono le tabelle: il campo chiave è evidenziato con la relativa icona.

3. Per definire la relazione uno a molti tra due tabelle, clic sulla chiave primaria della prima

tabella e, tenendo premuto il tasto sinistro, trascinare il mouse fino a sovrapporsi al campo che è chiave esterna nella seconda tabella: rilasciando il tasto sinistro, si apre la finestra Modifica relazioni per definire dettagliatamente le caratteristiche dell’associa-zione che si sta creando.

4. Nella finestra Modifica relazioni compare anche la casella Applica integrità referenziale.

Come si è visto nel precedente capitolo, l’integrità referenziale viene rispettata quando, per ogni valore non nullo della chiave esterna, esiste un valore corrispondente della chiave primaria nella tabella associata. È opportuno attivare questo controllo facendo clic sulla casella di spunta a sinistra dell’opzione, per garantire la consistenza dei dati che si corrispondono nelle due tabelle.

Associazioni

ESERCIZIO GUIDATO

APPLICA

Impostazione del controllo sull’integrità referenziale.

(21)

5. Clic sul pulsante Crea per confermare.

Nella finestra delle relazioni sono rappresentate graficamente le linee orientate che uniscono la chiave primaria di una tabella con la chiave esterna dell’altra: i caratteri 1 e ∞ (simbolo matematico di infinito) stanno a indicare una relazione uno a molti.

Per cancellare una relazione, nella finestra delle relazioni, basta fare clic con il mouse sulla linea che unisce le tabelle e premere il tasto Canc, oppure fare clic con il tasto destro del mouse sulla linea e scegliere Elimina.

Se alle tabelle del database CollezioneMusicale si applicano i vincoli di integrità referenziale non è possibile inserire i dati di un nuovo brano, con i campi IDArtista e IDRegistrazione della tabella Brani a valore non nullo, se prima non sono stati inseriti i dati dell’artista che lo esegue nella tabella Artisti, e della registrazione che lo contiene nella tabella Registrazioni. Non è nemmeno possibile eliminare i dati di un artista se ci sono brani a lui associati e, analoga-mente, non possono essere eliminate le informazioni su una registrazione se, nella tabella

Brani, sono presenti righe che fanno riferimento a quella registrazione.

Nella finestra di dialogo Modifica relazioni sono presenti anche le opzioni Aggiorna

campi correlati a catena e Elimina campi correlati a catena.

Queste funzioni sono da utilizzare con cau-tela perché l’aggiornamento dei campi correlati fa in modo che, per esempio, un cambiamento sul valore del campo IDArtista nella tabella Artisti comporti la corrispon-dente variazione dello stesso campo nella tabella Brani; l’eliminazione dei campi correlati implica che l’eliminazione di una riga dalla tabella Registrazioni determini

l’eli-minazione nella tabella Brani di tutte quelle righe con il campo IDRegistrazione di valore uguale a quello di IDRegistrazione della riga eliminata.

(22)

Dopo aver stabilito tra le tabelle del database le associazioni uno a molti, nella visualizzazione dei dati delle tabelle che stanno dalla parte a uno compare all’inizio di ogni riga il carattere +.

4 Le query

Per query si intende un’interrogazione sui dati presenti in un database. I dati che forniscono la risposta alla query possono provenire da una o più tabelle; inoltre, i dati prodotti da una query sono organizzati secondo lo schema di una tabella e possono, a loro volta, essere oggetto di ulteriori interrogazioni.

In modalità Visualizzazione Foglio dati è possibile ottenere particolari visualizzazioni di una tabella applicando filtri che condizionano l’output (per esempio, gli ordini eseguiti dopo il 10 gennaio, oppure i prodotti presenti in magazzino in quantità minore di 30 pezzi).

Un filtro è costituito dalle condizioni definite dall’utente per i campi di una tabella. Per poter definire un filtro sui dati di una tabella bisogna aprirla in Visualizzazione Foglio dati e posizionarsi su una colonna (per esempio il campo Genere di Brani).

Facendo clic su +, sono mostrate, in una tabella collegata, tutte le righe associate (i brani contenuti in quella registrazione).

ESERCIZI da 1 a 5 pag. 197 e da 31 a 36 pag. 199

Selezioni in base ai valori dei dati immessi nella colonna: clic su Filtro, oppure clic sulla freccia accanto al nome del campo.

(23)

In pratica è possibile selezionare le righe con certi valori oppure con valori appartenenti a opportuni intervalli per il campo selezionato.

Se il criterio è uguale a un dato scritto in un record, dopo un clic su di esso, fare clic sull’icona

Selezione e poi scegliere il criterio desiderato tra quelli proposti. Per esempio, se nella visualizzazione della tabella Brani si posiziona il cursore sul campo Genere di un brano del genere musicale “Country” e si applica questo tipo di filtro, si possono visualizzare le righe di Brani che rispettano nel campo Genere uno dei criteri elencati in figura.

Per rimuovere il filtro, fare clic sull’icona a forma di imbuto Attiva/disattiva filtro che è diventata selezionabile.

Volendo definire più regole di estrazione per la stessa tabella, è necessario fare clic sull’ico-na Avanzate selezionando poi Filtro in base a maschera o Ordinamento/filtro

avanzato.

Nel primo caso i criteri stabiliti su campi diversi (operatore AND) vengono scelti tramite le caselle combinate visualizzate nella riga vuota della maschera che appare; i criteri stabiliti sullo stesso campo (operatore OR) vengono definiti uno per maschera, dove ogni maschera è attivata facendo clic sull’etichetta Oppure, posta in basso a sinistra.

Nel secondo caso viene aperta una finestra: occorre fare doppio clic sul campo in cui definire il criterio, che verrà scritto nella corrispondente riga Criteri. In entrambi i casi, per attivare il filtro, occorre fare clic sull’icona Applica filtro, posta nella barra multifunzione.

I filtri sono adatti per rispondere a semplici esigenze informative, mentre lo strumento più usato per interrogare il database è la query, costruita in modalità QBE (Query By Example, cioè definizione dell’interrogazione attraverso un esempio).

La struttura grafica della finestra QBE consente di costruire un esempio di tabella con la risposta alla query che si vuole realizzare, usando il mouse per selezionare, trascinare e gestire in vari modi gli oggetti in essa contenuti.

(24)

Con riferimento al database CollezioneMusicale, si vogliono visualizzare il titolo dell’al-bum, l’etichetta e il numero di brani delle registrazioni di un certo formato (disco, CD-ROM, ecc.) precisato dall’utente al momento dell’interrogazione sul database.

Tutti i dati che servono si trovano nella tabella Registrazioni: pertanto questa sarà l’unica tabella utilizzata dalla query. L’interrogazione da realizzare si compone di una selezione sulle righe di Registrazioni e della successiva proiezione sui campi richiesti; la sequenza di opera-zioni da realizzare è quindi la seguente:

1. σP Registrazioni Temp1 = Selezione di Registrazioni perTipoAlbum = [Tipo album scelto]

2. ΠL Temp1 Proiezione di Temp1 su TitoloAlbum, EtichettaAlbum, NumeroBrani.

Definiamo la query in Access.

ESERCIZIO GUIDATO

APPLICA

Clic sul pulsante

Chiudi per chiudere la finestra di dialogo.

3

Nella finestra Mostra tabella, che si apre, selezionare la tabella desiderata (Registrazioni) facendo clic sul suo nome e poi clic sul pulsante Aggiungi, oppure facendo doppio clic sul nome della tabella.

2

Nella scheda Crea della

barra multifunzione clic sul pulsante Struttura

query.

1

Sullo schermo, nella finestra grafica QBE, appare una casella con il nome della tabella scelta e l’elenco dei campi che la compongono.

(25)

Indicare quali sono i campi che devono comparire nel risultato dell’interrogazione.

Aggiungere anche il campo che deve essere usato nel criterio per selezionare le righe che interessano (campo TipoAlbum).

6

Scelta dei campi che devono comparire nel risultato della query: clic su

TitoloAlbum nella tabella e, con il tasto sinistro premuto, trascinare il campo nella prima cella della riga Campo e poi rilasciare il tasto del mouse. Oppure doppio clic sul campo da inserire nella query.

4

Ripetere il procedimento per tutti i campi che si vogliono ottenere dalla query ((EtichettaAlbum

e NumeroBrani).

5

Per inserire nella query tutti i campi di una tabella doppio clic sull’asterisco: * significa tutti i campi (in inglese, all).

Normalmente per tutti i campi viene attivata, con un segno di spunta, la casella sulla riga

Mostra della griglia sottostante: questo significa che il campo comparirà nella tabella

risul-tante; se invece la casella è vuota, il campo viene utilizzato nella costruzione della query, ma non verrà visualizzato.

Si apre la finestra con la richiesta del parametro.

10

La query è parametrica: la medesima interrogazione può essere usata più volte per estrarre le liste di diversi tipi di album.

Togliere la selezione di

Mostra per il campo

TipoAlbum, perché non deve comparire nei risultati della query.

7

Clic sul pulsante

Esegui per collaudare la query.

9

L’interrogazione richiede di estrarre solo i dati sulle registrazioni di un certo formato: nella riga Criteri, sotto il campo

TipoAlbum, inserire il testo [quale tipo di formato?],con le parentesi quadre.

(26)

Salvare la definizione della query facendo clic sull’icona Salva ; sostituire il nome suggerito

Query1 con un nome più significativo, per esempio Elenco per TipoAlbum.

Chiudere la finestra della query con un clic sul pulsante di chiusura alla destra della barra con la scheda della query.

Ovviamente la query può anche essere non parametrica: in questo caso basta scrivere nella riga dei criteri il valore specifico da controllare (senza parentesi quadre).

Il criterio sul campo di una query può anche essere rappresentato da operatori di confronto: < (minore), <= (minore o uguale), > (maggiore), >= (maggiore o uguale), = (uguale), <> (diverso),

Between.

Per esempio, se si vogliono selezionare dalla tabella Registrazioni quelle che hanno il numero di brani superiore a 2, basta scrivere nella riga dei criteri, in corrispondenza del campo NumeroBrani, la condizione >2.

Le condizioni possono essere poi combinate tra loro con gli operatori logici AND e OR. Per esempio il criterio che il numero di brani sia compreso tra 2 e 10 si rappresenta con la condizione:

>=2 AND <=10

che può essere espressa, con l’operatore di confronto Between nel seguente modo: Between 2 AND 10

La riga Oppure sotto la riga Criteri nello schema della query consente di inserire condizioni diverse per lo stesso campo. L’effetto complessivo è quello di un’unica condizione logica nella quale le condizioni inserite nelle diverse righe sono composte tramite l’operatore OR.

Si ponga però attenzione al fatto che la condizione risultante è costruita in due passi: per prima cosa le condizioni sulla medesima riga sono composte in AND e, successivamente, le condizioni sulle diverse righe, costruite al passo precedente, sono composte in OR. Ne segue che, per esempio, le condizioni in figura sono interpretate come:

( DurataBrano > 3,5 AND Genere = “Pop” ) OR Genere = “Rock” che seleziona tutti i brani rock e i brani pop che durano più di 3 minuti e mezzo. Per la scrittura della condizione nella riga Criteri si può usare il

Generatore di espressioni oppure, per ovviare alla limitatezza dello

spazio a disposizione in Criteri, si può scrivere o visualizzare la condizione in una finestra indipendente.

Entrambe le modalità si attivano dalla riga della condizione facendo clic con il tasto destro e selezionando Genera … per il generatore di espressioni o Zoom … per attivare la nuova finestra.

Il passaggio dalla sequenza di operazioni relazionali alla

corrispon-dente interrogazione espressa come QBE in Access è il seguente: le selezioni si realizzano scrivendo opportune condizioni nella riga Criteri dei campi ogget-to della selezione; i campi sui quali viene eseguita la proiezione sono quelli che appaiono nella griglia della QBE con il segno di spunta selezionato.

(27)

Per eseguire una query: nel riquadro di spostamento clic sull’etichetta Query per visualizzare l’elenco delle query memorizzate.

Selezionare la query che si vuole eseguire, facendo un doppio clic sul suo nome, oppure facendo clic con il tasto destro del mouse sul nome della query e scegliendo l’opzione Apri.

Si apre una finestra con la quale si chiede all’utente di specificare il valore da assegnare al parametro che è stato definito nella struttura della query. Nell’esempio precedente la query richiede che venga specificato il tipo di album da ricercare. Scrivendo, per esempio, CD-ROM la tabella risultante dall’interrogazione viene aperta in modalità di Visualizzazione Foglio dati.

Dalla tabella di partenza, di nome Registrazioni, sono state estratte le sole righe che hanno nella colonna TipoAlbum il valore richiesto (CD-ROM), cioè quelle righe che soddisfano alla condizione scritta nella riga dei criteri della query.

La query possiede tre modalità di visualizzazione che possono essere scelte velocemente facendo clic sul pulsante Visualizza in alto a sinistra.

Due di queste modalità sono già state descritte e utilizzate; una terza, la Visualizzazione SQL, si riferisce alla visualizzazione del codice che “sta sotto all’interrogazione”, nascosto dall’interfaccia grafica. Il codice è costituito da comandi del linguaggio SQL, che è il linguaggio standard per i prodotti DBMS, di cui si parlerà nel prossimo capitolo. La query Elenco per TipoAlbum è realizzata con la seguente frase del linguaggio SQL.

Si noti che il passaggio fra le diverse visualizzazioni si può eseguire anche per mezzo delle icone che appaiono nella barra di stato a destra. Naturalmente il passaggio dalla Visualizzazione

Struttura alla Visualizzazione Foglio dati provoca l’esecuzione della query.

Quando la query è aperta in modalità di Visualizzazione Struttura o Visualizzazione SQL, si può attivarne l’esecuzione facendo clic sul pulsante con il punto esclamativo nella scheda Progettazione degli Strumenti Query.

Visualizzazione Foglio dati

(28)

Definire un’interrogazione per ottenere un elenco dei brani di durata superiore a 7 minuti contenente nome, genere musicale e durata del brano, oltre al nome dell’artista che lo esegue.

Nella query, oltre alla tabella Brani, occorre utilizzare anche la tabella Artisti, perché nella tabella Brani esiste solo il codice identificativo dell’artista, ma non il suo nome. La sequenza di operazioni da realizzare è quindi la seguente:

1. σP Brani Temp1 = Selezione di Brani perDurataBrano > 7

2. Temp1FK ArtistiPK Temp2 = Congiunzione di Temp1 e Artisti su IDArtista

3. ΠL Temp2 Proiezione di Temp2 su TitoloBrano, Brani.Genere, DurataBrano, Nome.

Definiamo una query su due tabelle collegate.

1. Nella scheda Crea della barra multifunzione clic su Struttura query.

2. Nella finestra Mostra tabella selezionare la prima tabella che serve facendo clic sul suo

nome e poi clic sul pulsante Aggiungi oppure doppio clic sul nome della tabella.

3. Ripetere l’operazione anche per la seconda

tabella.

4. Clic sul pulsante Chiudi per chiudere la

fi-nestra di dialogo.

Le due tabelle compaiono nella parte supe-riore della finestra QBE unite con una linea orientata che indica la relazione esistente tra esse tramite l’attributo comune (nel-l’esempio l’identificativo dell’artista).

5. Selezionare con un doppio clic i campi dalla prima tabella (TitoloBrano, Genere, DurataBrano)

e il campo dalla seconda tabella (Nome).

6. Nella riga individuata da Criteri:, sotto il campo DurataBrano, inserire la condizione >7. 7. Salvare la definizione della query assegnando un nome significativo (BraniLunghi). 8. Chiudere la finestra della query con un clic sul pulsante di chiusura in alto a destra.

Nella modalità QBE di Access la congiunzione tra due tabelle è espressa dalla linea che collega i campi delle due tabelle che vengono confrontati per realizzare il join. La congiunzione realizzata è un equi-join ottenuto automaticamente quando le due tabelle sono inserite nella finestra della QBE. Eseguendo la query, si ottengono i dati desiderati con le colonne estratte da entrambe le tabelle. I dati contenuti in una tabella o i dati ottenuti da una query possono essere visualizzati in modo ordinato secondo criteri di ordinamento crescente o decrescente per i valori numerici, oppure in ordine alfabetico per valori di tipo alfanumerico.

La tabella e la query devono essere visualizzate in modalità Foglio dati. Per attivare l’ordinamento si possono usare le icone (Ordinamento crescente o descrescente) nella scheda Home della barra multifunzione.

Per le query l’ordinamento può essere impostato nella Visualizzazione Struttura, utilizzando la riga Ordinamento (Crescente o Decrescente) dello schema della query.

3. Creazione di query con Access 2003

CONTENUTI DIGITALI INTEGRATIVI

ESERCIZIO GUIDATO

(29)

Associazioni e join nelle query

Si possono costruire query anche se non sono state definite le associazioni tra le tabelle? Che importanza ha per la query il collegamento, tra i campi nelle due tabelle, che si è costruito con l’associazione?

Per rispondere a queste domande costruiamo l’interrogazione per produrre l’elenco dei brani di durata superiore ai 7 minuti con il nome dell’artista che lo esegue, a partire dalle tabelle

Brani e Artisti, supponendo però che tra queste tabelle non sia stata definita alcuna

associa-zione. L’esecuzione di questa query produce un elenco senza senso formato da 28 record, ottenuto combinando in tutti i modi possibili i 4 brani di durata superiore a 7 minuti con i sette artisti della tabella Artisti.

Osserviamo che, in pratica, per costruire questa query è sufficiente aprire la precedente query BraniLunghi in Visualizzazione Struttura ed eliminare il collegamento tra Brani e Artisti, facendo clic con il tasto destro sulla linea che collega le tabelle e selezionando l’opzione

Elimina tra le due scelte proposte: Proprietà join ed Elimina.

Possiamo concludere che:

• la query si può costruire anche senza collegare le tabelle e, in tale caso, Access le compone costruendo il prodotto cartesiano tra le righe selezionate delle due tabelle;

• se tra due tabelle è stata definita un’associazione, quando esse sono usate in un’interro-gazione, Access le compone automaticamente con un equi-join.

A questo punto ci si può chiedere se sia possibile costruire una query corretta anche partendo da tabelle tra le quali non sono state definite associazioni. La risposta è affermativa. Nella query in Visualizzazione Struttura trasciniamo il campo IDArtista della tabella Brani sul campo IDArtista della tabella Artisti. Viene visualizzata una riga che collega i campi. Facendo clic con il tasto destro sulla linea che collega le tabelle e selezionando la scelta

Proprietà join, appare la seguente finestra:

Utilizziamo il left join per risolvere il seguente problema: elencare le registrazioni per le quali

non è stato inserito nel database alcun brano.

Costruiamo pertanto una query sulle tabelle Registrazioni e Brani e selezioniamo tra i campi da mostrare IDRegistrazione e TitoloAlbum di Registrazioni oltre a TitoloBrano di Brani. Facendo clic con il tasto destro sulla linea che collega le tabelle attiviamo la finestra Proprietà

Join e osserviamo che è selezionata l’opzione 1 mentre la dicitura di fianco all’opzione 2

precisa: Includi tutti i record di ‘Registrazioni’ e solo i record di ‘Brani’ in cui i campi collegati

sono uguali che definisce esattamente il comportamento di un left join tra Registrazioni e Brani.

Equi join Left join Right join

(30)

Essa soddisfa alle esigenze del problema, in quanto l’esecuzione di una query in cui le due tabelle sono collegate con un left join produce una tabella dove appaiono tutte le registra-zioni. Alcune saranno accompagnate dai titoli di brani, altre saranno accompagnate da un campo vuoto.

Per elencare le registrazioni senza brani, bisogna selezionare le sole righe dove il campo

TitoloBrano è lasciato vuoto. Un campo con queste caratteristiche, è un campo che contiene

un valore nullo ed è riconoscibile con il predicato Is Null riportato nella riga Criteri in corrispondenza del campo TitoloBrano.

Al posto di Is Null è possibile scrivere semplicemente Null, ma bisogna evitare di scrivere il criterio = Null che rappresenta un criterio valido, ma viene eseguito andando a ricercare le righe che hanno come TitoloBrano i quattro caratteri “Null”.

L’esecuzione della query produce l’elenco richiesto con le raccolte che non hanno brani collegati. Nei Contenuti digitali integrativi del precedente capitolo un problema analogo era stato risolto con una differente modalità, attraverso l’operazione insiemistica di differenza tra insiemi.

Si osservi che questa modalità di soluzione è quella abitualmente adottata per risolvere simili problemi e corrisponde alla seguente interrogazione:

1. RegistrazioniPK Left BraniFK Temp1= CongiunzioneSinistra di Registrazioni e Brani su

IDRegistrazione

2. σP Temp1 Temp2 = Selezione di Temp1 per TitoloBrano Is Null

3. ΠL Temp2 Proiezione di Temp2 suIDRegistrazione, TitoloAlbum.

Tra le tabelle del database CollezioneMusicale sono state definite due associazioni uno a

molti. Vediamo ora come bisogna operare per costruire in Access le associazioni molti a molti

oppure uno a uno.

Le registrazioni identificate dai codici 4, 5 non hanno brani catalogati.

(31)

• Associazioni molti a molti. Ricordando le regole di derivazione per passare dal modello concettuale dei dati alle corrispondenti tabelle, un’associazione molti a molti tra due entità viene derivata creando, due tabelle T1 e T2 che rappresentano le entità e una terza tabella T3, che rappresenta l’associazione e contiene le chiavi primarie delle due entità associate, oltre agli eventuali attributi dell’associazione.

In pratica l’associazione molti a molti viene trasformata in due associazioni uno a molti, una tra T1 e T3 e l’altra tra T2 e T3.

• Associazioni uno a uno. Supponiamo di avere organizzato le informazioni sui dipendenti di un’azienda in una base di dati con due tabelle, secondo il seguente schema:

Dipendenti (Matricola, Stipendio, DataAssunzione, Dipartimento) Anagrafica (CodiceFiscale, Cognome, Nome, Indirizzo, Matricola)

L’associazione tra le due tabelle è, per la natura stessa dei dati, uno a uno, in quanto a una persona con un certo codice fiscale corrisponde un solo dipendente e viceversa un dipen-dente ha uno e un solo codice fiscale.

Secondo le regole di derivazione, un’associazione uno a uno viene derivata con un’unica tabella, e quindi le due tabelle Anagrafica e Dipendenti dovrebbero confluire in un’unica tabella. Supponiamo di voler mantenere le due tabelle Anagrafica e Dipendenti separate e collegate da un’associazione uno a uno.

Se cerchiamo di costruire l’associazione tra Anagrafica e Dipendenti, come è stato descritto nel precedente paragrafo, ponendo sulla finestra delle relazioni prima la tabella Dipendenti, poi la tabella Anagrafica e quindi collegando i campi Matricola nelle due tabelle, viene proposta un’associazione uno a molti. Questo avviene perché il sistema decide il tipo di associazione che si può stabilire autonomamente, in base alle caratteristiche dei campi collegati nelle due tabelle. Occorre specificare al programma Access che il campo Matricola di Anagrafica ha le caratteristiche adatte per stabilire il tipo di associazione desiderata, ossia che un valore di Matricola identifica un solo record nella tabella Anagrafica.

Per farlo, occorre impostare la proprietà Indicizzato del campo Matricola di Anagrafica, con il valore Sì (Duplicati non ammessi): se non sono ammessi duplicati è evidente che un valore di Matricola identifica uno e un solo record nella tabella Anagrafica.

5 Le maschere

Nel database CollezioneMusicale sono state create tre tabelle e due query usando il formato tabellare standard che organizza i dati in righe e colonne. Può nascere l’esigenza di utilizzare una

maschera video più adatta alla gestione dei dati di un database e che sia più facile da usare per

inserire, cancellare, modificare un record di una tabella, presentando sul video dell’utente un record per volta.

Creare una maschera.

1. Nel riquadro di spostamento evidenziare la tabella o la query con i dati da utilizzare nella

maschera.

2. Nella barra multifunzione selezionare la scheda Crea e clic sul pulsante Maschera.

ESERCIZIO GUIDATO

APPLICA

(32)

3. Sul video compare direttamente una maschera per la visualizzazione del primo record

della tabella, o della query, selezionata.

4. Salvare la maschera con un clic sull’icona Salva nella barra di accesso rapido,

assegnan-do un nome significativo.

5. Chiudere la maschera con un clic sul pulsante di chiusura sulla destra della barra sopra

le schede dei documenti.

Access genera una maschera con tutti e i soli dati della tabella o della query selezionata. Se, per esempio, si crea una maschera basata sulla tabella Brani, nella maschera generata saranno inclusi tutti i campi di questa tabella. Differente è il comportamento del sistema quando si sceglie una tabella che ha il ruolo a uno in un’associazione uno a molti, come avviene costruendo una maschera basata sui dati di Artisti che è in associazione uno a molti con Brani. In questi casi la maschera generata contiene i dati di entrambe le tabelle.

Una maschera può anche essere creata mediante una Creazione guidata Maschera, attivabile selezionando l’icona analoga al punto 2 della procedura appena descritta. Questa modalità è più flessibile della precedente e permette di costruire maschere che includono solo alcuni dei campi di una tabella, e anche campi provenienti da più di una tabella.

La maschera, generata automaticamente in uno dei modi sopra descritti, può essere personalizzata dall’utente, modificandola nel-la sua struttura con le modalità offerte dalnel-la Visualizzazione Layout della maschera, come è mostrato nella pagina seguente, oppure con le modalità offerte dalla Visualizzazione Struttura, come si vedrà nell’ultimo paragrafo di questo capitolo.

Il passaggio da una visualizzazione all’altra si esegue scegliendo la visualizzazione desiderata con un clic sul pulsante Visualizza nella scheda Home. In alternativa la visualizzazione può essere scelta facendo clic sull’icona opportuna tra quelle presenti nella parte destra della barra di stato.

Maschera basata sulla tabella

Artisti: dati del quarto record.

Sottomaschera: dati dei tre brani associati all’artista.

(33)

ESERCIZIO GUIDATO

APPLICA

ESEMPIO 2

Maschere con sottomaschere e maschere personalizzate con la Visualizzazione Layout

Una sottomaschera è una maschera all’interno di un’altra. Le sottomaschere sono partico-larmente utili per visualizzare i dati di tabelle o query caratterizzate dall’associazione uno a

molti. Abbiamo visto, per esempio, che i dati della tabella Artisti rappresentano il lato a uno

dell’associazione e i dati della tabella Brani il lato a molti, poiché, nella collezione, per ogni artista ci sono molti brani. La maschera principale e la sottomaschera sono collegate in modo da visualizzare, nella sottomaschera, i soli record correlati al record corrente della maschera principale.

La maschera principale può contenere un numero qualsiasi di sottomaschere, fino a sette livelli di sottomaschere, cioè ci può essere una sottomaschera all’interno della maschera principale e un’altra sottomaschera all’interno della prima e così via. È possibile, per esempio, creare una maschera principale per i clienti, una sottomaschera per gli ordini e un’altra sottomaschera per i dettagli relativi agli ordini.

Si può creare una sottomaschera e collegarla alla maschera esistente, oppure creare diretta-mente una maschera con le sottomaschere desiderate, attraverso il generatore di maschere.

Creare una maschera con sottomaschere.

1. Nella barra multifunzione selezionare la scheda Crea e clic sul pulsante Creazione guida-ta Maschera.

2. Nella finestra che si apre si devono indicare le tabelle e i campi che andranno a formare

la nuova maschera. Si scelgano prima i campi della tabella a uno e poi quelli della tabella

a molti; clic sul pulsante Avanti >.

3. Alla richiesta Scegliere come visualizzare i dati, si evidenzi la tabella a uno e si attivi

l’opzione Maschera con sottomaschere. Clic sul pulsante Avanti >.

4. Alla richiesta Scegliere il layout da applicare alla sottomaschera, si indichi Foglio dati

e si faccia clic sul pulsante Avanti >.

5. Scegliere un nome significativo per la maschera e selezionare l’opzione di aprire

diretta-mente la maschera per visualizzare o inserire informazioni e poi clic sul pulsante Fine.

Creare una maschera con i dati di Brani, con l’esclusione del campo Note, aggiungendo il campo Nome di Artisti e il campo TitoloAlbum della tabella Registrazioni.

In questo caso si usa il generatore per costruire una maschera che non ha sottomaschere, ma include i dati di più tabelle. Si procede seguendo le indicazioni dell’esercizio precedente e scegliendo i dati richiesti dalle tabelle Brani, Artisti e Registrazioni. Al punto 3. della procedura si accettano le scelte operate dal generatore, ovvero di visualizzare i dati in base a Brani in una maschera singola, limitandosi a fare clic sul pulsante Avanti >. Si procede nella proce-dura e si sceglie MascheraBraniGrezza come nome da assegnare alla maschera.

La maschera generata è quella nella figura di pagina seguente. Volendo migliorarne l’aspetto si può ricorrere alla Visualizzazione Layout che permette di modificare una maschera in modo semplice e intuitivo.

(34)

In questa visualizzazione la strut-tura della tabella è mostrata as-sieme ai dati (la figura mostra, appunto, la maschera in

Visualiz-zazione Layout) ed è sufficiente

fare clic in una casella di testo o su una etichetta per evidenziarla; a questo punto è possibile spo-starla, trascinandola o usando i tasti freccia: ↓, →, ↑, ←, eliminarla con il tasto Canc, e ridimensio-narla spostando il mouse sui bor-di per poi trascinarli.

Usando le funzionalità della Visualizzazione Layout si vuole modificare la struttura della maschera in modo che la casella di testo con il nome dell’artista appaia a lato di quella con il codice dell’artista e, allo stesso modo, che il titolo dell’album sia visualizzato di fianco al codice della registrazione. Si desidera anche ridurre le dimensioni della casella che contiene il genere del brano.

La MascheraBraniGrezza, dopo le modifiche, è stata salvata con il nome Brani ed è mostrata nella figura a destra.

Come si può osservare nella maschera

Bra-ni, oltre ai cambiamenti descritti, sono state

eliminate le etichette Nome e TitoloAlbum, ormai inutili, ed è stato cambiato il conte-nuto di altre etichette per indicare i campi della maschera con nomi ritenuti più adatti (Registrazione al posto di IDRegistrazione,

Artista al posto di IDArtista e Codice Brano

al posto di IDBrano).

Per cambiare un’etichetta è sufficiente, dopo averla evidenziata, fare un doppio clic su di essa e modificarne il contenuto. Nella figura si nota l’etichetta associata al campo IDBrano dopo la modifica.

Si noti, infine, che la larghezza della casella con i valori di Posizione è stata aumentata per uniformarla a quelle dei campi adiacenti.

4. Creazione di maschere con Access 2003

Figura

Tabella  nel gruppo Strumenti
Tabella Attributo Chiave Formato Indicizzato
Tabella Campo Chiave Formato
Tabella Attributo Chiave Formato Indicizzato
+3

Riferimenti

Documenti correlati

I partecipanti saranno in grado di riconoscere l'importanza degli screening neonatali nell'identificazione precoce delle malattie rare. I partecipanti saranno in grado di

la valutazione della capacità di esercizio: valutare e individuare i problemi in fase acuta, subacuta e cronica. Programma del

Sempre sulla base di quanto emerso dai suggerimenti inviati dagli utenti sono state ottimizzate le funzioni d’interrogazione delle informazioni relative ai singoli elementi

ALFANO LFNLSS78B4 4G812J D T DAL TIN DLTMNL67S 70L736H D T VESCOVI VSCGNN64L 13L736T D T ZANCO ZNCNCL79R 12G914R D T TRAVAN TRVSMN71T 03A703X D T GUARINO GRNRRT79B 04F839X D T.

- identificare i rischi connessi alla movimentazio ne dei carichi e dei pazienti in base alla situazione logistica ed allo stato di salute del paziente;. - utilizzare le

Esecuzione diretta da parte di tutti i partecipanti di attività pratiche o tecniche: didattica attiva con addestramento pratico a piccoli gruppi (per ogni edizione saranno presenti

Dopo aver confermato il modello organizzativo che si intende visualizzare è necessario selezionare la casella organizzativa di partenza, da cui visualizzare il disegno, dalla spalla

Esecuzione diretta da parte di tutti i partecipanti di attività pratiche nell'uso di strumenti, di tecniche e di metodologie (metodologia