26
Microsoft Access 2007- 2010 Progettare un database Prof. Roberto SPEDICATO

Microsoft Access 2007-2010 Progettare un database Prof. Roberto SPEDICATO

Embed Size (px)

Citation preview

Page 1: Microsoft Access 2007-2010 Progettare un database Prof. Roberto SPEDICATO

Microsoft Access 2007-2010

Progettare un database

Prof. Roberto SPEDICATO

Page 2: Microsoft Access 2007-2010 Progettare un database Prof. Roberto SPEDICATO

Progettazione di un data base

La progettazione di un data base richiede la conoscenza di nozioni elementari del modello entità/relazione, che è alla base dei DBMS “relazionali”.

Le entità. sono gli oggetti principali del data base. Rappresentano un gruppo omogeneo d’informazioni.

Es. per la gestione di una biblioteca, possiamo individuare come entità il libro, che è l’oggetto fondamentale.

Prof. Roberto SPEDICATO Access - Progettazione Data Base 2

Page 3: Microsoft Access 2007-2010 Progettare un database Prof. Roberto SPEDICATO

Progettazione - Entità

La biblioteca non è solo un magazzino di libri, ma anche un “servizio” e dobbiamo aggiungere l’entità “utente”.

il libro poi, è scritto da uno o più autori, è pubblicato da una casa editrice e appartiene ad un genere; quindi si aggiungono altre entità: autore, casa editrice e genere.

Prof. Roberto SPEDICATO Access - Progettazione Data Base 3

Page 4: Microsoft Access 2007-2010 Progettare un database Prof. Roberto SPEDICATO

Progettazione - Attributi

Frequentando una biblioteca ci accorgiamo che di entità ce ne sono molte di più, ma possiamo limitarci ad un modello di biblioteca semplificato.

Le entità si rappresentano con un rettangolo con all’interno il nome dell’entità

Prof. Roberto SPEDICATO Access - Progettazione Data Base 4

Libro

Autore

Casa Editrice

Utente

Page 5: Microsoft Access 2007-2010 Progettare un database Prof. Roberto SPEDICATO

Progettazione - Attributi

Per descrivere l’entità libro abbiamo bisogno di un titolo, di un autore, di un genere, di una casa editrice, di una prezzo, ecc. Tutte queste informazioni che costituiscono l’entità libro, si chiamano attributi.

Tra questi ci deve essere un attributo che individua univocamente un campo = la chiave primaria.

Prof. Roberto SPEDICATO Access - Progettazione Data Base 5

CasaEditrice

TitoloAutore

Genere

Prezzo

Id_Libro Chiave primaria= sottolineata

Page 6: Microsoft Access 2007-2010 Progettare un database Prof. Roberto SPEDICATO

Progettazione - Attributi

Altro modo per descrivere gli attributi, nel modello ER, è indicandone il nome accanto ad un segmento con all’estremo un cerchietto vuoto. Quando il cerchietto è pieno si indica la chiave primaria.

Prof. Roberto SPEDICATO Access - Progettazione Data Base 6

Chiave primaria=cerchietto pieno

Automobile

Targa

Colore

Modello

Page 7: Microsoft Access 2007-2010 Progettare un database Prof. Roberto SPEDICATO

Progettazione - Le relazioni

Le entità non sono oggetti a se stanti ma sono in relazione tra loro. Ad es.: ogni libro appartiene ad un genere ed esistono molti

libri diversi dello stesso genere.

Le relazioni si indicano con un rombo con all’interno il nome della relazione (=verbo)

Prof. Roberto SPEDICATO Access - Progettazione Data Base 7

CasaEditrice

TitoloAutore

Genere

Prezzo

Id_LibroAppartieneGenere

…e ancora…

Page 8: Microsoft Access 2007-2010 Progettare un database Prof. Roberto SPEDICATO

Progettazione - Le relazioni

un libro è scritto da uno o più autori ed ogni autore può scrivere più libri;

i libri sono prestati agli utenti; un utente può prendere in prestito uno o più libri e un libro può essere preso in prestito solo da un utente per volta.

Prof. Roberto SPEDICATO Access - Progettazione Data Base 8

