ESERCITAZIONE SUGLI ALGORITMI NUMERO TRE€¦  · Web viewA1) Crea una sottocartella di ES3 con...

23
EL3-3_5ST ACCESS – PRIMA 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 TRE€¦  · Web viewA1) Crea una sottocartella di ES3 con...

Page 1: ESERCITAZIONE SUGLI ALGORITMI NUMERO TRE€¦  · Web viewA1) Crea una sottocartella di ES3 con nome uguale a quello di questa esercitazione (EL3-3_5AST Access 1) A2) All'interno

EL3-3_5ST ACCESS – PRIMA 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-3_5AST Access 1)

A2) All'interno della sottocartella EL3-3_5AST Access 1 salva questo file Word

Page 2: ESERCITAZIONE SUGLI ALGORITMI NUMERO TRE€¦  · Web viewA1) Crea una sottocartella di ES3 con nome uguale a quello di questa esercitazione (EL3-3_5AST Access 1) A2) All'interno

B) ACCESS: LA TABELLA LIBRI

Access è un programma appartenente alla categoria dei Relational Data Base Management System (RDBMS), dove Relational si riferisce alla capacità di gestire DB relazionali, cioè nei quali le tabelle sono messe in relazione fra loro attraverso il meccanismo chiave primaria-chiave esterna.

Access è prodotto da Microsoft (e distribuito con la suite Office insieme a Word e Excel) ed è molto usato per la gestione di DB in applicazioni desktop (utilizzo in ambito ufficio – non richiede un server di rete per il suo funzionamento).

SE NON POSSIEDI ACCESS

Se non hai Access, puoi usare al suo posto qualunque alternativa anche gratuita (in particolare ti consiglio di usare Base della suite Open Office o Libre Office).

Puoi trovare un elenco di alcune possibilità qui: https://www.1and1.it/digitalguide/server/tools-o-strumenti/alternative-a-microsoft-access-una-panoramica/

Se usi uno dei programmi gratuiti, alcuni comandi e istruzioni saranno diverse rispetto a quanto spiegato nelle esercitazioni. Fatti aiutare dal prof, se ti serve aiuto per capire cosa modificare!

B1) Avvia Access e nella schermata iniziale scegli Database desktop vuoto:

B2) Nella finestra che si apre, scegli come percorso del file da creare la cartella di questa esercitazione e come nome del file metti Biblioteca.accdb, come mostrato in figura:

Page 3: ESERCITAZIONE SUGLI ALGORITMI NUMERO TRE€¦  · Web viewA1) Crea una sottocartella di ES3 con nome uguale a quello di questa esercitazione (EL3-3_5AST Access 1) A2) All'interno

B3) Viene quindi creato un DB vuoto contenente una tabella (anch'essa vuota) di nome Tabella1:

Tabella1 contiene un campo di nome ID generato automaticamente. Si tratta della chiave primaria della tabella e viene incrementato automaticamente durante il riempimento della tabella per ogni nuovo record (vedremo fra poco come funziona).

B4) Rinomina il campo ID e chiamalo Libri ID.

NOMI NEI DATABASE (BEST PRATICES)

Ci sono alcune convenzioni di nomi raccomandate nella realizzazione di un DB (si tratta di best pratices, cioè di raccomandazioni per progettare bene un DB – la violazione di queste regole non costituisce cioè un errore formale).

Anzitutto la chiave primaria di ogni tabella deve chiamarsi col nome della tabella seguito da ID. Per esempio se la tabella si chiama Libri, la sua chiave primaria si chiamerà (LibriID). Nel nostro caso

Page 4: ESERCITAZIONE SUGLI ALGORITMI NUMERO TRE€¦  · Web viewA1) Crea una sottocartella di ES3 con nome uguale a quello di questa esercitazione (EL3-3_5AST Access 1) A2) All'interno

la tabella si chiama Tabella1, ma fra poco la rinomineremo in Libri, perciò usiamo subito questa convenzione.

