ESERCITAZIONE SUGLI ALGORITMI NUMERO TREclassiperlo.altervista.org/Materiale/5ast/EL3-4_5AST... ·...

22
EL3-4_5ST ACCESS – SECONDA PARTE Autore: __________________________________________ Data: _________Classe: ____ ATTENZIONE Il significato dei simboli usati in questa e nelle prossime esercitazioni è spiegato dettagliatamente nella guida http://www.classiperlo.altervista.org/Materiale/Generale/Simboli.d oc (scaricala e consultala in caso di dubbi). Il simbolo della manina in colore blu indica una domanda alla quale bisogna OBBLIGATORIAMENTE rispondere scrivendo in colore blu. Il simbolo della manina in colore blu con la scritta Cou New indica un codice che va incollato usando Courier New in colore blu. Il simbolo della manina in nero indica una o più immagini o schermate da incollare (protette col tuo watermark, le tue iniziali di Nome e Cognome) Il simbolo della manina con colori attenuati indica un'operazione che bisogna svolgere, senza rispondere a nessuna domanda (non vuol dire che non devi fare nulla – significa solo che non devi scrivere niente!). Il simbolo della manina col ciak video indica un video da registrare con Gif Recorder (http://gifrecorder.com/ )e da salvare in formato gif nella cartella dell'esercitazione. recupero. Questo simbolo indica un video di esempio o di spiegazioni da guardare su YouTube

Transcript of ESERCITAZIONE SUGLI ALGORITMI NUMERO TREclassiperlo.altervista.org/Materiale/5ast/EL3-4_5AST... ·...

Page 1: ESERCITAZIONE SUGLI ALGORITMI NUMERO TREclassiperlo.altervista.org/Materiale/5ast/EL3-4_5AST... · Web viewMettendo a 0 la larghezza della prima colonna si ha come risultato che l'ID

EL3-4_5ST ACCESS – SECONDA PARTEAutore: __________________________________________ Data: _________Classe: ____

ATTENZIONE

Il significato dei simboli usati in questa e nelle prossime esercitazioni è spiegato dettagliatamente nella guida http://www.classiperlo.altervista.org/Materiale/Generale/Simboli.doc (scaricala e consultala in caso di dubbi).

Il simbolo della manina in colore blu indica una domanda alla quale bisogna OBBLIGATORIAMENTE rispondere scrivendo in colore blu.

Il simbolo della manina in colore blu con la scritta Cou New indica un codice che va incollato usando Courier New in colore blu.

Il simbolo della manina in nero indica una o più immagini o schermate da incollare (protette col tuo watermark, le tue iniziali di Nome e Cognome)

Il simbolo della manina con colori attenuati indica un'operazione che bisogna svolgere, senza rispondere a nessuna domanda (non vuol dire che non devi fare nulla – significa solo che non devi scrivere niente!).

Il simbolo della manina col ciak video indica un video da registrare con Gif Recorder (http://gifrecorder.com/)e da salvare in formato gif nella cartella dell'esercitazione.recupero.

Questo simbolo indica un video di esempio o di spiegazioni da guardare su YouTube

A) OPERAZIONI PRELIMINARI

A1) Crea una sottocartella di ES3 con nome uguale a quello di questa esercitazione (EL3-4_5AST Access 2)

A2) All'interno della sottocartella EL3-4_5AST Access 2 salva questo file Word

Page 2: ESERCITAZIONE SUGLI ALGORITMI NUMERO TREclassiperlo.altervista.org/Materiale/5ast/EL3-4_5AST... · Web viewMettendo a 0 la larghezza della prima colonna si ha come risultato che l'ID

B) ACCESS: LA TABELLA PRESTITI

B1) Copia il file Biblioteca.accdb dalla cartella della precedente esercitazione nella cartella di questa esercitazione (lo modificheremo ancora).

Nel nostro database non ci sono relazioni che collegano le tabelle. Per fare questo, dobbiamo ancora creare un'ultima tabella: Prestiti.

B2) In Biblioteca.accdb crea una tabella Prestiti contenente i campi PrestitiID (chiave primaria, incremento automatico), UtentiId (numero), LibriId (numero), dataPrestito (data e ora), Durata (numero), dataConsegna (data e ora), Consegnato (SI/NO). Fra parentesi sono indicati i tipi dei diversi campi. ATTENZIONE: non inserire dati nella tabella, lasciala vuota.

Il campo UtentiId nella tabella Prestiti è una chiave esterna correlata con la chiave primaria con lo stesso nome nella tabella Utenti. Analogamente LibriId in Prestiti è la chiave esterna collegata con la omonima chiave primaria in Libri.