Page 9: Microsoft Access 2007-2010 Progettare un database Prof. Roberto SPEDICATO

Progettazione - entità/relazione

Nell’ideare il modello di un data base, bisogna scegliere bene quali elementi sono entità, quali attributi e quali relazioni.

Prof. Roberto SPEDICATO Access - Progettazione Data Base 9

Fig. 1. Modello entità/relazione

Page 10: Microsoft Access 2007-2010 Progettare un database Prof. Roberto SPEDICATO

Entità-Attributi-Relazione

Altro esempio di Entità-Attributi-Relazione.

Prof. Roberto SPEDICATO Access - Progettazione Data Base 10

Studente CorsoEsame

Anno diiscrizione

MatricolaVoto Data esame

Anno di corso

Nome

Id_corso

Page 11: Microsoft Access 2007-2010 Progettare un database Prof. Roberto SPEDICATO

Realizzazione del DB

Scendiamo nel dettaglio della realizzazione. Per rappresentare un’ entità con Access

utilizziamo una tabella. Ogni attributo dell’entità corrisponde ad una

colonna, (o campo) ogni riga della tabella (o record) rappresenta

un’ istanza dell’entità (un caso particolare)

Prof. Roberto SPEDICATO Access - Progettazione Data Base 11

Page 12: Microsoft Access 2007-2010 Progettare un database Prof. Roberto SPEDICATO

Rappresentazione ER in Access

Passaggio dalla rappresentazione ER alla rappresentazione in Access.

Prof. Roberto SPEDICATO Access - Progettazione Data Base 12

Page 13: Microsoft Access 2007-2010 Progettare un database Prof. Roberto SPEDICATO

Realizzazione del DB

Volendo rappresentare ad es. l’entità Utente, possiamo impostare una tabella che abbia come colonne gli attributi di un Utente (nome, cognome, data di nascita, indirizzo). Ogni riga (o record) corrisponde ad una persona particolare.

Prof. Roberto SPEDICATO Access - Progettazione Data Base 13

Fig. 2. Tabella “Utente”

Page 14: Microsoft Access 2007-2010 Progettare un database Prof. Roberto SPEDICATO

Tipi di dati (in visualizza struttura)

Gli attributi (o campi) rappresentano tipi diversi di dati, ad es. campi numerici o testo, oppure campi data. Questa natura diversa dei dati si dice “tipo”: il nome dell’autore è di tipo “testo” (o stringa=caratteri alfanumerici), la data è di tipo “data”, l’anno di pubblicazione può essere un tipo “numerico intero” e così via.

Prof. Roberto SPEDICATO Access - Progettazione Data Base 14

Page 15: Microsoft Access 2007-2010 Progettare un database Prof. Roberto SPEDICATO

Coerenza dei dati

È importante che i dati siano coerenti con i tipi corrispondenti, ad es.: se nel campo data di nascita dell’autore inseriamo un

numero come 01121980, commettiamo un errore di coerenza.

Nella visualizzazione della struttura possiamo impostare, visualizzare e modificare il tipo degli attributi; ad es. nel campo nome inseriremo il tipo testo; all’ attributo data assegniamo il tipo data.

Prof. Roberto SPEDICATO Access - Progettazione Data Base 15

Page 16: Microsoft Access 2007-2010 Progettare un database Prof. Roberto SPEDICATO

Chiavi primarie

Se consideriamo ad es. l’elenco del telefono, risulta plausibile trovare omonimie tra le persone, questo significa che alla coppia di informazioni nome, cognome corrisponde più di un record.

Risulta allora utile realizzare un meccanismo che identifichi in modo univoco i record, anche se hanno tutti i campi uguali tra loro.

La soluzione è quella di inserire nella tabella un nuovo campo: la chiave primaria; è il più importante tra tutti gli attributi e garantisce l’individuazione univoca di un record all’interno di una tabella.

Prof. Roberto SPEDICATO Access - Progettazione Data Base 16

Page 17: Microsoft Access 2007-2010 Progettare un database Prof. Roberto SPEDICATO

Chiavi primarieTipicamente si tratta di un numero intero, dato dal campo ID (identificatore) che viene incrementato automaticamente da Access quando si aggiunge un record.

