Post on 01-May-2015
Microsoft Access
Microsoft Access 2
DataBase introduzione
Un database può essere definito come un insieme di archivi contenenti dati omogenei che riguardano un certo argomento. Sono database la rubrica telefonica o l'archivio dei cittadini di un comune, o gli elementi per la gestione di un magazzino.
Un database efficiente e ben organizzato permette di individuare le informazioni che occorrono a un utente nel minor tempo possibile, grazie agli strumenti di ricerca e ordinamento che permettono di organizzare al meglio i dati.
Microsoft Access 3
DataBase introduzione
In un database relazionale le informazioni vengono memorizzate in più tabelle in relazione fra loro, non in una sola grande tabella. Un database deve possedere alcune caratteristiche fondamentali. Deve essere condivisibile, cioè più utenti diversi devono avere l'opportunità di accedere ai dati comuni. I dati non devono essere ridondanti, cioè non devono presentare ripetizioni. Il database deve infine essere persistente, cioè le informazioni memorizzate devono avere un tempo di vita illimitato.
Microsoft Access 4
DataBase introduzione
Il termine dato viene usato al posto di informazione tutte le volte che ci si riferisce ad una informazione rilevante per la gestione del problema specifico, problema che viene gestito con la creazione di una base di dati. Un dato è la registrazione di un qualsiasi oggetto descrivibile, identificabile e classificabile. Ad esempio, un libro è l'elemento base di una biblioteca, quindi le informazioni di ciascun libro costituiscono il dato fondamentale di un ipotetico database Biblioteca.
Microsoft Access 5
DataBase introduzione
Per impostare e definire correttamente un nuovo database occorre analizzare tutti gli elementi della realtà da descrivere, identificando innanzitutto due tipi di oggetti: le entità del database, ossia le diverse strutture necessarie per la memorizzazione dei dati e le relazioni tra le entità del database.Supponiamo di voler costruire un database per la gestione dei dati di un Test Center ECDL in cui vengono svolti corsi finalizzati al conseguimento della Patente Europea del Computer. Dovremo innanzitutto identificare le entità che ci servono per memorizzare correttamente i dati, in questo caso di skill card, esami, corsi e alunni.
Microsoft Access 6
DataBase introduzione
Per ogni entità (skill card, esami, corsi e alunni) deve essere creata una tabella, in cui vengono organizzati i dati in campi (colonne) e record (righe). Nei campi si memorizzano tipi di dati diversi (ad esempio il nome o un indirizzo); nei record si raccolgono tutte le informazioni su un elemento da registrare nel database. Ad esempio la tabella Corsi, tra l'altro, conterrà informazioni sul nome del corso, sulla data di inizio e sull'insegnante.
Microsoft Access 7
DataBase introduzione
Nella figura viene illustrata la distinzione tra campi, record e tabelle. Ciascuna caratteristica di un'entità viene definita attributo e rappresenterà un campo nella tabella. Il campo Nome corso è un campo della tabella Corsi; l'insieme dei dati che avvalorano i campi della tabella costituisce un record e l'insieme dei record costituisce la tabella.
Microsoft Access 8
DataBase introduzione
Le relazioni tra le tabelle sono rappresentate da frecce.
Ad esempio, la freccia tra la tabella Alunni e Corsi indica la relazione che lega ciascun alunno al corso che segue o che ha seguito, e la freccia tra la tabella Corsi ed Esami indica la relazione tra gli esami che sono stati sostenuti e i corsi seguiti.
Microsoft Access 9
DataBase introduzione
Affinché i record di una tabella siano unici, è necessario definire la chiave primaria della tabella, ossia l'insieme dei campi che identificano ogni record in maniera univoca.
La definizione di una chiave primaria permette di avere record distinti, non duplicati, e di reperirli in maniera più veloce.
La scelta opportuna della chiave è una tra le regole più importanti da seguire per ottenere un database ben progettato.
Microsoft Access 10
Costruzione di uno schema di base dati con Access Vogliamo costruire una base dati per la
gestione di un archivio bibliografico L’archivio deve contenere articoli e libri Si dovranno poter fare ricerche sulla
base di: titolo, autore, anno di pubblicazione, argomenti
Per ogni articolo/libro saranno presenti anche la casa editrice e un breve riassunto
Microsoft Access 11
(A1) Fase di analisi: i requisiti Vogliamo tabelle relative ad
articoli o libri, della forma Titolo: …….. Autori: ………. Dati pubblicazione: (anno, editore, ecc.) Riassunto: ………
Vogliamo inserire ed aggiornare i dati Vogliamo fare delle ricerche per
titolo, autore, anno, argomento
Microsoft Access 12
Nota Articoli e Libri sarebbero entità distinte,
ma nella nostra applicazione “ad uso personale” verranno identificate.Ci sarà cioè una sola entità di nome “Articoli o Libri” le cui istanze saranno articoli o libri.
Editore, rivista, … sarebbero entità, ma nella nostra applicazione saranno rappresentate in un unico attributo di testo dati pubblicazione.
Microsoft Access 13
(A2) Fase di analisi: entità ed attributi La prima entità è: Articolo o Libro. Altre entità: autori, argomenti Possiamo considerare come attributi di
Articolo o Libro: titolo anno di pubblicazione altri dati di pubblicazione (editore, rivista,
ecc.) riassunto
Microsoft Access 14
(A3) Fase di Analisi: relazioni fra entità
Un Articolo o Libro può avere più autori e un Autore aver scritto più articoli o libri: si ha una relazione molti-a-molti
Similmente si ha una relazione molti-a-molti fra Articolo o Libro e Argomenti
Per questo Autori ed Argomenti non possono essere trattati come attributi di Articolo o Libro
Si procederà con più tabelle
Microsoft Access 15
(A4) Realizzazione in AccessPer la realizzazione in Access,
occorre: (A4.1) Creare le Tabelle (A4.2) Collegare le tabelle con
creazione delle chiavi secondarie e vincoli di integrità
(A4.3) Creare delle maschere per l’inserimento di dati da un elenco
Microsoft Access 16
(A4.1) Creazione tabelle in Access All’apertura di Access, selezionare
Crea nuovo database (vuoto) (in seguito, la stessa operazione si potrà eseguire dal menù File/Nuovo)
Si apre la seguente maschera
Microsoft Access 17
Selezioniamo la directory
Indichiamo il nome della nuova base dati, ad es. DBArticoli
Alla fine clicsu Crea
Microsoft Access 18
Da qui si possono creare/modificare/visualizzare Tabelle, Query …
Selezioniamo il tipo di oggetti su cui operare Selezioniamo il tipo di operazione
Crea nuovo
Microsoft Access 19
Facendo clic su Nuovo compare…
Selezioniamo Visualizzazione Struttura
Facciamo clic su OK
Microsoft Access 20
Compare una finestra in cui inserire i campi e i loro tipi
Nome del campo
Tipo Eventuale descrizione testuale
Ulteriori proprietà del campo
Microsoft Access 21
Esempio: campo IdArticolo
E’ un contatore
Si autoincrementa
Vogliamo indicizzarlo
Non vogliamo duplicati
Nome del campo
Microsoft Access 22
Creazione struttura Creiamo i campi della tabella
Articolo o Libro come indicato nella seguente diapositiva
Microsoft Access 23
Per il campo Anno aggiungiamo questo vincolo (non accettiamo Pubblicazioni anteriori al 1970 o posteriori al 2100)
Microsoft Access 24
Andiamo su IdArticolo e facciamo clic sulla chiave (per indicare che quella è la chiave primaria)
Microsoft Access 25
Selezioniamo File/Chiudi, diamo OK e scegliamo il nome della tabella (Articolo o Libro)
Microsoft Access 26
Compare la tabella nuova (vuota)
Microsoft Access 27
Facendo clic su Apri si possono inserire deidati nella tabella
Si può allargare il campo titolo portando il mouse sulla barretta e trascinando
Microsoft Access 28
Il contatore si autoincrementaNon viene accettato: l’anno non soddisfa i vincoli
Microsoft Access 29
Mettiamo 2099 come anno (questo è valido)
Salviamo i dati con File/Chiudi
Microsoft Access 30
Con Apri si modifica il contenutoCon Struttura si modifica la struttura (campi e loro proprietà)
Microsoft Access 31
Fino a questo punto… Ci siamo limitati a scegliere i nomi dei
campi e il loro tipo Abbiamo accettato le proprietà
standard, tranne nel caso dell’Anno (abbiamo inserito un vincolo)
Ora modifichiamo le proprietà dei campi…
…e inseriamo un vincolo più sofisticato per l’Anno
Microsoft Access 32
Per il campo Titolo
Cambia dimensione (da 50 a 100)
Il campo è obbligatorio: cambia Richiesto in Sì
Microsoft Access 33
Per il campo Anno
Tipo Intero (non Intero lungo)
Campo obbligatorio
Vogliamo cambiare la condizione di validità: cancelliamo quella vecchia e facciamo clic qui
Microsoft Access 34
Anni validi: dopo il 1970 e minori o uguali all’anno corrente:Date() fornisce la data corrente, e Year(x) estrae l’anno da una data
La condizione si può inserire “manualmente”, o aiutandosi con il menùche fornisce operatori, funzioni ecc.
Microsoft Access 35
Dopo aver chiuso… …la struttura (con File/Chiudi) e
aver confermato… …compare la finestra:
Microsoft Access 36
Confermiamo Siccome l’ultimo record contiene
un anno (2099) non valido rispetto alle nuove regole, compare la finestra
Microsoft Access 37
A questo punto… …apriamo la tabella e correggiamo
l’anno errato Provate a vedere cosa succede se
inserite un anno che non rispetta il nuovo vincolo
Microsoft Access 38
Tabella Autore Creiamo la tabella Autore con i
seguenti campi Nome (di tipo Testo, chiave primaria) Contatto (di tipo Memo, non
obbligatorio, contenente dati come indirizzo di e-mail ecc.)
Microsoft Access 39
(A3.1) Relazioni molti-a-molti La relazione essere autore di è una
relazione molti-a-molti perché: Un articolo può essere scritto da molti
autori Un autore può avere scritto molti
articoliIdArticolo
Titolo …
1 Cani e gatti
2 Canguri
3 L’Ornitorinco
… … …
Nome …
Anna Gialli
Giorgio Bruni
Giovanni Rossi
Mario Bianchi …
Microsoft Access 40
Come si realizza… …una relazione molti-a-molti
usando solo relazioni 1-a-molti (che sono le uniche direttamente gestite dai DBMS relazionali)?
Microsoft Access 41
IdArticolo
Titolo …
1 Cani e gatti
2 Canguri
3 L’Ornitorinco
… … …
Nome …
Anna Gialli
Giorgio Bruni
Giovanni Rossi
Mario Bianchi …
IdArticolo
Nome
1 Anna Gialli
1 Giovanni Rossi
2 Giovanni Rossi
3 Anna Gialli
3 Giorgio Bruni
Microsoft Access 42
Relazioni molti-a-molti: regola generale
Si individuano le due tabelle da collegare: Articoli o Libri con chiave primaria IdArticolo Autori con chiave primaria Nome
La relazione molti-a-molti si codifica come tabella RelArticoloAutore con campi IdArticolo,Nome IdArticolo chiave esterna con integrità
referenziale, riferita alla chiave primaria di Articoli o Libri
Nome chiave esterna con integrità referenziale, riferita alla chiave primaria di Autori
(IdArticolo,Nome) chiave multicampo di RelArticoloAutore
Microsoft Access 43
Chiavi multicampo Con una chiave multicampo
(campo1, …, campon)non si può avere più di un record con gli stessi valori di (campo1, …, campon)
Tornando al nostro esempio, la chiave multicampo (IdArticolo,Nome) evita ridondanze; ogni coppia (ident. articolo, nome autore) compare una sola volta.
Microsoft Access 44
Tabella RelArticoloAutore Creiamo la tabella
RelArticoloAutore con i seguenti campi IdArticolo (di tipo Intero lungo) Nome (di tipo Testo)
Con la coppia (IdArticolo,Nome) come chiave
Microsoft Access 45
Nota Abbiamo usato il Nome come chiave
primaria della tabella Autori; quindi non sono ammesse omonimie (si useranno le iniziali ed altri segni distintivi). Una scelta migliore (che non faremo per brevità) potrebbe essere quella di usare una diversa chiave primaria IdAutore.
In modo simile a quello visto per la relazione molti a molti Articolo o Libro - Autore
Si può realizzare la relazione molti a moltiArticolo o Libro - Argomento
Microsoft Access 46
Per realizzare… …una chiave multicampo, aprite la
tabella RelArticoloAutore (facendo clic su Struttura)
Scegliamo dal menù Visualizza/Indici
Modifichiamo gli indici come segue
Microsoft Access 47
Nome dell’indiceCampi dell’indice
Univoco: non è possibile che la stessa coppia compaia più volte
Microsoft Access 48
Dopo aver creato l’indice… …possiamo chiudere la finestra
relativa alla tabella RelArticoloAutore
Access vi consiglierà di creare una chiave primaria, ma voi scegliete No (potrete sempre inserire una chiave primaria in seguito se ne avrete bisogno)
Microsoft Access 49
Creazione della relazione La tabella RelArticoloAutore
realizza la relazione essere autore di
Ora dobbiamo indicare che i due campi della tabella RelArticoloAutore rappresentano dei “collegamenti” con le tabelle Articolo o Libro e Autore
Microsoft Access 50
Con il menù Strumenti/Relazioni si apre una finestra dal titolo “Relazioni”
Dal menù Relazioni/Mostra tabella si apre una finestra di dialogo
Microsoft Access 51
Dopo aver aggiunto tutte e tre le tabelle, facciamo clic su Chiudi
Microsoft Access 52
Riordiniamo le tabelle nella finestra, mettendo latabella con la relazione in mezzo
Ora, facciamo clic su IdArticolo nella tabella Articolo o Libro e trasciniamolo su IdArticolonella tabella RelArticoloAutore
Microsoft Access 53
Quando rilasciamo il mouse si apre questa finestra
Facciamo clic su Crea
Microsoft Access 54
Ecco come compaiono le relazioni dopo aver creato ancheil secondo collegamento (quello relativo al campo Nome)
Microsoft Access 55
Dopo aver… …chiuso la finestra delle relazioni,
proviamo a inserire nella tabella RelArticoloAutore gli autori dei vari articoli
Per farlo dobbiamo selezionare la tabella e fare clic su Apri
Microsoft Access 56
Queste associazioni sono corrette
Questa è sbagliata! “Marco Mirchi” non è presente nella tabella Autori
Nonostante ciò, Access accetta l’inserimento dell’associazione
Microsoft Access 57
(A4.2) Chiavi secondarie e vincoli di integrità in Access Il problema è che non abbiamo
forzato il controllo di integrità relazionale
Per farlo, riapriamo la finestra delle relazioni (menù Strumenti/Relazioni) e facciamo doppio clic su ciascuna relazione…
Microsoft Access 58
Si apre questa finestra
Facendo clic qui si forza l’integrità referenziale
Facendo clic qui si richiedeche aggiornamenti su una tabella si riflettano anchesull’altra
Facendo clic qui si richiede che la cancellazione di un recordelimini a cascata anche i record correlati
Microsoft Access 59
Provate a fare la stessa cosa… …anche per l’altra tabella Cosa succede? Perché? Eliminate il record sbagliato dalla
tabella RelArticoloAutore e procedete di nuovo ad applicare l’integrità referenziale
Microsoft Access 60
Ecco come compare l’insieme delle relazioni alla fine
Microsoft Access 61
Provate a vedere cosa succede se…
1. Create un record in RelArticoloAutore in cui uno dei due valori non sia presente nella tabella corrispondente
2. Modificate un nome di un autore nella tabella Autore; cosa succede in RelArticoloAutore
3. Cancellate un autore dalla tabella AutoreNOTA: conviene che apriate contemporaneamente tutte le tabelle e proviate a farele modifiche su ciascuna vedendo cosa succede nelle altre… Usate Finestra/Affianca orizzontalmente
Microsoft Access 62
Tabella Argomento Creiamo la tabella Argomento con
un solo campo, di nome Argomento, di tipo Testo (chiave primaria, duplicati non ammessi, campo richiesto)
Microsoft Access 63
Tabella RelArticoloArgomento Creiamo la tabella RelArticoloArgomento
con i seguenti campi IdArticolo (di tipo Intero lungo) Argomento (di tipo Testo)
Con la coppia (IdArticolo,Argomento) come chiave multicampo (ricordate: dovete creare un indice!)
Creiamo una relazione con vincoli di integrità come evidenziato nel seguente diagramma
Microsoft Access 64
Microsoft Access 65
Popoliamo anche la tabella RelArticoloArgomento
Microsoft Access 66
(A5.3) Caselle combinate Inserendo coppie di valori in
RelArticoloArgomento vi sarete resi conto della difficoltà di inserire argomenti esistenti
Vorremmo che, quando dobbiamo inserire un argomento, comparisse una “tendina” contenente i valori possibili
Ciò è possibile usando le caselle combinate
Microsoft Access 67
Apriamo la struttura di RelArticoloArgomento
Andiamo su Argomento e facciamo clic su Ricerca: scegliamo Casella Combinata
Microsoft Access 68
Modifichiamo “Larghezza colonne” a 10cm
Modifichiamo “Solo in elenco” a Sì (non vogliamo inserire valori che non siano nell’elenco)
Facciamo clic qui per scegliere da dove vannoattinti i dati
Microsoft Access 69
Scegliamo Argomento
Microsoft Access 70
Proviamo ora a modificare il contenuto della tabella…