Progettazione di basi di dati:Progettazione di basi di dati:Metodologie e modelliMetodologie e modelli
24/05/2006 2
Progettazione di basi di dati
Fino a questo punto si sono analizzate le modalità(modelli) di descrizione e di manipolazione di una basedi dati supponendo l’esistenza della base di dati con laquale interagire.
Il problema preliminare è: progettare una base di datia partire dai suoi requisiti e quindi definire struttura,caratteristiche e contenuto
Le fasi della metodologia di riferimento:progettazione concettuale, progettazione logica eprogettazione fisica
24/05/2006 3
Base di dati bibliograficaSi vogliono organizzare i dati di interesseper automatizzare la gestione deiriferimenti bibliografici
EsempioEsempio
24/05/2006 4
Base di dati bibliograficaSi vogliono organizzare i dati di interesse perautomatizzare la gestione dei riferimentibibliografici, con tutte le informazioni dariportarsi in una bibliografia.Per ogni pubblicazione deve esistere uncodice identificante costituito da settecaratteri, indicanti le iniziali degli autori, l'annodi pubblicazione e un carattere aggiuntivo perla discriminazione delle collisioni.
24/05/2006 5
Base di dati bibliograficaSi vogliono organizzare i dati di interesse perautomatizzare la gestione dei riferimentibibliografici, con tutte le informazioni da riportarsiin una bibliografia. Le pubblicazioni sono di duetipi, monografie (per le quali interessano editore,data e luogo di pubblicazione) e articoli su rivista(con nome della rivista, volume, numero, pagine eanno di pubblicazione); per entrambi i tipi sidebbono ovviamente riportare i nomi degli autori.Per ogni pubblicazione deve esistere un codiceidentificante .....
24/05/2006 6
Società di formazione (1)Si vuole realizzare una base di dati per unasocietà che eroga corsi, di cui vogliamorappresentare i dati dei partecipanti ai corsi e deidocenti. Per gli studenti (circa 5000), identificatida un codice, si vuole memorizzare il codicefiscale, il cognome, l'età, il sesso, il luogo dinascita, il nome dei loro attuali datori di lavoro, iposti dove hanno lavorato in precedenza insiemeal periodo, l'indirizzo e il numero di telefono, icorsi che hanno frequentato (i corsi sono in tuttocirca 200) e il giudizio finale.
Un esempio piUn esempio piùù articolatoarticolato
24/05/2006 7
Società di formazione (2)Rappresentiamo anche i seminari che stannoattualmente frequentando e, per ogni giorno, iluoghi e le ore dove sono tenute le lezioni. I corsihanno un codice, un titolo e possono avere varieedizioni con date di inizio e fine e numero dipartecipanti. Se gli studenti sono liberiprofessionisti, vogliamo conoscere l'area diinteresse e, se lo possiedono, il titolo. Per quelliche lavorano alle dipendenze di altri, vogliamoconoscere invece il loro livello e la posizionericoperta.
24/05/2006 8
Società di formazione (3)Per gli insegnanti (circa 300), rappresentiamo ilcognome, l'età, il posto dove sono nati, il nomedel corso che insegnano, quelli che hannoinsegnato nel passato e quelli che possonoinsegnare. Rappresentiamo anche tutti i lororecapiti telefonici. I docenti possono esseredipendenti interni della società o collaboratoriesterni.
24/05/2006 9
Progettazione di basi di datiProgettazione di basi di dati
• È una delle attività del processo di sviluppodei sistemi informativi
• va quindi inquadrata in un contesto piùgenerale:
• il ciclo di vita dei sistemi informativi:• Insieme e sequenzializzazione delle attività
svolte da analisti, progettisti, utenti, nellosviluppo e nell’uso dei sistemi informativi
• attività iterativa, quindi ciclo
24/05/2006 10
Fasi (tecniche) del ciclo di vitaFasi (tecniche) del ciclo di vita
• Studio di fattibilità: definizione costi e priorità• Raccolta e analisi dei requisiti: studio delle
proprietà del sistema• Progettazione: di dati e funzioni• Realizzazione• Validazione e collaudo: sperimentazione• Funzionamento: il sistema diventa operativo
24/05/2006 11
Studio di fattibilità
Raccolta e analisidei requisiti
Progettazione
Realizzazione
Validazione ecollaudo
Funzionamento
24/05/2006 12
Studio di fattibilità
Raccolta e analisidei requisiti
Progettazionedei dati
Realizzazione
Validazione ecollaudo
Funzionamento
24/05/2006 13
Studio di fattibilità
Raccolta e analisidei requisiti
Progettazionedei dati
Realizzazione
Validazione ecollaudo
Funzionamento
24/05/2006 14
Progettazionefisica
Schema concettuale
Requisiti della base di dati
Progettazioneconcettuale
Progettazionelogica
Schema logico
Schema fisico
“CHE COSA”:analisi
“COME”:progettazione
24/05/2006 15
• Schema concettuale
• Schema logico
• Schema fisico
I prodotti della varie fasi sonoschemi di alcuni modelli di dati:
24/05/2006 16
DueDue tipitipi ((principaliprincipali) di) di modellimodelli
• modelli logici: utilizzati nei DBMS esistenti perl’organizzazione dei dati• utilizzati dai programmi• indipendenti dalle strutture fisiche
esempi: relazionale, reticolare, gerarchico, a oggetti• modelli concettuali: permettono di rappresentare i
dati in modo indipendente da ogni sistema• cercano di descrivere i concetti del mondo reale• sono utilizzati nelle fasi preliminari di
progettazioneil più noto è il modello Entity-Relationship
24/05/2006 17
Modelli concettuali, perchModelli concettuali, perchéé??
• Proviamo a modellare una applicazionedefinendo direttamente lo schema logico dellabase di dati:• da dove cominciamo?• rischiamo di perderci subito nei dettagli• dobbiamo pensare subito a come
correlare le varie tabelle (chiavi etc.)• i modelli logici sono rigidi
24/05/2006 18
Società di formazione (1)Si vuole realizzare una base di dati per una società che eroga corsi, di cuivogliamo rappresentare i dati dei partecipanti ai corsi e dei docenti. Per glistudenti (circa 5000), identificati da un codice, si vuole memorizzare il codicefiscale, il cognome, l'età, il sesso, il luogo dinascita, il nome dei loro attuali datori di lavoro, i posti dove hanno lavorato inprecedenza insieme al periodo, l'indirizzo e il numero di telefono, i corsi chehanno frequentato (i corsi sono in tutto circa 200) e il giudizio finale.
Società di formazione (2)Rappresentiamo anche i seminari che stanno attualmente frequentando e,per ogni giorno, i luoghi e le ore dove sono tenute le lezioni. I corsi hanno uncodice, un titolo e possono avere varie edizioni con date di inizio e fine enumero di partecipanti. Se gli studenti sono liberi professionisti, vogliamoconoscere l'area di interesse e, se lo possiedono, il titolo. Per quelli chelavorano alle dipendenze di altri, vogliamo conoscere invece il loro livello ela posizione ricoperta.
Società di formazione (3)Per gli insegnanti (circa 300), rappresentiamo il cognome, l'età, il postodove sono nati, il nome del corso che insegnano, quelli che hannoinsegnato nel passato e quelli che possono insegnare. Rappresentiamoanche tutti i loro recapiti telefonici. I docenti possono esseredipendenti interni della società o collaboratori esterni.
24/05/2006 19
Modelli concettuali, perchModelli concettuali, perchéé??
• servono per ragionare sulla realtà diinteresse, indipendentemente dagli aspettirealizzativi
• permettono di rappresentare le classi di datidi interesse e le loro correlazioni
• prevedono efficaci rappresentazioni grafiche(utili anche per documentazione ecomunicazione)
24/05/2006 20
(1,1)(0,1)
(0,N)(0,1)
(0,1)(1,1)
(1,N)
(0,N)
(1,N)
(1,N)
CittàIndirizzo
Telefono
Dipartimento
Composizione
Sede
Direzione
Afferenza
Impiegato
Progetto
Partecipazione
Nome
Nome
Cognome
Budget
Data
Via
CAP
Codice
24/05/2006 21
Progettazioneconcettuale
Progettazionelogica
Progettazionefisica
24/05/2006 22
Società di formazione (1)Si vuole realizzare una base di dati per una società che eroga corsi, di cuivogliamo rappresentare i dati dei partecipanti ai corsi e dei docenti. Per glistudenti (circa 5000), identificati da un codice, si vuole memorizzare il codicefiscale, il cognome, l'età, il sesso, il luogo dinascita, il nome dei loro attuali datori di lavoro, i posti dove hanno lavorato inprecedenza insieme al periodo, l'indirizzo e il numero di telefono, i corsi chehanno frequentato (i corsi sono in tutto circa 200) e il giudizio finale.
Società di formazione (2)Rappresentiamo anche i seminari che stanno attualmente frequentando e,per ogni giorno, i luoghi e le ore dove sono tenute le lezioni. I corsi hanno uncodice, un titolo e possono avere varie edizioni con date di inizio e fine enumero di partecipanti. Se gli studenti sono liberi professionisti, vogliamoconoscere l'area di interesse e, se lo possiedono, il titolo. Per quelli chelavorano alle dipendenze di altri, vogliamo conoscere invece il loro livello ela posizione ricoperta.
Società di formazione (3)Per gli insegnanti (circa 300), rappresentiamo il cognome, l'età, il postodove sono nati, il nome del corso che insegnano, quelli che hannoinsegnato nel passato e quelli che possono insegnare. Rappresentiamoanche tutti i loro recapiti telefonici. I docenti possono esseredipendenti interni della società o collaboratori esterni.
24/05/2006 23
24/05/2006 24
Schema Relazionale
Abilitazione(CodCorso, CFDocente)Corso(Codice, Nome)DipendenzaP(CodPartecipante, NomeSocietà, DataInizio, DataFine)DipPubblici(CodPartecipante, Livello, Posizione)Docente(CF, Cognome, Età, CittàNascita, Telefono, Tipo)Docenza(CodEdCorso, CFDocente)Edizione(Codice, DataInizio, DataFine, CodCorso)Lezione(Ora, Aula, Giorno, CodEdCorso)Partecipante(Codice, CF, Cognome, Età, Sesso, CittàNascita,
Società, DataInizio)Partecipazione(CodEdCorso, CodPartecipante, Votazione)Professionisti(CodPartecipante, Area, Titolo)
24/05/2006 25
ModelloModello EntityEntity--RelationshipRelationship(Entit(Entitàà--Relazione)Relazione)
• Il più diffuso modello concettuale
• Ne esistono molte versioni,• (più o meno) diverse l’una dall’altra
24/05/2006 26
I costrutti del modello EI costrutti del modello E--RR
• Entità• Relationship• Attributo• Identificatore• Generalizzazione• ….
24/05/2006 27
EntitEntitàà
• Classe di oggetti (fatti, persone, cose) dellaapplicazione di interesse con proprietàcomuni e con esistenza “autonoma”
• Esempi:• studente, città, corso, conto corrente,
ordine, fatturaGraficamente
Studente Corso
24/05/2006 28
RelationshipRelationship
• Legame logico fra due o più entità, rilevantenell’applicazione di interesse
• Esempi:• Residenza (fra persona e città)• Esame (fra studente e corso)
Graficamente:
EsameStudente Corso
24/05/2006 29
Uno schema EUno schema E--R, graficamenteR, graficamente
AssociazioneEntità 1 Entità 2
24/05/2006 30
EntitEntitàà: schema e istanza: schema e istanza
• Entità:• classe di oggetti, persone, … "omogenei"
• Occorrenza (o istanza) di entità:• elemento della classe (l'oggetto, la
persona, …, non i dati)
• nello schema concettuale rappresentiamo leentità, non le singole istanze (“astrazione”)
24/05/2006 31
Rappresentazione grafica di entitRappresentazione grafica di entitàà
Impiegato Dipartimento
Città Vendita
24/05/2006 32
EntitEntitàà, commenti, commenti
• Ogni entità ha un nome che la identificaunivocamente nello schema:• nomi espressivi• opportune convenzioni
• singolare
24/05/2006 33
RelationshipRelationship
• Legame logico fra due o più entità, rilevantenell’applicazione di interesse
• Esempi:• Residenza (fra persona e città)• Esame (fra studente e corso)
• Chiamata anche:• relazione, correlazione, associazione
24/05/2006 34
Rappresentazione graficaRappresentazione graficadidi relationshiprelationship
EsameStudente Corso
ResidenzaImpiegato Città
24/05/2006 35
RelationshipRelationship, commenti, commenti
• Ogni relationship ha un nome che la identificaunivocamente nello schema:• nomi espressivi• opportune convenzioni
• singolare• sostantivi invece che verbi (se
possibile)
24/05/2006 36
Esempi di occorrenzeEsempi di occorrenze
S1
S2
S4
S3
Studente
C1
C2
C3
Corso
E1
E2
E3
E4
24/05/2006 37
RelationshipRelationship, occorrenze, occorrenze
• Una occorrenza di una relationship binaria ècoppia di occorrenze di entità, una perciascuna entità coinvolta
• Una occorrenza di una relationship n-aria èuna n-upla di occorrenze di entità, una perciascuna entità coinvolta
• Nell'ambito di una relationship non cipossono essere occorrenze (coppie, ennuple)ripetute
24/05/2006 38
DueDue relationshiprelationship sulle stesse entitsulle stesse entitàà
ResidenzaImpiegato Città
Sede dilavoro
24/05/2006 39
RelationshipRelationship nn--ariaaria
Fornitore Prodotto
Dipartimento
Fornitura
24/05/2006 40
RelationshipRelationship ricorsivaricorsiva::coinvolgecoinvolge ““due voltedue volte”” la stessa entitla stessa entitàà
Persona
Conoscenza
24/05/2006 41
RelationshipRelationship ricorsivaricorsiva concon ““ruoliruoli””
Successione
SovranoSuccessore Predecessore
24/05/2006 42
Confronto
Tennista
Superficie
RelationshipRelationship ternariaternaria ricorsivaricorsiva
Migliore Peggiore
24/05/2006 43
AttributoAttributo
• Proprietà elementare di un’entità o di unarelationship, di interesse ai finidell’applicazione
• Associa ad ogni occorrenza di entità orelationship un valore appartenente a uninsieme detto dominio dell’attributo
24/05/2006 44
Attributi, rappresentazione graficaAttributi, rappresentazione grafica
EsameStudente Corso
Cognome Nome
Matricola
Data Titolo
Codice
Voto
24/05/2006 45
Attributi compostiAttributi composti
• Raggruppano attributi di una medesima entitào relationship che presentano affinità nel lorosignificato o uso
• Esempio:• Via, Numero civico e CAP formano un
Indirizzo
24/05/2006 46
Rappresentazione graficaRappresentazione grafica
Impiegato
Cognome
Età Via
Indirizzo Numero
CAP
24/05/2006 47
ComposizionePartecipazione
Progetto
NomeBudget
Impiegato
Codice
Cognome Telefono
Dipartimento
NomeAfferenza
Data
Direzione
CittàIndirizzo
SedeVia
CAP
24/05/2006 48
Altri costrutti del modello EAltri costrutti del modello E--RR
• Cardinalità• di relationship• di attributo
• Identificatore• interno• esterno
• Generalizzazione
24/05/2006 49
CardinalitCardinalitàà didi relationshiprelationship
• Coppia di valori associati a ogni entità chepartecipa a una relationship
• specificano il numero minimo e massimo dioccorrenze delle relationship cui ciascunaoccorrenza di una entità può partecipare
AssegnamentoImpiegato Incarico
(1,5) (0,50)
24/05/2006 50
• per semplicità usiamo solo tre simboli:• 0 e 1 per la cardinalità minima:
• 0 = “partecipazione opzionale”• 1 = “partecipazione obbligatoria”
• 1 e “N” per la massima:• “N” non pone alcun limite
24/05/2006 51
Occorrenze di ResidenzaOccorrenze di Residenza
S1
S2
S4
S3
Studente
C1
C2
C3
Città
R3
R4
R2
R1
C4
24/05/2006 52
CardinalitCardinalitàà di Residenzadi Residenza
ResidenzaStudente Città
(1,1) (0,N)
24/05/2006 53
Tipi diTipi di relationshiprelationship
• Con riferimento alle cardinalità massime,abbiamo relationship:• uno a uno• uno a molti• molti a molti
24/05/2006 54
RelationshipRelationship ““molti a moltimolti a molti””
EsameStudente Corso(0,N) (0,N)
ScalataMontagna Alpinista(0,N) (1,N)
AbilitazioneMacchinista Locomotore(1,N) (1,N)
24/05/2006 55
Due avvertenzeDue avvertenze
• Attenzione al "verso" nelle relationship uno amolti
• le relationship obbligatorie-obbligatorie sonomolto rare
24/05/2006 56
RelationshipRelationship ““uno a moltiuno a molti””
ImpiegoPersona Azienda(0,1) (0,N)
UbicazioneCinema Località(1,1) (0,N)
UbicazioneComune Provincia(1,1) (1,N)
24/05/2006 57
RelationshipRelationship ““uno a unouno a uno””
TitolaritàProfessore Cattedra(0,1) (0,1)
TitolaritàProfessore
di ruolo Cattedra(1,1) (0,1)
TitolaritàProfessore
di ruoloCattedracoperta
(1,1) (1,1)
24/05/2006 58
CardinalitCardinalitàà di attributidi attributi
• E’ possibile associare delle cardinalità ancheagli attributi, con due scopi:
• indicare opzionalità ("informazioneincompleta")
• indicare attributi multivalore
24/05/2006 59
Rappresentazione graficaRappresentazione grafica
Impiegato
Telefono
Nome
Numero patente
(0,N)
(0,1)
24/05/2006 60
Identificatore di una entitIdentificatore di una entitàà
• “strumento” per l’identificazione univocadelle occorrenze di un’entità
• costituito da:• attributi dell’entità
• identificatore interno• (attributi +) entità esterne attraverso
relationship• identificatore esterno
24/05/2006 61
Identificatori interniIdentificatori interni
Persona
Data Nascita
Cognome
Nome
Automobile
Targa
Modello
Indirizzo
24/05/2006 62
Identificatore esternoIdentificatore esterno
IscrizioneStudente Università
Cognome Matricola
Anno di corso
Nome
Indirizzo
(1,1) (0,N)
24/05/2006 63
Alcune osservazioniAlcune osservazioni
• ogni entità deve possedere almeno unidentificatore, ma può averne in generale piùdi uno
• una identificazione esterna è possibile soloattraverso una relationship a cui l’entità daidentificare partecipa con cardinalità (1,1)
24/05/2006 64
(1,1)(0,1)
(0,N)(0,1)
(0,1)(1,1)
(1,N)
(0,N)
(1,N)
(1,N)
CittàIndirizzo
Telefono
Dipartimento
Composizione
Sede
Direzione
Afferenza
Impiegato
Progetto
Partecipazione
Nome
Nome
Cognome
Budget
Data
Via
CAP
Codice
24/05/2006 65
GeneralizzazioneGeneralizzazione
• mette in relazione una o più entità E1, E2, ...,En con una entità E, che le comprende comecasi particolari
• E è generalizzazione di E1, E2, ..., En• E1, E2, ..., En sono specializzazioni (o
sottotipi) di E
24/05/2006 66
Rappresentazione graficaRappresentazione grafica
Dipendente
Impiegato Funzionario Dirigente
24/05/2006 67
ProprietProprietàà delle generalizzazionidelle generalizzazioni
Se E (genitore) è generalizzazione di E1, E2,..., En (figlie):
• ogni proprietà di E è significativa per E1,E2, ..., En
• ogni occorrenza di E1, E2, ..., En èoccorrenza anche di E
24/05/2006 68
Persona
Codicefiscale
Nome
Età
Città
Nascita(0,N)
(1,1)
Lavoratore Studente
Stipendio
24/05/2006 69
EreditarietEreditarietàà
• tutte le proprietà (attributi, relationship, altregeneralizzazioni) dell’entità genitore vengonoereditate dalle entità figlie e nonrappresentate esplicitamente
24/05/2006 70
Tipi di generalizzazioniTipi di generalizzazioni
• totale se ogni occorrenza dell'entità genitoreè occorrenza di almeno una delle entità figlie,altrimenti è parziale
• esclusiva se ogni occorrenza dell'entitàgenitore è occorrenza di al più una delle entitàfiglie, altrimenti è sovrapposta
• consideriamo (senza perdita di generalità)solo generalizzazioni esclusive edistinguiamo fra totali e parziali
24/05/2006 71
Persona
Uomo DonnaUomo Donna
24/05/2006 72
Motocicletta Automobile
Veicolo
24/05/2006 73
Studente Lavoratore
Persona
24/05/2006 74
Altre proprietAltre proprietàà
• possono esistere gerarchie a più livelli emultiple generalizzazioni allo stesso livello
• un'entità può essere inclusa in più gerarchie,come genitore e/o come figlia
• se una generalizzazione ha solo un’entitàfiglia si parla di sottoinsieme
• alcune configurazioni non hanno senso• il genitore di una generalizzazione totale può
non avere identificatore, purché …
24/05/2006 75
EsercizioEsercizio
• Le persone hanno CF, cognome ed età; gliuomini anche la posizione militare; gliimpiegati hanno lo stipendio e possonoessere segretari, direttori o progettisti (unprogettista può essere anche responsabiledi progetto); gli studenti (che non possonoessere impiegati) un numero di matricola;esistono persone che non sono néimpiegati né studenti (ma i dettagli non ciinteressano)
24/05/2006 76
Segretario Direttore Progettista
Responsabile
PersonaCF
Cognome
Età
Uomo Donna
Militare
Impiegato Studente
Stipendio Matr.
24/05/2006 77
Documentazione associata agli schemiDocumentazione associata agli schemiconcettualiconcettuali
• dizionario dei dati• entità• relationship
• vincoli non esprimibili
24/05/2006 78
(1,1)(0,1)
(0,N)(0,1)
(0,1)(1,1)
(1,N)
(0,N)
(1,N)
(1,N)
CittàIndirizzo
Telefono
Dipartimento
Composizione
Sede
Direzione
Afferenza
Impiegato
Progetto
Partecipazione
Nome
Nome
Cognome
Budget
Data
Via
CAP
Codice
24/05/2006 79
Dizionario dei dati (entitDizionario dei dati (entitàà))
Entità Descrizione Attributi IdentificatoreImpiegato Dipendente
dell'aziendaCodice,Cognome,Stipendio
Codice
Progetto Progettiaziendali
Nome,Budget
Nome
Dipartimento Strutturaaziendale
Nome,Telefono
Nome,Sede
Sede Sededell'azienda
Città,Indirizzo
Città
24/05/2006 80
Relazioni Descrizione Componenti AttributiDirezione Direzione di un
dipartimentoImpiegato,Dipartimento
Afferenza Afferenza a undipartimento
Impiegato,Dipartimento
Data
Partecipazione Partecipazionea un progetto
Impiegato,Progetto
Composizione Composizionedell'azienda
Dipartimento,Sede
Dizionario dei dati (Dizionario dei dati (relationshiprelationship))
24/05/2006 81
Vincoli non esprimibiliVincoli non esprimibili
Vincoli di integrità sui dati(1) Il direttore di un dipartimento deve a afferire a tale
dipartimento(2) Un impiegato non deve avere uno stipendio
maggiore del direttore del dipartimento al qualeafferisce
(3) Un dipartimento con sede a Roma deve esserediretto da un impiegato con più di dieci anni dianzianità
(4) Un impiegato che non afferisce a nessundipartimento non deve partecipare a nessun unprogetto
Top Related