TIPO DEI VALORI

Il tipo SI/NO serve per inserire una check box da spuntare (se il libro è stato riconsegnato).

Il tipo di UtentiId e di LibriId deve essere numero poiché la corrispondente chiave primaria è un numero progressivo. Chiave primaria e chiave esterna devono obbligatoriamente essere dello stesso tipo (normalmente sono entrambe un valore numerico).

Durata indica il numero di giorni di durata del prestito (es. 7)

Dobbiamo ora creare la relazione fra le tabelle.

B3) Apri la scheda Strumenti database e clicca su Relazioni:

Page 3: ESERCITAZIONE SUGLI ALGORITMI NUMERO TREclassiperlo.altervista.org/Materiale/5ast/EL3-4_5AST... · Web viewMettendo a 0 la larghezza della prima colonna si ha come risultato che l'ID

B4) Se è la prima volta che usi questo strumento sul tuo DB, dovrai per prima cosa aggiungere le tre tabelle alla finestra Relazioni. Clicca su ciascuna tabella e poi premi il pulsante Aggiungi (se non vedi il menu in figura, puoi aprirlo cliccando col tasto destro su uno spazio vuoto e scegliendo Mostra Tabella):

B5) Per creare una relazione fra due tabelle, devi cliccare col mouse su una delle due chiavi che vuoi collegare e quindi trascinarla sopra la chiave collegata (vedi frecce in figura). Il cursore del mouse assume la forma di un segno +:

Page 4: ESERCITAZIONE SUGLI ALGORITMI NUMERO TREclassiperlo.altervista.org/Materiale/5ast/EL3-4_5AST... · Web viewMettendo a 0 la larghezza della prima colonna si ha come risultato che l'ID

B6) Nella finestra che si apre, metti la spunta su Applica integrità referenziale e poi clicca su Crea

ATTENZIONE: se una delle due tabelle è aperta in Visualizzazione, otterrai un messaggio di errore

Chiudi la tabella e quindi ripeti il procedimento.

INTEGRITA' REFERENZIALE

L’integrità referenziale è una funzione con cui Access garantisce che ogni record della tabella correlata corrisponda opportunamente a un record della tabella primaria.

In parole più semplici: Access impedisce, per esempio, l’eliminazione di un libro o di un utente, senza che vengano eliminati anche tutti i prestiti di quel libro o intestati a quell’utente. Analogamente non si può inserire come chiave esterna un valore che non corrisponda a un valore

Page 5: ESERCITAZIONE SUGLI ALGORITMI NUMERO TREclassiperlo.altervista.org/Materiale/5ast/EL3-4_5AST... · Web viewMettendo a 0 la larghezza della prima colonna si ha come risultato che l'ID

valido di chiave primaria.

Se sono stati già inseriti dei dati errati nella tabella prestiti (p.es. un codice fiscale di un utente che non esiste), Access segnalerà un messaggio di errore quando si tenterà di applicare l’integrità referenziale alla relazione. In questo caso occorre individuare la causa di errore e correggerla.

B7) Completa la relazione fra le tre tabelle (ricordati l'Integrità referenziale!). Dovresti ottenere un risultato come in figura, in cui i campi correlati delle tabelle sono collegati con una linea nera spessa (sostituisci la tua schermata al posto della mia):

SE SBAGLI

Se ti sbagli nel costruire una relazione fra tabelle, puoi cancellarla cliccando sulla linea di collegamento fra le tabelle e premendo il tasto CANC.

RELAZIONE UNO A MOLTI

Se osservi con attenzione la linea di collegamento fra le tabelle, vedrai che c'è segnato 1 in corrispondenza della chiave primaria e ∞ (infinito) in corrispondenza della chiave esterna collegata. Come abbiamo già visto, questo tipo di relazione fra tabelle prende il nome di uno a molti.

Il motivo è che la chiave primaria compare sempre in uno e un solo record, mentre la chiave esterna collegata può comparire in molti record nella tabella collegata. Per esempio in Libri ogni record (cioè ogni libro) ha un suo LibriId unico e progressivo. In Prestiti lo stesso LibriId può comparire in molti record, perché lo stesso libro può essere dato in prestito molte volte.

B8) Vediamo se hai capito. Nella tabella Utenti, quanti utenti diversi ci possono essere con un valore di UtentiId uguale a 2?

B9) Invece nella tabella Prestiti, quanti record ci possono essere che hanno UtentiId uguale a 2?

C) COMPILIAMO LA TABELLA DEI PRESTITI