Una delle norme fondamentali nella progettazione di un database è che non esistono due campi che abbiano lo stesso nome all’interno del database, a meno che si tratti dei campi chiave primaria / chiave esterna, che convenzionalmente si chiamano sempre con lo stesso nome.

L’idea è molto semplice: se hai due campi con lo stesso nome significa che contengono lo stesso dato (e può accadere solo per chiave primaria / chiave esterna, altrimenti stai memorizzando due volte lo stesso dato ed è un problema di progettazione). Per evitare la duplicazione dei nomi, si usa la convenzione di premettere il nome della tabella (o una sua abbreviazione) al nome del campo:

Come puoi osservare, ci sono molti campi simili nelle due tabelle, ma sono stati denominati in modo diverso usando il prefisso Cust (per la tabella Customers) e Emp (per la tabella Employee).

Come ho premesso all'inizio, si tratta solo di norme di buona scrittura e non di regole del linguaggio dei database. Quindi la loro applicazione o meno viene lasciata al buon senso del programmatore.

B5) In un DB esistono due tabelle: Cani e Gatti. In base alle best pratices sui nomi delle tabelle, entrambe le tabelle possono avere un campo di nome Nome?

Vogliamo ora creare gli altri campi della nostra tabella: Autore, Titolo, Genere, Editore, Anno, Collocazione.

Cliccando su Fare clic per aggiungere vengono proposti diversi tipi di dato:

Page 5: ESERCITAZIONE SUGLI ALGORITMI NUMERO TRE€¦  · Web viewA1) Crea una sottocartella di ES3 con nome uguale a quello di questa esercitazione (EL3-3_5AST Access 1) A2) All'interno

I tipi di dato usati più frequentemente sono:

Tipo di dato DescrizioneTesto breve Si tratta del tipo più usato in quanto consente di

inserire sia testi alfabetici che numeri fino a una lunghezza massima di 255 caratteri.

Testo lungo Come il precedente, ma senza praticamente limiti di lunghezza. Viene usato solo quando è necessario inserire nei campi valori descrittivi molto lunghi. In tutti gli altri casi è meglio usare Testo breve, perché occupa meno spazio e viene gestito in modo più efficiente e semplice.

Numero Un dato numericoValuta Dato monetario (ad esempio in euro)Data e ora Una data

B6) Scegli Testo breve come tipo e aggiungi a Tabella1 un campo di nome Autore (per l'autore del libro).

B7) In modo simile aggiungi gli altri campi a Tabella1 (sostituisci l'immagine qui sotto con la tua):

TIPO DI DATO PER l'ANNO

Page 6: ESERCITAZIONE SUGLI ALGORITMI NUMERO TRE€¦  · Web viewA1) Crea una sottocartella di ES3 con nome uguale a quello di questa esercitazione (EL3-3_5AST Access 1) A2) All'interno

Per l'Anno di pubblicazione del libro potresti essere tentato a usare Data e ora come formato del campo invece di Testo breve. Se però fai questa scelta, sarai obbligato poi a inserire valori con date complete (giorno, mese e anno).

Scegliendo invece Testo breve, potrai inserire semplicemente il valore dell'anno di pubblicazione (es. 2006). Un altro tipo che si può usare in questo caso è Numero (infatti l'anno è sempre un valore numerico intero.

B8) Riempiamo adesso la tabella con un po' di valori. Sostituisci la mia schermata con la tua:

CANCELLARE IN CASO DI ERRORE

Per cancellare un record (una riga della tabella), bisogna per prima cosa selezionarlo cliccando sul quadratino posto a sinistra:

Quindi devi premere CANC sulla tastiera e confermare la cancellazione:

Page 7: ESERCITAZIONE SUGLI ALGORITMI NUMERO TRE€¦  · Web viewA1) Crea una sottocartella di ES3 con nome uguale a quello di questa esercitazione (EL3-3_5AST Access 1) A2) All'interno

