Download - Microsoft Access 2007-2010

Transcript

Diapositiva 1

Microsoft Access 2007-2010Progettare un databaseProf. Roberto SPEDICATO

Progettazione di un data baseLa 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 dinformazioni. Es. per la gestione di una biblioteca, possiamo individuare come entit il libro, che loggetto fondamentale.

Prof. Roberto SPEDICATO Access - Progettazione Data Base2

Progettazione - EntitLa biblioteca non solo un magazzino di libri, ma anche un servizio e dobbiamo aggiungere lentit 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 egenere.

Prof. Roberto SPEDICATO Access - Progettazione Data Base3

Progettazione - AttributiFrequentando 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 allinterno il nome dellentit

Prof. Roberto SPEDICATO Access - Progettazione Data Base4LibroAutoreCasa EditriceUtenteProgettazione - AttributiPer descrivere lentit 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 lentit 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 Base5CasaEditrice

TitoloAutoreGenerePrezzoId_LibroChiave primaria= sottolineataProgettazione - AttributiAltro modo per descrivere gli attributi, nel modello ER, indicandone il nome accanto ad un segmento con allestremo un cerchietto vuoto. Quando il cerchietto pieno si indica la chiave primaria.

Prof. Roberto SPEDICATO Access - Progettazione Data Base6Chiave primaria=cerchietto pienoAutomobileTargaColoreModelloProgettazione - Le relazioniLe 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 allinterno il nome della relazione (=verbo)Prof. Roberto SPEDICATO Access - Progettazione Data Base7CasaEditrice

TitoloAutoreGenerePrezzoId_LibroAppartieneGeneree ancoraProgettazione - Le relazioniun 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 Base8

Progettazione - entit/relazioneNellideare il modello di un data base, bisogna scegliere bene quali elementi sono entit, quali attributi e quali relazioni. Prof. Roberto SPEDICATO Access - Progettazione Data Base9

Fig. 1. Modello entit/relazioneEntit-Attributi-RelazioneAltro esempio di Entit-Attributi-Relazione. Prof. Roberto SPEDICATO Access - Progettazione Data Base10StudenteCorsoEsameAnno diiscrizioneMatricolaVotoData esameAnno di corsoNomeId_corsoRealizzazione del DBScendiamo nel dettaglio della realizzazione. Per rappresentare un entit con Access utilizziamo una tabella. Ogni attributo dellentit corrisponde ad una colonna, (o campo)ogni riga della tabella (o record) rappresenta un istanza dellentit (un caso particolare)Prof. Roberto SPEDICATO Access - Progettazione Data Base11Rappresentazione ER in AccessPassaggio dalla rappresentazione ER alla rappresentazione in Access. Prof. Roberto SPEDICATO Access - Progettazione Data Base12

Realizzazione del DBVolendo rappresentare ad es. lentit 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 Base13

Fig. 2. Tabella UtenteTipi 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 dellautore di tipo testo (o stringa=caratteri alfanumerici), la data di tipo data, lanno di pubblicazione pu essere un tipo numerico intero e cos via.Prof. Roberto SPEDICATO Access - Progettazione Data Base14

Coerenza dei dati importante che i dati siano coerenti con i tipi corrispondenti, ad es.:se nel campo data di nascita dellautore 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 Base15Chiavi primarieSe consideriamo ad es. lelenco 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 lindividuazione univoca di un record allinterno di una tabella.Prof. Roberto SPEDICATO Access - Progettazione Data Base16

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 Base17

Fig. 4. Tabella con chiave primariaChiavi primarieLunicit di questo campo viene garantita dal fatto che, cancellando un record, il suo ID non pi riutilizzato. Es., se cancelliamo lautore con ID 23, quella chiave viene persa per sempre.

Prof. Roberto SPEDICATO Access - Progettazione Data Base18

Attualmente ogni libro di una biblioteca riconoscibile univocamente attraverso la chiave primaria ISBNCodice ISBNProf. Roberto SPEDICATO Access - Progettazione Data Base19

Chiavi esterneSi detto che le tabelle possono essere messe in relazione tra loro. Prendiamo ad es. la relazione tra libro e autore: Libro -> scritto da -> AutoreSupponiamo 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 dellautore. Questo campo viene detto chiave esterna.Prof. Roberto SPEDICATO Access - Progettazione Data Base20Chiavi esterneRagionando allo stesso modo anche per la relazioneedito dacon la casa editrice: il campoid_casa editricenella tabellaLibro una chiave esterna e corrisponde ad un campo ID (chiave primaria) della tabellacase editrici.Prof. Roberto SPEDICATO Access - Progettazione Data Base21Fig. 5. Tabella con chiavi esterne

Relazione 1 a 1Esempio di relazione 1 a 1 tra entit uomo-donnaProf. Roberto SPEDICATO Access - Progettazione Data Base22

Relazione 1 a NEsempio di relazione 1 a N tra entit madre-figlioProf. Roberto SPEDICATO Access - Progettazione Data Base23

Relazione N a NEsempio 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 Base24

Esempio di schema E/RCodCantante25Prof. Roberto SPEDICATO Access - Progettazione Data BaseNomeGruppoCodBranoTitoloBranoDurataALBUMBRANOContieneMNCodGenereTipoGENEREAppartiene1NCANTANTECodAlbumTitoloAnnoFileRealizzaN1Esempio di schema E/RApplicando 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