Page 6: ESERCITAZIONE SUGLI ALGORITMI NUMERO TREclassiperlo.altervista.org/Materiale/5ast/EL3-4_5AST... · Web viewMettendo a 0 la larghezza della prima colonna si ha come risultato che l'ID

C1) Dopo aver stabilito le relazioni fra le tabelle, salva e chiudi la scheda Relazioni (ATTENZIONE: finché non salvi le Relazioni, queste non saranno applicate).

C2) Apri ora la tabella Prestiti che abbiamo lasciato vuota. Riempi il primo record (il primo prestito) con dei valori a caso.

C3) Prova a inserire un valore di LibriId o UtentiId non valido osserverai questo messaggio di errore:

C4) Cosa vuol dire inserire un valore di LibriId o UtentiId non valido? In che senso "non valido"?

C5) Cosa significa il precedente messaggio di errore?

SE NON VIENE VISUALIZZATO NESSUN MESSAGGIO DI ERRORE

Se, provando a inserire un valore non valido, non compare nessun messaggio di errore, significa che non hai applicato l'Integrità referenziale per la relazione fra le due tabelle.

L'Integrità referenziale controlla infatti che ci sia corrispondenza di valori fra chiave esterna e chiave primaria.

Se c'è un errore nelle relazioni puoi correggerlo con la scheda Strumenti database e il pulsante Modifica relazioni:

C6) Riempi almeno tre record validi nella tabella Prestiti e incolla qui sotto una

Page 7: ESERCITAZIONE SUGLI ALGORITMI NUMERO TREclassiperlo.altervista.org/Materiale/5ast/EL3-4_5AST... · Web viewMettendo a 0 la larghezza della prima colonna si ha come risultato che l'ID

schermata:

D) LA NOSTRA PRIMA QUERY

La compilazione della tabella Prestiti è piuttosto noiosa dal momento che il bibliotecario deve controllare ogni volta quale numero (valore della chiave primaria) corrisponde al libro preso in prestito e all'utente. L'unico aiuto che fornisce Access è fornire un messaggio di errore nel caso in cui vengano inseriti valori non validi della chiave primaria.

SE USI BASE

Se usi Base per questo genere di operazioni devi anzitutto creare un nuovo formulario, come abbiamo già visto nella esercitazione precedente.

STEP 1

Crea un nuovo formulario usando la procedura guidata:

STEP 2

Seleziona la tabella Prestiti e tutti i suoi campi e quindi clicca su Fine:

Page 8: ESERCITAZIONE SUGLI ALGORITMI NUMERO TREclassiperlo.altervista.org/Materiale/5ast/EL3-4_5AST... · Web viewMettendo a 0 la larghezza della prima colonna si ha come risultato che l'ID

STEP 3

Chiudi la finestra con la visualizzazione del formulario e quindi riaprilo in modalità Modifica:

STEP 4

Sostituisci la colonna UtentiId con una Casella di riepilogo (come visto già nella precedente esercitazione)

Page 9: ESERCITAZIONE SUGLI ALGORITMI NUMERO TREclassiperlo.altervista.org/Materiale/5ast/EL3-4_5AST... · Web viewMettendo a 0 la larghezza della prima colonna si ha come risultato che l'ID

STEP 5

Riapri la colonna:

STEP 6

Apri la scheda Dati e seleziona Sql in Tipo del contenuto della lista:

Page 10: ESERCITAZIONE SUGLI ALGORITMI NUMERO TREclassiperlo.altervista.org/Materiale/5ast/EL3-4_5AST... · Web viewMettendo a 0 la larghezza della prima colonna si ha come risultato che l'ID

STEP 7

In contenuto elenco copia la seguente query (vedi più avanti nell'esercitazione per maggiori dettagli):

SELECT "Cognome", "UtentiID" FROM "Utenti"

Assicurati che i nomi siano gli stessi che hai usato tu, comprese le maiuscole e minuscole!

STEP 8

Page 11: ESERCITAZIONE SUGLI ALGORITMI NUMERO TREclassiperlo.altervista.org/Materiale/5ast/EL3-4_5AST... · Web viewMettendo a 0 la larghezza della prima colonna si ha come risultato che l'ID

Chiudi tutto e salva. Riapri il tuo formulario in vista normale e dovrebbe funzionare esattamente come descritto nel punto D3 più sotto.

Vediamo come si può migliorare il funzionamento del nostro DB.

D1) Apri la tabella Prestiti in modalità Visualizzazione Struttura. Seleziona il campo UtentiId e scegli Casella di riepilogo nella scheda Ricerca, come mostrato in figura:

D2) Clicca sulla freccetta accanto a Origine riga e dall'elenco scegli la tabella Utenti:

Page 12: ESERCITAZIONE SUGLI ALGORITMI NUMERO TREclassiperlo.altervista.org/Materiale/5ast/EL3-4_5AST... · Web viewMettendo a 0 la larghezza della prima colonna si ha come risultato che l'ID

D3) Prova adesso ad aggiungere un nuovo record alla tabella Prestiti. Accanto a UtentiId dovresti trovare una casella a discesa che ti permette di scegliere fra tutti i valori validi (cioè fra tutti i valori di UtentiId presenti in Utenti come chiave primaria):

Va già meglio, ma il bibliotecario non ha ancora nessuna indicazione di quale utente (Nome e Cognome) corrisponda a ogni numero.

SE USI BASE

Per far comparire il cognome dell'utente invece del numero in Base procedi nel seguente modo.

STEP 1

Riapri il formulario Prestiti in modalità Modifica.

STEP 2

Riapri la modifica della colonna UtentiId:

STEP 3

Clicca sui tre puntini accanto a Contenuto elenco:

Page 13: ESERCITAZIONE SUGLI ALGORITMI NUMERO TREclassiperlo.altervista.org/Materiale/5ast/EL3-4_5AST... · Web viewMettendo a 0 la larghezza della prima colonna si ha come risultato che l'ID

STEP 4

Accertati che solo Cognome e Nome siano indicati come Visibili (mentre UtentiId non deve avere la spunta, cioè deve essere invisibile)

D4) Riapri Prestiti in Visualizzazione Struttura e clicca quindi sui tre puntini che compaiono accanto a Origine riga

Page 14: ESERCITAZIONE SUGLI ALGORITMI NUMERO TREclassiperlo.altervista.org/Materiale/5ast/EL3-4_5AST... · Web viewMettendo a 0 la larghezza della prima colonna si ha come risultato che l'ID

D5) Rispondi SI alla richiesta di Creare una query basata sulla tabella:

Si aprirà una nuova scheda denominata Generatore di query:

D6) Seleziona i campi UtentiID, Cognome e Nome nella tabella Utenti come mostrato in figura (metti la spunta su Mostra):

D7) Salva e chiudi la scheda Generatore di query.

Page 15: ESERCITAZIONE SUGLI ALGORITMI NUMERO TREclassiperlo.altervista.org/Materiale/5ast/EL3-4_5AST... · Web viewMettendo a 0 la larghezza della prima colonna si ha come risultato che l'ID

D8) Osserva come è stato modificato il valore di Origine riga nella scheda Ricerca riferita al campo UtentiID nella tabella Prestiti (sostituisci la tua schermata al posto della mia):

Osserva l'istruzione

SELECT Utenti.UtentiID, Utenti.Cognome, Utenti.Nome FROM Utenti;

Si tratta di un'istruzione scritta in linguaggio SQL. SQL (Structured Query Language) è un linguaggio standardizzato per database basati sul modello relazionale (RDBMS).

Torneremo ancora più avanti su questo linguaggio. Per adesso, anche se non conosciamo la sintassi di SQL, non è molto difficile comprendere il suo significato:

SELEZIONA I CAMPI UtentiID, Cognome, Nome DALLA TABELLA Utenti

Come vedi Access genera automaticamente istruzioni SQL attraverso la scheda Generatore di query. Conoscendo la sintassi del linguaggio sarebbe ovviamente possibile scrivere a mano queste istruzioni senza l’ausilio del Generatore di query automatico.

CLAUSOLE

Le istruzioni del linguaggio SQL si compongono di clausole (in inglese clause). In pratica una clausola è una porzione di codice dotata di significato autonomo. Spesso il codice SQL viene scritto andando a capo dopo ogni clausola, in questo modo:

SELECT Utenti.UtentiID, Utenti.Cognome, Utenti.Nome FROM Utenti;

Page 16: ESERCITAZIONE SUGLI ALGORITMI NUMERO TREclassiperlo.altervista.org/Materiale/5ast/EL3-4_5AST... · Web viewMettendo a 0 la larghezza della prima colonna si ha come risultato che l'ID

In questo caso la nostra istruzione si compone di due clausole: la clausola SELECT e la clausola FROM.

Nota il punto e virgola finale che termina l'istruzione.

D9) Completa la scheda Ricerca riferita al campo UtentiID nella tabella Prestiti mettendo a 3 il Numero di colonne e scrivendo in Larghezze colonne 0cm;4cm;4cm

ATTENZIONE

