Progettazione di basi di dati
Metodologie e modelli
Progettazione di basi di dati
È una delle attività del processo di sviluppo dei sistemi
informativi
va quindi inquadrata in un contesto più generale:
il ciclo di vita dei sistemi informativi:


Progettazione ER
Insieme e sequenzializzazione delle attività svolte da analisti,
progettisti, utenti, nello sviluppo e nell’uso dei sistemi informativi
attività iterativa, quindi ciclo
21 December, 2015 - slide 2
Studio di fattibilità
Raccolta e analisi
dei requisiti
Progettazione
Realizzazione
Validazione e
collaudo
Funzionamento
Progettazione ER
21 December, 2015 - slide 3
Fasi (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
Si aggiunge la PROTOTIPAZIONE che può portare a

Progettazione ER
Modifica dei requisiti
21 December, 2015 - slide 4
La progettazione di un sistema informativo riguarda due
aspetti:
progettazione dei dati
progettazione delle applicazioni
Ma:
 i dati hanno un ruolo centrale

Progettazione ER
i dati sono più stabili
21 December, 2015 - slide 5
Studio di fattibilità
Raccolta e analisi
dei requisiti
Progettazione
dei dati
Realizzazione
Validazione e
collaudo
Funzionamento
Progettazione ER
21 December, 2015 - slide 6
Requisiti della base di dati
“CHE COSA”:
analisi
Progettazione
concettuale
Schema concettuale
Progettazione
logica
Schema logico
“COME”:
progettazione
Progettazione
fisica
Schema fisico
Progettazione ER
21 December, 2015 - slide 9
Modello dei dati
insieme di costrutti utilizzati per organizzare i dati di interesse
e descriverne la dinamica
componente fondamentale: meccanismi di strutturazione (o
costruttori di tipo)
come nei linguaggi di programmazione esistono meccanismi
che permettono di definire nuovi tipi, così ogni modello dei
dati prevede alcuni costruttori
ad esempio, il modello relazionale prevede il costruttore
relazione, che permette di definire insiemi di record omogenei
Progettazione ER
21 December, 2015 - slide 11
Schemi e istanze
In ogni base di dati esistono:

lo schema, sostanzialmente invariante nel tempo, che ne descrive la struttura
(aspetto intensionale)
 nel modello relazionale, le intestazioni delle tabelle

l’istanza, i valori attuali, che possono cambiare anche molto rapidamente (aspetto
estensionale)
 nel modello relazionale, il “corpo” di ciascuna tabella
Progettazione ER
21 December, 2015 - slide 12
Due tipi (principali) di modelli
modelli logici: utilizzati nei DBMS esistenti per
l’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 progettazione
il più noto è il modello Entity-Relationship
Progettazione ER
21 December, 2015 - slide 13
Modelli concettuali, perché?
Proviamo a modellare una applicazione definendo
direttamente lo schema logico della base di dati:




Progettazione ER
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
21 December, 2015 - slide 14
Modelli concettuali, perché?
servono per ragionare sulla realtà di interesse,
indipendentemente dagli aspetti realizzativi
permettono di rappresentare le classi di dati di interesse e
le loro correlazioni
prevedono efficaci rappresentazioni grafiche (utili anche
per documentazione e comunicazione)
Progettazione ER
21 December, 2015 - slide 15
Architettura (semplificata) di un DBMS
utente
Schema logico
Schema interno
BD
Progettazione ER
21 December, 2015 - slide 16
Progettazione
concettuale
Progettazione
logica
Progettazione
fisica
Progettazione ER
21 December, 2015 - slide 17
Modello Entity-Relationship
(Entità-Relazione)
Il più diffuso modello concettuale


Progettazione ER
Ne esistono molte versioni,
(più o meno) diverse l’una dall’altra
21 December, 2015 - slide 18
I costrutti del modello E-R






Progettazione ER
Entità
Relationship
Attributo
Identificatore
Generalizzazione
….
21 December, 2015 - slide 19
Entità
Classe di oggetti (fatti, persone, cose) della applicazione di
interesse con proprietà comuni e con esistenza
“autonoma”
Esempi:

Progettazione ER
impiegato, città, conto corrente, ordine, fattura
21 December, 2015 - slide 20
Relationship
Legame logico fra due o più entità, rilevante
nell’applicazione di interesse
Esempi:


Progettazione ER
Residenza (fra persona e città)
Esame (fra studente e corso)
21 December, 2015 - slide 21
Uno schema E-R, graficamente
Studente
Progettazione ER
Esame
Corso
21 December, 2015 - slide 22
Entità
Classe di oggetti (fatti, persone, cose) della applicazione di
interesse con proprietà comuni e con esistenza
“autonoma”
Esempi:

Progettazione ER
impiegato, città, conto corrente, ordine, fattura
21 December, 2015 - slide 23
Entità: 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 le entità, non le
singole istanze (“astrazione”)
Progettazione ER
21 December, 2015 - slide 24
Rappresentazione grafica di entità
Progettazione ER
Impiegato
Dipartimento
Città
Vendita
21 December, 2015 - slide 25
Entità, commenti
Ogni entità ha un nome che la identifica univocamente nello
schema:

nomi espressivi

opportune convenzioni
 singolare
Progettazione ER
21 December, 2015 - slide 26
Relationship
Legame logico fra due o più entità, rilevante
nell’applicazione di interesse
Esempi:


Residenza (fra persona e città)
Esame (fra studente e corso)
Chiamata anche:

Progettazione ER
relazione, correlazione, associazione
21 December, 2015 - slide 27
Rappresentazione grafica
di relationship
Studente
Esame
Corso
Impiegato
Residenza
Città
Progettazione ER
21 December, 2015 - slide 28
Relationship, commenti
Ogni relationship ha un nome che la identifica
univocamente nello schema:


nomi espressivi
opportune convenzioni
 singolare
 sostantivi invece che verbi (se possibile)
Progettazione ER
21 December, 2015 - slide 29
Esempi di occorrenze
E1
E2
S1
E3
S2
C2
S3
S4
Studente
Progettazione ER
C1
E4
C3
Corso
21 December, 2015 - slide 30
Relationship, occorrenze
Una occorrenza di una relationship binaria è coppia di
occorrenze di entità, una per ciascuna entità coinvolta
Una occorrenza di una relationship n-aria è una n-upla di
occorrenze di entità, una per ciascuna entità coinvolta
Nell'ambito di una relationship non ci possono essere
occorrenze (coppie, ennuple) ripetute
Progettazione ER
21 December, 2015 - slide 31
Due relationship sulle stesse entità
Sede di
lavoro
Impiegato
Progettazione ER
Residenza
Città
21 December, 2015 - slide 33
Relationship n-aria
Fornitore
Fornitura
Prodotto
Dipartimento
Progettazione ER
21 December, 2015 - slide 34
Relationship ricorsiva:
coinvolge “due volte” la stessa entità
Conoscenza
Persona
Progettazione ER
21 December, 2015 - slide 35
Relationship ricorsiva con “ruoli”
Successione
Successore
Progettazione ER
Presidente
Predecessore
21 December, 2015 - slide 36
Esempi di occorrenze
successore:S2,predecessore: S3
successore:S1,predecessore: S2
S2
S3
Successore
Progettazione ER
Predecessore
S1
21 December, 2015 - slide 37
Relationship ternaria ricorsiva
Superficie
Migliore
Peggiore
Confronto
Tennista
Progettazione ER
21 December, 2015 - slide 38
Esempi di occorrenze
S1
T1 è migliore di T2 su S2
S2
T2 è migliore di T1 su S1
T3 è migliore di T2 su S1
T1
T2
T3
Progettazione ER
21 December, 2015 - slide 39
Attributo
Proprietà elementare di un’entità o di una relationship, di
interesse ai fini dell’applicazione
Associa ad ogni occorrenza di entità o relationship un
valore appartenente a un insieme detto dominio
dell’attributo
Progettazione ER
21 December, 2015 - slide 40
Attributi, rappresentazione grafica
Cognome
Nome Data
Studente
Matricola
Progettazione ER
Voto
Esame
Titolo
Corso
Codice
21 December, 2015 - slide 41
Esempi di occorrenze
Matricola: 34567
Data: 25/07/2004
Cognome: Rossi
Voto: 26
Nome: Mario
Codice: Inf205
Titolo: Basi di dati
E1
E2
S1
C1
S2
C2
Matricola: 46742
Cognome: Neri
Nome: Piero
Esame
Studente
Progettazione ER
Corso
21 December, 2015 - slide 42
Attributi composti
Raggruppano attributi di una medesima entità o
relationship che presentano affinità nel loro significato o
uso
Esempio:

Progettazione ER
Via, Numero civico e CAP formano un Indirizzo
21 December, 2015 - slide 43
Rappresentazione grafica
Cognome
Impiegato
Età
Indirizzo
Via
Numero
CAP
Progettazione ER
21 December, 2015 - slide 44
Cognome
Telefono
Direzione
Impiegato
Dipartimento
Afferenza
Codice
Nome
Composizione
Partecipazione
Data
Progetto
Budget
Progettazione ER
Nome
Sede
Via
Indirizzo
CAP
Città
21 December, 2015 - slide 45
Altri costrutti del modello E-R
Cardinalità


di relationship
di attributo
Identificatore


interno
esterno
Generalizzazione
Progettazione ER
21 December, 2015 - slide 46
Cardinalità di relationship
Coppia di valori associati a ogni entità che partecipa a una
relationship
specificano il numero minimo e massimo di occorrenze
delle relationship cui ciascuna occorrenza di una entità
può partecipare
Progettazione ER
21 December, 2015 - slide 47
Esempio di cardinalità
(1,5)
Impiegato
Progettazione ER
(0,50)
Assegnamento
Incarico
21 December, 2015 - slide 48
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:

Progettazione ER
“N” non pone alcun limite
21 December, 2015 - slide 49
Occorrenze di Residenza
R1
S1
C1
S2
S3
C2
R2
S4
R3
R4
Studente
Progettazione ER
C3
C4
Città
21 December, 2015 - slide 50
Cardinalità di Residenza
(1,1)
Studente
Progettazione ER
(0,N)
Residenza
Città
21 December, 2015 - slide 51
Tipi di relationship
Con riferimento alle cardinalità massime, abbiamo
relationship:



Progettazione ER
uno a uno
uno a molti
molti a molti
21 December, 2015 - slide 52
Relationship “molti a molti”
(0,N)
Studente
(0,N)
Corso
Esame
(0,N)
Montagna
(1,N)
Scalata
Alpinista
(1,N)
Macchinista
Progettazione ER
(1,N)
Abilitazione
Locomotore
21 December, 2015 - slide 53
Relationship “uno a molti”
(0,1)
Persona
(0,N)
Impiego
Azienda
(1,1)
Cinema
(0,N)
Ubicazione
Località
(1,1)
Comune
Progettazione ER
(1,N)
Ubicazione
Provincia
21 December, 2015 - slide 54
Due avvertenze
Attenzione al "verso" nelle relationship uno a molti
le relationship obbligatorie-obbligatorie sono molto rare
Progettazione ER
21 December, 2015 - slide 55
Relationship “uno a uno”
(0,1)
Professore
Professore
di ruolo
Professore
di ruolo
Progettazione ER
(0,1)
Cattedra
Titolarità
(1,1)
(0,1)
Cattedra
Titolarità
(1,1)
(1,1)
Titolarità
Cattedra
coperta
21 December, 2015 - slide 56
Cardinalità di attributi
E’ possibile associare delle cardinalità anche agli attributi, con due
scopi:


Progettazione ER
indicare opzionalità ("informazione incompleta")
indicare attributi multivalore
21 December, 2015 - slide 57
Rappresentazione grafica
(0,N)
Nome
Impiegato
(0,1)
Progettazione ER
Telefono
Numero patente
21 December, 2015 - slide 58
Identificatore di una entità
“strumento” per l’identificazione univoca delle occorrenze
di un’entità
costituito da:

attributi dell’entità


(attributi +) entità esterne attraverso relationship

Progettazione ER
identificatore interno
identificatore esterno
21 December, 2015 - slide 59
Identificatori interni
Targa
Automobile
Modello
Data Nascita
Persona
Indirizzo
Progettazione ER
Cognome
Nome
21 December, 2015 - slide 60
Identificatore esterno
Cognome Matricola
Nome
(1,1)
Studente
Anno di corso
Progettazione ER
(0,N)
Iscrizione
Università
Indirizzo
21 December, 2015 - slide 61
Alcune osservazioni
ogni entità deve possedere almeno un identificatore, ma
può averne in generale più di uno
una identificazione esterna è possibile solo attraverso una
relationship a cui l’entità da identificare partecipa con
cardinalità (1,1)
perché non parliamo degli identificatori delle relationship?
Progettazione ER
21 December, 2015 - slide 62
(0,1)
Cognome
(0,1)
Telefono
Direzione
Impiegato
(0,N)
(1,1)
(0,N)
Codice
(1,N)
Progettazione ER
Nome
Nome
(1,1)
Data
Progetto
Dipartimento
Afferenza
(0,1)
Partecipazione
Budget
(1,N)
Composizione
(1,N)
Sede
Via
Indirizzo
CAP
Città
21 December, 2015 - slide 63
Generalizzazione
mette in relazione una o più entità E1, E2, ..., En con una
entità E, che le comprende come caso particolare


Progettazione ER
E è generalizzazione di E1, E2, ..., En
E1, E2, ..., En sono specializzazioni (o sottotipi) di E
21 December, 2015 - slide 66
Rappresentazione grafica
Dipendente
Impiegato
Progettazione ER
Funzionario
Dirigente
21 December, 2015 - slide 67
Proprietà delle 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
Progettazione ER
21 December, 2015 - slide 68
Città
(0,N)
Nascita
(1,1)
Persona
Codice
fiscale
Nome
Età
Stipendio
Lavoratore
Progettazione ER
Studente
21 December, 2015 - slide 69
Ereditarietà
tutte le proprietà (attributi, relationship, altre
generalizzazioni) dell’entità genitore vengono ereditate
dalle entità figlie e non rappresentate esplicitamente
Progettazione ER
21 December, 2015 - slide 70
Tipi 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 e distinguiamo fra totali e
parziali
Progettazione ER
21 December, 2015 - slide 71
Persona
Disoccupato
Progettazione ER
Lavoratore
21 December, 2015 - slide 72
Persona
Uomo
Progettazione ER
Donna
21 December, 2015 - slide 73
Esercizio
Le persone hanno CF, cognome ed età; gli uomini
anche la posizione militare; gli impiegati hanno lo
stipendio e possono essere segretari, direttori o
progettisti (un progettista può essere anche
responsabile di progetto); gli studenti (che non
possono essere impiegati) un numero di matricola;
esistono persone che non sono né impiegati né
studenti (ma i dettagli non ci interessano)
Progettazione ER
21 December, 2015 - slide 75
CF
Persona
Cognome
Uomo
Stipendio
Donna
Età
Matr.
Impiegato
Studente
Direttore
Progettista
Militare
Segretario
Responsabile
Progettazione ER
21 December, 2015 - slide 76
Documentazione associata agli schemi
concettuali

dizionario dei dati
 entità
 relationship

Progettazione ER
vincoli non esprimibili
21 December, 2015 - slide 77
(0,1)
(1,1)
Direzione
Cognome
Impiegato
Codice
(0,N)
(0,1)
(0,N)
Partecipazione
Afferenza
(0,1)
Data
(1,N)
Progetto
Budget
Progettazione ER
Nome
Telefono
(1,N)
Dipartimento
Nome
(1,1)
Composizione
(1,N)
Sede
Via
Indirizzo
CAP
Città
21 December, 2015 - slide 78
Dizionario dei dati (entità)
Entità
Impiegato
Progetto
Descrizione
Dipendente
dell'azienda
Progetti
aziendali
Dipartimento Struttura
aziendale
Sede
Sede
dell'azienda
Progettazione ER
Attributi
Codice,
Cognome,
Stipendio
Nome,
Budget
Nome,
Telefono
Città,
Indirizzo
Identificatore
Codice
Nome
Nome,
Sede
Città
21 December, 2015 - slide 79
Dizionario dei dati (relationship)
Relazioni
Direzione
Descrizione
Direzione di un
dipartimento
Afferenza
Afferenza a un
dipartimento
Partecipazione Partecipazione
a un progetto
Composizione Composizione
dell'azienda
Progettazione ER
Componenti Attributi
Impiegato,
Dipartimento
Impiegato,
Data
Dipartimento
Impiegato,
Progetto
Dipartimento,
Sede
21 December, 2015 - slide 80
Vincoli 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 quale
afferisce
(3) Un dipartimento con sede a Roma deve essere
diretto da un impiegato con più di dieci anni di
anzianità
(4) Un impiegato che non afferisce a nessun
dipartimento non deve partecipare a nessun un
progetto
Progettazione ER
21 December, 2015 - slide 81
Modellazione dei dati in UML
UML viene talvolta utilizzato in alternativa al modello ER
per la rappresentazione concettuale dei dati
Si fa uso dei diagrammi delle classi
Cambia la rappresentazione diagrammatica ma non
l’approccio alla progettazione
Vediamo come sia possibile rappresentare schemi
concettuali con UML
Progettazione ER
21 December, 2015 - slide 82
Classi
Impiegato
Codice
Cognome
Stipendio
Età
Progettazione ER
Progetto
Nome
Budget
Data consegna
21 December, 2015 - slide 83
Associazioni
Studente
Matricola
Corso
Esame
Anno Iscrizione
Nome
Anno corso
Sede di lavoro
Impiegato
Cognome
Stipendio
Età
Progettazione ER
Città
Residenza
Nome
Numero abitanti
21 December, 2015 - slide 84
Classe di associazione
Studente
Corso
Matricola
Nome
Anno Iscrizione
Anno corso
Esame
Data
Voto
Progettazione ER
21 December, 2015 - slide 85
Associazione ternaria
Dipartimento
Nome
Telefono
Fornitore
Prodotto
Denominazione
Codice
Indirizzo
Prezzo
Fornitura
Quantità
Progettazione ER
21 December, 2015 - slide 86
Reificazione di associazione
Dipartimento
Nome
Telefono
Fornitore
Denominazione
Indirizzo
Progettazione ER
Fornitura
Quantità
Prodotto
Codice
Prezzo
21 December, 2015 - slide 87
Aggregazione e composizione
Progettazione ER
Team
Tecnico
Azienda
Filiale
21 December, 2015 - slide 88
Associazioni con molteplicità
Ordine
Persona
Turista
Progettazione ER
1
Vendita

Residenza

Prenotazione
0..1
Fattura
Città
1..
Viaggio
21 December, 2015 - slide 89
Identificatori
Automobile
Targa {id}
Modello
Colore
Progettazione ER
Persona
Data Nascita {id}
Cognome {id}
Nome {id}
Indirizzo
21 December, 2015 - slide 90
Identificatore esterno
Studente
Matricola {id}
Anno Iscrizione
Cognome
Università
1..
Iscrizione
<<identificante>>
1
Nome {id}
Città
Indirizzo
25/07/2009
Progettazione ER
21 December, 2015 - slide 91
Generalizzazioni
Persona
Professionista
Codice Fiscale {id}
Partita IVA {id}
Cognome
Indirizzo
Età
{parziale, esclusiva}
Uomo
Situazione militare
Progettazione ER
Donna
Avvocato
Ingegnere
Dottore
Specializzazione
21 December, 2015 - slide 92
Uno schema concettuale in UML
Direzione
1
0..1
Impiegato
Dipartimento
Codice {id}
0..1
1..
Cognome
Telefono 1..
Stipendio
Afferenza
Età
1..
Data afferenza
1..
Partecipazione
Composizione
<<identificante>>
Data inizio

1
Progetto
Progettazione ER
Nome {id}
Nome {id}
Progetti aziendali
Budget
nei quali lavorano
Data consegna 0..1
gli impiegati
Sede
Città {id}
Indirizzo
21 December, 2015 - slide 93
Esercizio: biblioteca
Definire uno schema E-R per una biblioteca, con le seguenti
specifiche:




oggetto dei prestiti sono esemplari (detti anche copie) di singoli volumi,
identificati attraverso un numero di inventario;
ogni volume è relativo ad una specifica edizione (che può essere
articolata in più volumi, anche in modo diverso dalle altre edizioni) di
un'opera
un volume può essere presente in più copie
una edizione è caratterizzata dall'opera, dalla collana e dall'anno
 riassumendo ed esemplificando, è possibile prendere in prestito la seconda
copia del terzo volume de “I Miserabili”, edizione Mondadori, collana Oscar,
del 1975




Progettazione ER
ogni collana ha un nome e un codice e un editore
ogni editore ha un nome e un codice
ogni opera ha un titolo, un autore e un anno di prima pubblicazione
per ogni prestito in corso (quelli conclusi non interessano), sono
rilevanti la data prevista di restituzione e l'utente (che può avere più
volumi in prestito contemporaneamente), con codice identificativo,
nome, cognome e recapito telefonico
21 December, 2015 - slide 94
Esercizio: biblioteca
Codice
Editore
Volume
Nome
(0,N)
NumInv
(1,1)
(0,N)
(1,1)
Copia
(0,1)
Numero
Prestito
(1,1)
Collana
(0,N)
(0,N)
(1,1)
Edizione
Data
NVolumi
Anno
(0,N)
Utente
(1,1)
Codice
Nome
Codice
(0,N)
Titolo
Opera
Progettazione ER
Autore
Nome
Cognome
Telefono
Anno
21 December, 2015 - slide 95
Scarica

21_ProgettazioneDB_ER - Studenti Dipartimento di Ingegneria