Come in Excel è facile ridimensionare a piacere le colonne della tabella (in modo che siano abbastanza grandi da visualizzare interamente i dati inseriti) facendo semplicemente clic col mouse sul bordo della colonna e trascinandolo verso destra o sinistra.

ATTENZIONE: i dati inseriti in tabella vengono memorizzati nel database non appena si passa da un campo all’altro. Qualunque modifica ai dati viene immediatamente registrata in Biblioteca.accdb. Non occorre salvare!

AUTOINCREMENTO DELLA CHIAVE PRIMARIA

Come avrai notato, la chiave primaria LibriId viene incrementata automaticamente ad ogni nuovo record inserito. In questo modo viene garantito il fatto che ogni record avrà un valore unico e non duplicato della chiave primaria.

In genere, invece di doversi preoccupare per cercare una chiave primaria, è molto meglio affidarsi alla generazione automatica di una chiave ad auto incremento proposta da Access.

B9) Quale altro campo della nostra tabella potrebbe essere usato come chiave primaria?

Vogliamo adesso rinominare Tabella1 e chiamarla Libri. Se provi però a farlo, cliccando con tasto destro su Tabella1, ottieni questo messaggio di errore:

La ragione è che Access ti impedisce di cambiare il nome a una tabella mentre questa è aperta per l'inserimento dei dati. Questo serve per garantire l'integrità del DB, cioè per evitare che il contenuto del DB non sia valido e contenga errori.

B10) Chiudi dunque Tabella1 cliccando col destro

e quindi rinominala:

Page 8: ESERCITAZIONE SUGLI ALGORITMI NUMERO TRE€¦  · Web viewA1) Crea una sottocartella di ES3 con nome uguale a quello di questa esercitazione (EL3-3_5AST Access 1) A2) All'interno

La tabella Libri è stata chiusa e rinominata. Potrai in seguito riaprirla (per esempio per aggiungere nuovi dati) facendo doppio clic sul nome della tabella nel pannello laterale:

SALVARE UN DB

Quando si modifica la struttura di un DB (es. si aggiunge una tabella o si modificano i campi di una tabella esistente), Access chiede la conferma esplicita da parte dell'utente prima del salvataggio (es. quando provi a chiudere una tabella che hai modificato).

Invece, come abbiamo visto prima, non occorre salvare i dati inseriti in un DB (es. i titoli dei libri), poiché questi vengono aggiornati automaticamente via via che vengono effettuate le modifiche.

C) VISUALIZZAZIONE STRUTTURA

Ci sono due modi per visualizzare una tabella in Access:

1) Visualizzazione foglio dati2) Visualizzazione struttura

Il modo Foglio dati è quello che abbiamo usato per creare la tabella Libri, aggiungere i campi e inserire i valori. Questo è anche il modo di default con il quale si apre una tabella quando si fa doppio clic sopra il nome.

Page 9: ESERCITAZIONE SUGLI ALGORITMI NUMERO TRE€¦  · Web viewA1) Crea una sottocartella di ES3 con nome uguale a quello di questa esercitazione (EL3-3_5AST Access 1) A2) All'interno

C1) Per aprire una tabella in Visualizzazione struttura puoi usare il menu contestuale come mostrato in figura:

SE USI BASE

Se usi Base puoi accedere all'analogo di Visualizzazione Struttura cliccando col tasto destro sulla tabella e scegliendo Modifica:

Page 10: ESERCITAZIONE SUGLI ALGORITMI NUMERO TRE€¦  · Web viewA1) Crea una sottocartella di ES3 con nome uguale a quello di questa esercitazione (EL3-3_5AST Access 1) A2) All'interno

La finestra che si apre è abbastanza simile a quella di Access:

Come suggerisce il nome, in Visualizzazione Struttura ti viene mostrata la struttura della tabella, cioè i campi che la costituiscono e il tipo di dati di ogni campo:

Page 11: ESERCITAZIONE SUGLI ALGORITMI NUMERO TRE€¦  · Web viewA1) Crea una sottocartella di ES3 con nome uguale a quello di questa esercitazione (EL3-3_5AST Access 1) A2) All'interno