I tre numeri inseriti in Larghezza colonne definiscono le dimensioni in centimetri che dovranno essere assegnate alle colonne UtentiID, Nome e Cognome. Mettendo a 0 la larghezza della prima colonna si ha come risultato che l'ID dell'utente non viene visualizzato.

Se ti dimentichi di specificare il Numero di colonne o di assegnare una dimensione, il successivo punto D11 non funzionerà più correttamente!

D10) Salva e chiudi Prestiti e riaprila in Visualizzazione Foglio Dati (basta doppio clic sul nome della tabella nel pannello laterale).

D11) Prova ora a inserire un nuovo prestito. Vedrai che in corrispondenza di UtentiID viene visualizzato un elenco a discesa con i Cognomi e i Nomi degli utenti:

Page 17: ESERCITAZIONE SUGLI ALGORITMI NUMERO TREclassiperlo.altervista.org/Materiale/5ast/EL3-4_5AST... · Web viewMettendo a 0 la larghezza della prima colonna si ha come risultato che l'ID

E) COMPLETIAMO IL DB

E1) Seguendo lo stesso procedimento visto al punto precedente, fai in modo che sia possibile scegliere LibriID nella tabella Prestiti da una lista a discesa nella quale vengano visualizzati Titolo e Autore del libro.

E2) → Biblioteca.gif, test completo di funzionamento del DB in cui si veda l'inserimento di un nuovo prestito nella tabella Prestiti

BONUS DOMANDA D'ESAME +1 PC – EL4-4_5ST – DOMANDA1

INCLUDEPICTURE "http://www.fttr.it/wp-content/uploads/2017/01/question-mark.jpg" \* MERGEFORMATINET

Rispondere alla seguente domanda sul foglio a righe in 8-12 righe (http://classiperlo.altervista.org/File%20comuni/Foglio%20righe.docx). Leggi prima le modalità di compilazione su (http://classiperlo.altervista.org/Materiale/Generale/Simboli.doc).

DOMANDA: Illustra i vantaggi di un programma DBMS (es Access) per la gestione di un DB rispetto all'uso di un software generico per la creazione di tabelle salvate in un file (es. Excel).

Invia il bonus separatamente su Classiperlo in un file Word di nome EL4-4_5ST – DOMANDA1.

Salva tutte le risposte alle domande in una cartella a parte, in modo da poterle facilmente ritrovare a fine anno (servono per la preparazione all'esame orale di maturità).

BONUS DOMANDA D'ESAME +1 PC – EL3-4_5ST – DOMANDA2

Rispondere alla seguente domanda sul foglio a righe in 8-12 righe (http://classiperlo.altervista.org/File%20comuni/Foglio%20righe.docx). Leggi prima le modalità di compilazione su (http://classiperlo.altervista.org/Materiale/Generale/Simboli.doc).

DOMANDA: Spiega i concetti di integrità dei dati e di integrità referenziale in un DB facendo anche qualche esempio.

Page 18: ESERCITAZIONE SUGLI ALGORITMI NUMERO TREclassiperlo.altervista.org/Materiale/5ast/EL3-4_5AST... · Web viewMettendo a 0 la larghezza della prima colonna si ha come risultato che l'ID

Invia il bonus separatamente su Classiperlo in un file Word di nome EL3-4_5ST – DOMANDA2.

Salva tutte le risposte alle domande in una cartella a parte, in modo da poterle facilmente ritrovare a fine anno (servono per la preparazione all'esame orale di maturità).

BONUS EXTRA +3 PC –EL4-4_5ST – BONUS1

Realizza un DB per la registrazione dei voti degli studenti di una certa classe nelle varie materie. Il DB comprende una tabella con gli studenti e una tabella con i voti e le relative materie.

Invia il bonus separatamente su Classiperlo in un file zippato di nome EL4-4_5ST – BONUS1

F) OPERAZIONI FINALI

F1) Controlla di aver risposto a tutte le domande e incollato tutte le schermate. Tutte le

caselline dovrebbero avere un segno X, per indicare che hai risposto

F2) Comprimi le immagini contenute in questo file Word (seleziona un'immagine, scheda Formato e poi Comprimi immagini e infine Applica a tutte le immagini del documento) in modo da ridurne le dimensioni.

F3) Controlla che la cartella di questa esercitazione contenga i seguenti file con i nomi qui indicati:

Nome del file Tipo del file DescrizioneEL3-4_5AST Access 2 Word Il file di questa esercitazioneBiblioteca.accdb AccessBiblioteca.gif GIF

F4) Chiudi tutti i file, zippa la cartella di questa esercitazione e inviala all'insegnante su Classiperlo.