Il campo ID non è indispensabile se esiste già un campo che rende univoco il record (es. il codice fiscale, oppure si raggruppano più campi: nome+cognome+data nascita presi tutti assieme.

Prof. Roberto SPEDICATO Access - Progettazione Data Base 17

Fig. 4. Tabella con chiave primaria

Page 18: Microsoft Access 2007-2010 Progettare un database Prof. Roberto SPEDICATO

Chiavi primarie

L’unicità di questo campo viene garantita dal fatto che, cancellando un record, il suo ID non è più riutilizzato. Es., se cancelliamo l’autore con ID 23, quella chiave viene persa per sempre.

Prof. Roberto SPEDICATO Access - Progettazione Data Base 18

Attualmente ogni libro di una biblioteca è riconoscibile univocamente attraverso la chiave primaria ISBN

Page 19: Microsoft Access 2007-2010 Progettare un database Prof. Roberto SPEDICATO

Codice ISBN

Prof. Roberto SPEDICATO Access - Progettazione Data Base 19

Page 20: Microsoft Access 2007-2010 Progettare un database Prof. Roberto SPEDICATO

Chiavi esterne

Si è detto che le tabelle possono essere messe in relazione tra loro.

Prendiamo ad es. la relazione tra libro e autore:

Libro -> scritto da -> Autore

Supponiamo che un libro sia scritto da un autore e che un autore abbia scritto diversi libri. La tabella Autore avrà allora un codice ID che identifica univocamente ogni autore. Quindi, per associare un libro ad un autore possiamo prevedere un campo, nella tabella Libro, che contenga il codice dell’autore. Questo campo viene detto chiave esterna.

Prof. Roberto SPEDICATO Access - Progettazione Data Base 20

Page 21: Microsoft Access 2007-2010 Progettare un database Prof. Roberto SPEDICATO

Chiavi esterne

Ragionando allo stesso modo anche per la relazione edito da con la casa editrice: il campo id_casa editrice nella tabella Libro è una chiave esterna e corrisponde ad un campo ID (chiave primaria) della tabella case editrici.

Prof. Roberto SPEDICATO Access - Progettazione Data Base 21

Fig. 5. Tabella con chiavi esterne

Page 22: Microsoft Access 2007-2010 Progettare un database Prof. Roberto SPEDICATO

Relazione 1 a 1

Esempio di relazione 1 a 1 tra entità uomo-donna

Prof. Roberto SPEDICATO Access - Progettazione Data Base 22

Page 23: Microsoft Access 2007-2010 Progettare un database Prof. Roberto SPEDICATO

Relazione 1 a N

Esempio di relazione 1 a N tra entità madre-figlio

Prof. Roberto SPEDICATO Access - Progettazione Data Base 23

Page 24: Microsoft Access 2007-2010 Progettare un database Prof. Roberto SPEDICATO

Relazione N a N

Esempio di relazione n a N tra entità studente-esame. Occorre creare una tabella “sostiene” con 2 chiavi corrispondenti a quelle delle altre 2 tabelle.

Prof. Roberto SPEDICATO Access - Progettazione Data Base 24

Page 25: Microsoft Access 2007-2010 Progettare un database Prof. Roberto SPEDICATO

Esempio di schema E/R

CodCantante

25Prof. Roberto SPEDICATO Access - Progettazione Data Base

Nome Gruppo

CodBranoTitoloBrano

Durata

ALBUM

BRANO

Contiene

M

N

CodGenereTipo

GENEREAppartiene

1N

CANTANTE

CodAlbum TitoloAnno

File

Realizza

N

1

Page 26: Microsoft Access 2007-2010 Progettare un database Prof. Roberto SPEDICATO

Esempio di schema E/R

Applicando le regole di derivazione possiamo trasformare il diagramma E/R nel seguente schema relazionale con 5 tabelle:

ALBUM(CodAlbum, Titolo, Anno, CodCantante)BRANO(CodBrano, TitoloBrano, Durata, File, CodGenere)CANTANTE(CodCantante, Nome, Gruppo)GENERE(CodGenere, Tipo)CONTIENE(CodAlbum, CodBrano)

26Prof. Roberto SPEDICATO Access - Progettazione Data Base