C2) Spiegami cosa significa Numerazione automatica sul campo LibriID:

Questa visualizzazione è utile ogni qual volta vogliamo modificare la struttura di una tabella. La useremo adesso per modificare l'inserimento del Genere di un libro.

Nella tabella Libri è scomodo dover riscrivere ogni volta a mano il genere dei libri e inoltre questa operazione può facilmente provocare errori di “distrazione” (per esempio scrivendo “fantascenza” invece di “fantascienza”). Possiamo semplificare il lavoro dell’operatore permettendogli di scegliere il genere dei libri da un elenco a discesa (perfettamente analogo all'elemento Select-Option di HTML).

SE USI BASE

Se utilizzi Base non puoi aggiungere l'elenco a discesa direttamente dalla tabella, ma devi creare un Formulario. Ecco la procedura per farlo.

STEP 1

Per prima cosa seleziona dalla colonna a sinistra Formulari e quindi Usa procedura guidata per la creazione dei formulari...

Page 12: ESERCITAZIONE SUGLI ALGORITMI NUMERO TRE€¦  · Web viewA1) Crea una sottocartella di ES3 con nome uguale a quello di questa esercitazione (EL3-3_5AST Access 1) A2) All'interno

STEP 2

Seleziona quindi la tua tabella Libri e aggiungi tutti i campi cliccando sulle freccette indicate in figura (seleziona il campo e poi clicca):

STEP 3

Clicca quindi su Fine (non serve aggiungere altro). Puoi quindi chiudere la finestra che si apre. Vedrai che nella scheda Formulari è stato aggiunto un nuovo elemento con lo stesso nome della tua tabella (Libri):

STEP 4

Apri quindi il formulario Libri col tasto destro scegliendo Modifica:

Page 13: ESERCITAZIONE SUGLI ALGORITMI NUMERO TRE€¦  · Web viewA1) Crea una sottocartella di ES3 con nome uguale a quello di questa esercitazione (EL3-3_5AST Access 1) A2) All'interno

STEP 5

Clicca quindi col tasto destro sull'intestazione della colonna Genere e scegli Sostituisci con... e poi Casella di riepilogo come mostrato in figura:

STEP 6

Clicca quindi di nuovo sull'intestazione Genere e stavolta seleziona Colonna:

Page 14: ESERCITAZIONE SUGLI ALGORITMI NUMERO TRE€¦  · Web viewA1) Crea una sottocartella di ES3 con nome uguale a quello di questa esercitazione (EL3-3_5AST Access 1) A2) All'interno

STEP 7

In Voci dell'elenco scrivi quindi tutti i generi che desideri inserire fra doppi apici premendo MAIU+INVIO (premi il tasto maiuscolo!) dopo ciascuno. Conferma infine con OK

STEP 8

Chiudi la scheda Proprietà: Casella di riepilogo e chiudi anche il Formulario (Salva!).

STEP 9

Riapri quindi il Formulario in vista normale (con doppio clic). Vedrai che a questo punto puoi scegliere il Genere del libro da un menu a tendina:

Page 15: ESERCITAZIONE SUGLI ALGORITMI NUMERO TRE€¦  · Web viewA1) Crea una sottocartella di ES3 con nome uguale a quello di questa esercitazione (EL3-3_5AST Access 1) A2) All'interno

C3) In Visualizzazione Struttura seleziona il campo Genere e spostati nella scheda Ricerca (in fondo) e scegli Casella di riepilogo dal menu a discesa:

Page 16: ESERCITAZIONE SUGLI ALGORITMI NUMERO TRE€¦  · Web viewA1) Crea una sottocartella di ES3 con nome uguale a quello di questa esercitazione (EL3-3_5AST Access 1) A2) All'interno

C4) Nella nuova scheda di ricerca scegli Elenco valori, come mostrato in figura:

C5) Inserisci quindi l'elenco di valori in Origine riga separando le voci con un punto e virgola:

Page 17: ESERCITAZIONE SUGLI ALGORITMI NUMERO TRE€¦  · Web viewA1) Crea una sottocartella di ES3 con nome uguale a quello di questa esercitazione (EL3-3_5AST Access 1) A2) All'interno

numerico intero.

C6) Riapri la tabella in visualizzazione Foglio Dati e inserisci un nuovo libro in elenco. Osserva come adesso nel campo Genere ti viene proposto un elenco a discesa con le diverse scelte. Sostituisci la tua schermata al posto della mia:

Usando ancora Visualizzazione struttura possiamo fare in modo che un certo campo sia obbligatorio (cioè bisogna per forza inserire un valore, non si può lasciare vuoto).

C7) Metti come obbligatorio l'inserimento di Autore, Titolo e Collocazione del libro (gli altri campi possono essere lasciati opzionali):

Page 18: ESERCITAZIONE SUGLI ALGORITMI NUMERO TRE€¦  · Web viewA1) Crea una sottocartella di ES3 con nome uguale a quello di questa esercitazione (EL3-3_5AST Access 1) A2) All'interno

Osserva con attenzione il messaggio che viene visualizzato quando provi a salvare la tabella:

REGOLE DI INTEGRITA'

Un DB non deve solamente memorizzare i dati, ma garantire che i dati memorizzati siano corretti; se i dati sono imprecisi o incoerenti, l’integrità di tali dati può essere violata, compromettendo l’affidabilità del DB.

Si può violare una regola di integrità non inserendo il valore di un campo obbligatorio oppure fornendo un valore non valido (es. un anno negativo) oppure ancora (lo vedremo in seguito) non rispettando una relazione fra la tabella e un'altra tabella.

Per garantire l’integrità dei dati (data integrity), il RDBMS controlla varie regole di integrità, regole che vengono applicate alle tabelle e che vincolano i valori che possono essere inseriti. L’integrità dei dati, praticamente, impone delle restrizioni sui valori assunti da colonne e tabelle in un database.

C8) Spiegami qual è il significato e perché viene visualizzato il messaggio precedente. Se un campo viene indicato con Richiesto, che cosa potrebbe accadere se la corrispondente tabella contiene già dei record?

C9) Prova ora (in visualizzazione Foglio Dati) a inserire un nuovo libro, lasciando vuoto uno dei campi che hai reso obbligatori. Incolla una schermata in cui si veda il messaggio di errore che viene visualizzato:

D) LA TABELLA DEGLI UTENTI

D1) Aggiungi una seconda tabella al DB per gli Utenti della Biblioteca:

Page 19: ESERCITAZIONE SUGLI ALGORITMI NUMERO TRE€¦  · Web viewA1) Crea una sottocartella di ES3 con nome uguale a quello di questa esercitazione (EL3-3_5AST Access 1) A2) All'interno

D2) Nella tabella Utenti inserisci i campi UtentiID (chiave primaria), Nome, Cognome, Indirizzo, Residenza, Telefono, Tessera, DataScadenza. Usa il tipo Testo breve per tutti i campi tranne che per la DataScadenza della tessera, per la quale usa il tipo Data e ora.

D3) Metti come Richiesto (inserimento obbligatorio) i campi Nome, Cognome, Telefono e Tessera.

D4) Riempi con qualche record la tabella Utenti (almeno tre righe) e poi incolla qui sotto una schermata col risultato:

E) OPERAZIONI FINALI

E1) 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

E2) 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.

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

Page 20: ESERCITAZIONE SUGLI ALGORITMI NUMERO TRE€¦  · Web viewA1) Crea una sottocartella di ES3 con nome uguale a quello di questa esercitazione (EL3-3_5AST Access 1) A2) All'interno

Nome del file Tipo del file DescrizioneEL3-3_5AST Access 1 Word Il file di questa esercitazioneBiblioteca.accdb Access

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