Dalla progettazione concettuale a quella logica
Dario Pescini
Dip. di Statistica
Università di Milano-Bicocca
[email protected]
.
.
.
.
.
.
Outline
1.
2.
Progettazione concettuale
Verso il modello relazionale
Scelta identificatori principali
Traduzione schema E-R → modello Relazionale
.
.
.
.
.
.
Dal linguaggio naturale alle specifiche
Si vuole realizzare una base di dati per una società che eroga corsi, di cui
vogliamo rappresentare i dati dei partecipanti ai corsi e dei docenti. Per i
partecipanti (circa 5000), identificati da un codice, si vuole memorizzare
il codice fiscale, il cognome, l’età, il sesso, il luogo di nascita, il nome
dei loro attuali datori di lavoro, i posti dove hanno lavorato in precedenza
insieme al periodo, l’indirizzo e il numero di telefono, i corsi che hanno
frequentato (i corsi sono in tutto 200) e il giudizio finale. 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 un codice, un
titolo e possono avere varie edizioni con date di inizio e fine e numero di
partecipanti. Se gli studenti sono liberi professionisti, vogliamo conoscere
l’area di interesse, se lo possiedono, il titolo. Per quelli che lavorano alle
dipendenze di altri, vogliamo conoscere il loro livello e la posizione ricoperta. Per gli insegnanti (circa 300), rappresentiamo il cognome, l’età, il
posto dove sono nati, il nome del corso che insegnano, quelli che hanno insegnato nel passato e quelli che possono insegnare. Rappresentiamo anche
tutti i loro recapiti telefonici. I docenti possono essere dipendenti interni
della società o collaboratori esterni.
.
.
.
.
.
.
Ambiguità
Si vuole realizzare una base di dati per una società che eroga corsi, di cui
vogliamo rappresentare i dati dei partecipanti ai corsi e dei docenti. Per i
partecipanti (circa 5000), identificati da un codice, si vuole memorizzare
il codice fiscale, il cognome, l’età, il sesso, il luogocittà di nascita, il nome dei loro attuali datori di lavoro, i postidatori dove hanno lavorato in
precedenza insieme al periododata di inizio e fine rapporto, l’indirizzo e il
numero di telefono del datore, i corsi che hanno frequentato (i corsi sono
in tutto 200) e il giudizio finalevoto in decimi. Rappresentiamo anche i
seminariedizione di corso che stanno attualmente frequentando e, per ogni
giornodella settimana, i luoghiaula e le ore dove sono tenute le lezioni. I
corsi hanno un codice, un titolo e possono avere varie edizioni con date
di inizio e fine e numero di partecipanti. Se gli studentipartecipanti sono
liberi professionisti, vogliamo conoscere l’area di interesse, se lo possiedono, il titolo professionale. Per quelli che lavorano alle dipendenze di altri,
vogliamo conoscere il loro livello e la posizione ricoperta. Per gli insegnantidocenti (circa 300), rappresentiamo il cognome, l’età, il postocittà dove
sono nati, il nometitolo del corso che insegnano, quelli che hanno insegnato
nel passato e quelli che possono insegnare. Rappresentiamo anche tutti i
loro recapitinumeri telefonici. I docenti possono essere dipendenti interni
della società o collaboratori esterni.
.
.
.
.
.
.
Nuovo Testo
Si vuole realizzare una base di dati per una società che eroga corsi, di cui
vogliamo rappresentare i dati dei partecipanti ai corsi e dei docenti. Per i
partecipanti (circa 5000), identificati da un codice, si vuole memorizzare
il codice fiscale, il cognome, l’età, il sesso, la città di nascita, il nome
dei loro attuali datori di lavoro, i datori dove hanno lavorato in precedenza
insieme alla data di inizio e fine rapporto, l’indirizzo e il numero di telefono
del datore, i corsi che hanno frequentato (i corsi sono in tutto 200) e il
voto in decimi. Rappresentiamo anche le edizione del corso che stanno
attualmente frequentando e, per ogni giorno della settimana, le aule e le
ore dove sono tenute le lezioni. I corsi hanno un codice, un titolo e possono
avere varie edizioni con date di inizio e fine e numero di partecipanti.
Se i partecipanti sono liberi professionisti, vogliamo conoscere l’area di
interesse, se lo possiedono, il titolo professionale. Per quelli che lavorano
alle dipendenze di altri, vogliamo conoscere il loro livello e la posizione
ricoperta. Per i docenti (circa 300), rappresentiamo il cognome, l’età, la
città dove sono nati, il titolo del corso che insegnano, quelli che hanno
insegnato nel passato e quelli che possono insegnare. Rappresentiamo
anche tutti i loro numeri telefonici. I docenti possono essere dipendenti
interni della società o collaboratori esterni.
.
.
.
.
.
.
Identificare i concetti
Si vuole realizzare una base di dati per una società che eroga corsi,
di cui vogliamo rappresentare i dati dei partecipanti ai corsi e dei
docenti. Per i partecipanti (circa 5000), identificati da un codice, si
vuole memorizzare il codice fiscale, il cognome, l’età, il sesso, la città
di nascita, il nome dei loro attuali datori di lavoro, i datori dove hanno
lavorato in precedenza insieme alla data di inizio e fine rapporto, l’indirizzo
e il numero di telefono del datore, i corsi che hanno frequentato (i corsi
sono in tutto 200) e il voto in decimi. Rappresentiamo anche le edizione
del corso che stanno attualmente frequentando e, per ogni giorno della
settimana, le aule e le ore dove sono tenute le lezioni. I corsi hanno un
codice, un titolo e possono avere varie edizioni con date di inizio e fine e
numero di partecipanti. Se i partecipanti sono liberi professionisti, vogliamo
conoscere l’area di interesse, se lo possiedono, il titolo professionale. Per
quelli che lavorano alle dipendenze di altri, vogliamo conoscere il loro livello
e la posizione ricoperta. Per i docenti (circa 300), rappresentiamo il
cognome, l’età, la città dove sono nati, il titolo del corso che insegnano,
quelli che hanno insegnato nel passato e quelli che possono insegnare.
Rappresentiamo anche tutti i loro numeri telefonici. I docenti possono
essere dipendenti interni della società o collaboratori esterni.
.
.
.
.
.
.
Raggruppare le informazioni
Si vuole realizzare una base di dati per una società che eroga corsi, di cui
vogliamo rappresentare i dati dei partecipanti ai corsi e dei docenti.
Per i partecipanti (circa 5000), identificati da un codice, si vuole memorizzare il
codice fiscale, il cognome, l’età, il sesso, la città di nascita, il nome dei loro
attuali datori di lavoro, i datori dove hanno lavorato in precedenza insieme alla
data di inizio e fine rapporto, i corsi che hanno frequentato e il voto in decimi.
Rappresentiamo anche le edizione del corso che stanno attualmente
frequentando
il nome, l’indirizzo e il numero di telefono del datore,
i corsi (sono in tutto 200) e, per ogni giorno della settimana, le aule e le ore
dove sono tenute le lezioni. I corsi hanno un codice, un titolo e possono avere
varie edizioni con date di inizio e fine e numero di partecipanti.
Se i partecipanti sono liberi professionisti, vogliamo conoscere l’area di interesse,
se lo possiedono, il titolo professionale. Per quelli che lavorano alle dipendenze
di altri, vogliamo conoscere il loro livello e la posizione ricoperta.
Per i docenti (circa 300), rappresentiamo il cognome, l’età, la città dove sono
nati, il titolo del corso che insegnano, quelli che hanno insegnato nel passato e
quelli che possono insegnare. Rappresentiamo anche tutti i loro numeri
telefonici. I docenti possono essere dipendenti interni della società o
collaboratori esterni.
.
.
.
.
.
.
Schema scheletro
Partecipante
Partecipazione
Corso
Docente
Docenza
.
.
.
.
.
.
Docente
Per i docenti (circa 300), rappresentiamo il cognome, l’età, la città dove
sono nati, il titolo del corso che insegnano, quelli che hanno insegnato nel
passato e quelli che possono insegnare. Rappresentiamo anche tutti i loro
numeri telefonici. I docenti possono essere dipendenti interni della società
o collaboratori esterni.
Cognome
CF
Telefono
Città Nascita
Età
(1,N)
Docente
(e t)
Interno
Esterno
.
.
.
.
.
.
Partecipante
Per i partecipanti (circa 5000), identificati da un codice, si vuole
memorizzare il codice fiscale, il cognome, l’età, il sesso, la città di nascita,
il nome dei loro attuali datori di lavoro, i datori dove hanno lavorato in
precedenza insieme alla data di inizio e fine rapporto, i corsi che hanno
frequentato e il voto in decimi. Rappresentiamo anche le edizione del
corso che stanno attualmente frequentando
Cognome
Sesso
Città Nascita
Età
CF
Codice
Partecipante
(e p)
Dipendente
Posizione
Livello
Professionista
Area
Titolo Prof.
.
.
.
.
.
.
Datore
il nome, l’indirizzo e il numero di telefono del datore,
Indirizzo
Telefono
Nome
Datore
.
.
.
.
.
.
Partecipante
Per i partecipanti (circa 5000), identificati da un codice, si vuole memorizzare il
codice fiscale, il cognome, l’età, il sesso, la città di nascita, il nome dei loro
attuali datori di lavoro, i datori dove hanno lavorato in precedenza insieme alla
data di inizio e fine rapporto, i corsi che hanno frequentato e il voto in decimi.
Rappresentiamo anche le edizione del corso che stanno attualmente
frequentando
Indirizzo
Telefono
Nome
Datore
(0,N)
(0,N)
Data inizio
Data inizio
Impiego
corrente
Impiego
passato
Data fine
(0,N)
(1,1)
Codice
CF
Cognome
Età
Partecipante
Sesso
Città Nascita
(e p)
Dipendente
Posizione
Livello
Professionista
Titolo. Prof.
Area
.
.
.
.
.
Corso
i corsi (sono in tutto 200) e, per ogni giorno della settimana, le aule e le ore
dove sono tenute le lezioni. I corsi hanno un codice, un titolo e possono avere
varie edizioni con date di inizio e fine e numero di partecipanti.
Orario
Aula
Giorno
Lezione
(1,1)
Composizione
(1,N)
Edizione
N. partecipanti
Data fine
Data inizio
(1,1)
Tipologia
(0,N)
Codice
Nome
Corso
.
.
.
.
.
.
Schema moduli
Partecipante
Partecipazione
Corso
Orario
Indirizzo
Docente
Docenza
Aula
Giorno
Telefono
Nome
Lezione
Datore
(1,1)
(0,N)
(0,N)
Data inizio
Composizione
Data inizio
Impiego
corrente
Impiego
passato
Cognome
CF
Città Nascita
(1,N)
Docente
(0,N)
(1,1)
Telefono
Età
(1,N)
Data fine
Edizione
N. partecipanti
Data fine
(e t)
Codice
Data inizio
CF
Cognome
Età
Partecipante
Interno
(1,1)
Esterno
Sesso
Città Nascita
Dipendente
Posizione
Tipologia
(e t)
Livello
Professionista
Titolo Prof.
Area
(0,N)
Codice
Città Nascita
Corso
.
.
.
.
.
.
Docente Corso
Per i docenti (circa 300), rappresentiamo il cognome, l’età, la città dove sono
nati, il titolo del corso che insegnano, quelli che hanno insegnato nel passato
e quelli che possono insegnare. Rappresentiamo anche tutti i loro numeri
telefonici. I docenti possono essere dipendenti interni della società o
collaboratori esterni.
Orario
Aula
Giorno
Lezione
(1,1)
Composizione
(1,N)
Edizione
N. partecipanti
Data fine
Data inizio
Cognome
(1,1)
Telefono
Città Nascita
Età
CF
(1,N)
Docente
Tipologia
(0,N)
(e t)
Codice
Nome
Corso
Interno
Esterno
.
.
.
.
.
.
Docente Corso
Per i docenti (circa 300), rappresentiamo il cognome, l’età, la città dove sono
nati, il titolo del corso che insegnano, quelli che hanno insegnato nel passato
e quelli che possono insegnare. Rappresentiamo anche tutti i loro numeri
telefonici. I docenti possono essere dipendenti interni della società o
collaboratori esterni.
Orario
Aula
Giorno
Lezione
(0,1)
(1,1)
Docenza
passata
(0,N)
Composizione
(1,N)
(0,1)
Edizione
Docenza
corrente
Cognome
(0,1)
CF
Telefono
Città Nascita
Età
(1,N)
N. partecipanti
Docente
Data fine
Data inizio
(e t)
(1,1)
(1,N)
Tipologia
Abilitazione
(1,N)
Interno
Esterno
(0,N)
Codice
Nome
Corso
.
.
.
.
.
.
Docente Corso
Per i docenti (circa 300), rappresentiamo il cognome, l’età, la città dove sono
nati, il titolo del corso che insegnano, quelli che hanno insegnato nel passato e
quelli che possono insegnare. Rappresentiamo anche tutti i loro numeri
telefonici. I docenti possono essere dipendenti interni della società o
collaboratori esterni.
Orario
Aula
Giorno
Lezione
Telefono
(0,1)
(1,1)
Docenza
passata
(0,N)
(1,1)
Composizione
Intestatario
(1,N)
(0,1)
Edizione
Docenza
corrente
Cognome
(0,1)
CF
(1,N)
Età
Città Nascita
N. partecipanti
Docente
Data fine
Data inizio
(e t)
(1,1)
(1,N)
Tipologia
Abilitazione
(1,N)
Interno
Esterno
(0,N)
Codice
Nome
Corso
.
.
.
.
.
.
Partecipante Corso
Per i partecipanti (circa 5000), identificati da un codice, si vuole memorizzare il
codice fiscale, il cognome, l’età, il sesso, la città di nascita, il nome dei loro
attuali datori di lavoro, i datori dove hanno lavorato in precedenza insieme alla
data di inizio e fine rapporto, i corsi che hanno frequentato e il voto in decimi.
Rappresentiamo anche le edizione del corso che stanno attualmente
frequentando
Indirizzo
Telefono
Orario
Aula
Giorno
Nome
Lezione
Datore
(1,1)
(0,N)
(0,N)
Data inizio
Composizione
Data inizio
Impiego
corrente
Impiego
passato
(1,N)
Data fine
N. partecipanti
Edizione
(0,N)
(1,1)
Data fine
Data inizio
Codice
CF
Cognome
Età
(1,1)
Partecipante
Tipologia
Sesso
Città Nascita
(e p)
(0,N)
Dipendente
Professionista
Codice
Posizione
Livello
Titolo Prof.
Area
.
Nome
Corso
.
.
.
.
.
Partecipante Corso
Per i partecipanti (circa 5000), identificati da un codice, si vuole memorizzare il
codice fiscale, il cognome, l’età, il sesso, la città di nascita, il nome dei loro
attuali datori di lavoro, i datori dove hanno lavorato in precedenza insieme alla
data di inizio e fine rapporto, i corsi che hanno frequentato e il voto in decimi.
Rappresentiamo anche le edizione del corso che stanno attualmente
frequentando
Indirizzo
Telefono
Nome
Orario
Aula
Giorno
Datore
Lezione
Votazione
(0,N)
(0,N)
Data inizio
Data inizio
Impiego
corrente
(0,N)
Impiego
passato
Partecipazione
passata
(1,1)
(0,N)
Composizione
Data fine
(1,N)
(0,N)
(1,1)
Codice
CF
Cognome
Età
(0,1)
Partecipante
Partecipazione
corrente
Edizione
(0,N)
N. partecipanti
Data fine
Data inizio
Sesso
Città Nascita
Dipendente
Posizione
(1,1)
(e p)
Livello
Tipologia
Professionista
Titolo Prof.
(0,N)
Area
Codice
Corso
Città Nascita
.
.
.
.
.
.
Schema E-R completo
Indirizzo
Telefono
Nome
Orario
Aula
Giorno
Datore
Telefono
Lezione
Votazione
(0,N)
(0,N)
Data inizio
Data inizio
Impiego
corrente
(0,N)
Impiego
passato
Partecipazione
passata
Docenza
passata
(0,1)
(1,1)
(0,N)
(0,N)
(1,1)
Composizione
Intestatario
Data fine
(1,N)
(0,N)
(1,1)
CF
Cognome
Età
(0,1)
Partecipante
Partecipazione
corrente
Edizione
(0,N)
Cognome
Docenza
corrente
(0,1)
Codice
N. partecipanti
(0,1)
Città Nascita
Docente
Data inizio
Sesso
(e t)
Città Nascita
(1,1)
(e p)
(1,N)
Dipendente
Posizione
(1,N)
Età
CF
Data fine
Livello
Tipologia
Professionista
Titolo Prof.
Abilitazione
(1,N)
Interno
Esterno
(0,N)
Area
Codice
Nome
Corso
.
.
.
.
.
.
Schema E-R completo
Indirizzo
Telefono
Nome
Orario
Aula
Giorno
Datore
Telefono
Lezione
Votazione
(0,N)
(0,N)
Data inizio
Data inizio
Impiego
corrente
(0,N)
Impiego
passato
Partecipazione
passata
Docenza
passata
(0,1)
(1,1)
(0,N)
(0,N)
(1,1)
Composizione
Intestatario
Data fine
(1,N)
(0,N)
(1,1)
CF
Cognome
(0,1)
Partecipante
Età
Partecipazione
corrente
Edizione
(0,N)
Cognome
Docenza
corrente
(0,1)
Codice
N. partecipanti
(0,1)
(1,N)
Città Nascita
Età
CF
Docente
Data fine
Data inizio
Sesso
(e t)
Città Nascita
(1,1)
(e p)
(1,N)
Dipendente
Posizione
Livello
Tipologia
Professionista
Titolo Prof.
Abilitazione
(1,N)
Interno
Esterno
(0,N)
Area
Codice
Nome
op.
op.
op.
op.
op.
Corso
1
2
3
4
5
inserisci un nuovo partecipante indicando tutti i suoi dati
assegna un partecipante ad una edizione di corso
inserisci un nuovo docente indicando tutti i suoi dati ed i corsi che può insegnare
assegna un docente abilitato ad una edizione di corso
stampa tutte le informazioni sulle edizioni passate di un corso con titolo, orari delle lezioni e
numero dei partecipanti
op. 6 stampa tutti i corsi offerti, con informazioni sui docenti che possono insegnarli
op. 7 per ogni docente, trova i partecipanti a tutti i corsi che eroga
op. 8 effettua una statistica su tutti i partecipanti a un corso con tutte le informazioni su di essi,
sull’edizione a cui hanno partecipato e la rispettiva votazione
.
.
.
.
.
.
Schema E-R completo
Indirizzo
Telefono
Nome
Orario
Aula
Giorno
Datore
Telefono
Lezione
(0,N)
(0,N)
Data inizio
Data inizio
Impiego
corrente
(1,1)
(1,1)
Impiego
passato
Composizione
Intestatario
Data fine
(1,N)
(0,N)
(1,1)
(0,1)
Votazione
Codice
Edizione
CF
Cognome
(0,N)
Partecipante
Età
Partecipazione
(1,N)
Cognome
(1,N)
Docenza
(1,N)
Città Nascita
Età
CF
N. partecipanti
Docente
Data fine
Data inizio
Sesso
(e t)
Città Nascita
(1,1)
(e p)
(1,N)
Dipendente
Posizione
Livello
Tipologia
Professionista
Titolo Prof.
Abilitazione
(1,N)
Interno
Esterno
(0,N)
Area
Codice
Nome
op.
op.
op.
op.
op.
Corso
1
2
3
4
5
inserisci un nuovo partecipante indicando tutti i suoi dati
assegna un partecipante ad una edizione di corso
inserisci un nuovo docente indicando tutti i suoi dati ed i corsi che può insegnare
assegna un docente abilitato ad una edizione di corso
stampa tutte le informazioni sulle edizioni passate di un corso con titolo, orari delle lezioni e
numero dei partecipanti
op. 6 stampa tutti i corsi offerti, con informazioni sui docenti che possono insegnarli
op. 7 per ogni docente, trova i partecipanti a tutti i corsi che eroga
op. 8 effettua una statistica su tutti i partecipanti a un corso con tutte le informazioni su di essi,
sull’edizione a cui hanno partecipato e la rispettiva votazione
.
.
.
.
.
.
Outline
1.
2.
Progettazione concettuale
Verso il modello relazionale
Scelta identificatori principali
Traduzione schema E-R → modello Relazionale
.
.
.
.
.
.
Scelta identificatori principali
Indirizzo
Telefono
Nome
Orario
Aula
Giorno
Datore
Telefono
Lezione
(0,N)
(0,N)
Data inizio
Data inizio
Impiego
corrente
(1,1)
(1,1)
Impiego
passato
Composizione
Intestatario
Data fine
(1,N)
(0,N)
(1,1)
(0,1)
Votazione
Codice
Edizione
CF
Cognome
Età
(0,N)
Partecipante
Partecipazione
(1,N)
Cognome
(1,N)
Docenza
Città Nascita
Docente
Data inizio
Sesso
(e t)
Città Nascita
(1,1)
(e p)
(1,N)
Dipendente
Posizione
(1,N)
Età
CF
N. partecipanti
Data fine
Livello
Tipologia
Professionista
Titolo Prof.
Abilitazione
(1,N)
Interno
Esterno
(0,N)
Area
Codice
Nome
Corso
attributi con valori nulli non possono costituire id. principali
sono da preferire identificatori composti da uno o pochi attributi
è da preferire un id. interno con pochi attributi ad uno esterno
è da preferire un id. coinvolto in più operazioni
se nessun attributo soddisfa le precedenti propietà se ne introduce uno nuovo: “codice”
.
.
.
.
.
.
Scelta identificatori principali
Indirizzo
Telefono
Nome
Orario
Aula
Giorno
Datore
Telefono
Lezione
(0,N)
(0,N)
Data inizio
Data inizio
Impiego
corrente
(1,1)
(1,1)
Impiego
passato
Composizione
Intestatario
Data fine
(1,N)
(0,N)
(1,1)
Votazione
Edizione
CF
Cognome
Età
(0,N)
Partecipante
(0,1)
Codice
Codice
Partecipazione
(1,N)
Cognome
(1,N)
Docenza
Città Nascita
Docente
Data inizio
Sesso
(e t)
Città Nascita
(1,1)
(e p)
(1,N)
Dipendente
Posizione
(1,N)
Età
CF
N. partecipanti
Data fine
Livello
Tipologia
Professionista
Titolo Prof.
Abilitazione
(1,N)
Interno
Esterno
(0,N)
Area
Codice
Nome
Corso
.
.
.
.
.
.
Outline
1.
2.
Progettazione concettuale
Verso il modello relazionale
Scelta identificatori principali
Traduzione schema E-R → modello Relazionale
.
.
.
.
.
.
Entità e Associazioni molti a molti
É il caso più generale:
∀ entità una relazione con lo stesso nome, stessi attributi e come chiave
l’identificatore principale
per l’associazione una relazione con lo stesso nome, stessi attributi e
come chiave gli identificatori delle entità coinvolte
Se attributi E-R sono opzionali (0,N) gli attributi della relazione possono
assumere valori nulli.
Per chiarezza del modello relazionale si possono effettuare ridenominazioni
Controllare l’esistenza di superchiavi ridondanti
AE11
E1
AE12
(X,N)
A E21 AE22
AR
R
(Y,N)
E2
E1 (AE11 , AE12 )
E2 (AE21 , AE22 )
ER (AE11 , AE21 , AER )
.
.
.
.
.
.
Entità e Associazione uno a molti
Possibile una variante al caso generale tramite accorpamento dell’associazione
all’entità del lato uno (X, 1) perché hanno stessa chiave.
Se lato uno (X, 1) ha cardinalità minima:
X = 0 originale e variante sono equivalenti
X = 1 la variante è da preferire
AE11
E1
AE12
(X,1)
A E21 AE22
AR
R
(Y,N)
(partecipazione opzionale)
(partecipazione obbligatoria)
E1 (AE11 , AE12 )
E2 (AE21 , AE22 )
ER (AE11 , AE21 , AER )
se X = 0
E1 (AE11 , AE12 , AE21 , AER )
E2 (AE21 , AE22 )
se X = 0, 1
E2
.
.
.
.
.
.
Entità con identificatore esterno
Da luogo a relazioni con chiavi che includono gli identificatori dell’entità esterna
Entità identificate esternamente hanno sempre cardinalità (1, 1) per le
associazioni a cui partecipano
AE12
E1
(1,1)
AE11
A E21 AE22
AR
R
(Y,N)
E2
E1 (AE11 , AE21 , AE12 , AER )
E2 (AE21 , AE22 )
.
.
.
.
.
.
Entità e Associazione uno a uno
E1 (AE11 , AE12 , AE21 , AE )
R
E2 (AE21 , AE22 )
oppure
se X = Y = 1
E1 (AE11 , AE12 )
AE11
E1
AE12
(X,1)
R
E2 (AE21 , AE22 , AE11 , AE )
R
A E21 AE22
AR
(Y,1)
E2
E1 (AE11 , AE12 , AE21 , AE )
R
se X = 1, Y = 0
E2 (AE21 , AE22 )
E1 (AE11 , AE12 )
E2 (AE21 , AE22 , AE11 , AE )
R
oppure
E1 (AE11 , AE12 , AE21 , AE )
R
E2 (AE21 , AE22 )
se X = Y = 0
oppure
E1 (AE11 , AE12 )
E2 (AE21 , AE22 )
ER (AE11 , AE21 , AE )
R
.
.
.
.
.
.
Traduzione di schemi complessi
. tradurre ogni entità
1
. identificatore interno
1
. identificatore esterno
2
. risolvere generalizzazioni
3. tradurre ogni associazione
2
.
.
.
.
.
.
Entità con identificatore interno
Indirizzo
Telefono
Nome
Orario
Aula
Giorno
Datore
Telefono
Lezione
(0,N)
(0,N)
Data inizio
Impiego
corrente
(1,1)
(1,1)
Data inizio
Impiego
passato
Composizione
Intestatario
Data fine
(1,N)
(0,N)
(1,1)
(0,1)
Votazione
Codice
Edizione
CF
Cognome
Età
(0,N)
Partecipante
Partecipazione
(1,N)
Cognome
(1,N)
Docenza
Città Nascita
Docente
Data fine
Data inizio
Sesso
(e t)
Città Nascita
(1,1)
(e p)
(1,N)
Dipendente
Posizione
(1,N)
Età
CF
N. partecipanti
Livello
Tipologia
Professionista
Titolo Prof.
Abilitazione
(1,N)
Interno
Esterno
(0,N)
Area
Codice
Nome
Corso
Datore( Nome , Telefono, Indirizzo)
Partecipante( Codice , CF, Cognome, Età, Sesso, Città Nascita)
Corso( Codice , Nome)
Lezione( Orario, Aula, Giorno )
Docente( CF , Cognome, Età, Città Nascita, Tipo)
Telefono( Numero )
.
.
.
.
.
.
Entità con identificatore esterno
Indirizzo
Telefono
Nome
Orario
Aula
Giorno
Datore
Telefono
Lezione
(0,N)
(0,N)
Data inizio
Impiego
corrente
(1,1)
(1,1)
Data inizio
Impiego
passato
Composizione
Intestatario
Data fine
(1,N)
(0,N)
(1,1)
(0,1)
Votazione
Codice
Edizione
CF
Cognome
Età
(0,N)
Partecipante
Partecipazione
(1,N)
Cognome
(1,N)
Docenza
Città Nascita
Docente
Data inizio
Sesso
(e t)
Città Nascita
(1,1)
(e p)
(1,N)
Dipendente
Posizione
(1,N)
Età
CF
N. partecipanti
Data fine
Livello
Tipologia
Professionista
Titolo Prof.
Abilitazione
(1,N)
Interno
Esterno
(0,N)
Area
Codice
Nome
Corso
Datore( Nome , Telefono, Indirizzo)
Partecipante( Codice , CF, Cognome, Età, Sesso, Città Nascita)
Corso( Codice , Nome)
Lezione( Orario, Aula, Giorno )
Docente( CF , Cognome, Età, Città Nascita)
Telefono( Numero )
Edizione( Corso , Data Inizio, Data Fine, N. Partecipanti)
.
.
.
.
.
.
Generalizzazioni
Indirizzo
Telefono
Nome
Orario
Aula
Giorno
Datore
Telefono
Lezione
(0,N)
(0,N)
Data inizio
Impiego
corrente
(1,1)
(1,1)
Data inizio
Impiego
passato
Composizione
Intestatario
Data fine
(1,N)
(0,N)
(1,1)
(0,1)
Votazione
Codice
Edizione
CF
Cognome
Età
(0,N)
Partecipante
Partecipazione
(1,N)
Cognome
(1,N)
Docenza
Città Nascita
Docente
Data inizio
Sesso
(e t)
Città Nascita
(1,1)
(e p)
(1,N)
Dipendente
Posizione
(1,N)
Età
CF
N. partecipanti
Data fine
Livello
Tipologia
Professionista
Titolo Prof.
Abilitazione
(1,N)
Interno
Esterno
(0,N)
Area
Codice
Nome
Corso
Datore( Nome , Telefono, Indirizzo)
Partecipante( Codice , CF, Cognome, Età, Sesso, Città Nascita)
Corso( Codice , Nome)
Lezione( Orario, Aula, Giorno )
Telefono( Numero )
Edizione( Corso , Data Inizio, Data Fine, N. Partecipanti)
Dipendente( Partecipante , Posizione, Livello)
Professionista( Partecipante , Area, Titolo)
Docente( CF , Cognome, Età, Città Nascita, Tipo)
.
.
.
.
.
.
Associazioni
Indirizzo
Telefono
Nome
Orario
Aula
Giorno
Datore
Telefono
Lezione
(0,N)
(0,N)
Data inizio
Impiego
corrente
(1,1)
(1,1)
Data inizio
Impiego
passato
Composizione
Intestatario
Data fine
(1,N)
(0,N)
(1,1)
(0,1)
Votazione
Codice
Edizione
CF
Cognome
Età
(0,N)
Partecipante
Partecipazione
(1,N)
Cognome
(1,N)
Docenza
Città Nascita
Docente
Data inizio
Sesso
(e t)
Città Nascita
(1,1)
(e p)
(1,N)
Dipendente
Posizione
(1,N)
Età
CF
N. partecipanti
Data fine
Livello
Tipologia
Professionista
Titolo Prof.
Abilitazione
(1,N)
Interno
Esterno
(0,N)
Area
Codice
Nome
Corso
Datore( Nome , Telefono, Indirizzo)
Partecipante( Codice , CF, Cognome, Età, Sesso, Città Nascita)
Corso( Codice , Nome)
Lezione( Orario, Aula, Giorno )
Docente( CF , Cognome, Età, Città Nascita, Tipo)
Telefono( Numero )
Dipendente( Partecipante , Posizione, Livello)
Professionista( Partecipante , Area, Titolo)
Edizione( Corso , Data Inizio, Data Fine, N. Partecipanti)
.
.
.
.
.
.
Associazioni: Impiego corrente
Indirizzo
Telefono
Nome
Orario
Aula
Giorno
Datore
Telefono
Lezione
(0,N)
(0,N)
Data inizio
Impiego
corrente
(1,1)
(1,1)
Data inizio
Impiego
passato
Composizione
Intestatario
Data fine
(1,N)
(0,N)
(1,1)
(0,1)
Votazione
Codice
Edizione
CF
Cognome
Età
(0,N)
Partecipante
Partecipazione
(1,N)
Cognome
(1,N)
Docenza
Città Nascita
Docente
Data inizio
Sesso
(e t)
Città Nascita
(1,1)
(e p)
(1,N)
Dipendente
Posizione
(1,N)
Età
CF
N. partecipanti
Data fine
Livello
Tipologia
Professionista
Titolo Prof.
Abilitazione
(1,N)
Interno
Esterno
(0,N)
Area
Codice
Nome
Corso
Datore( Nome , Telefono, Indirizzo)
Dipendente( Partecipante , Posizione, Livello)
.
.
.
.
.
.
Associazione ?
'
!
!
'
'
!
(
#
$
!
"
"
%
$
"
&
"
"
Datore( Nome , Telefono, Indirizzo)
Dipendente( Partecipante , Posizione,
Livello)
.
.
.
.
.
.
Associazione uno a molti
'
!
!
'
'
!
(
#
$
!
"
"
%
$
"
&
"
"
Datore( Nome , Telefono, Indirizzo)
Datore( Nome , Telefono, Indirizzo)
Dipendente( Partecipante , Posizione,
Livello)
Dipendente( Partecipante , Posizione,
Livello, Datore, Data inizio)
.
.
.
.
.
.
Associazioni: Impiego passato
Indirizzo
Telefono
Nome
Orario
Aula
Giorno
Datore
Telefono
Lezione
(0,N)
(0,N)
Data inizio
Data inizio
Impiego
corrente
(1,1)
(1,1)
Impiego
passato
Composizione
Intestatario
Data fine
(1,N)
(0,N)
(1,1)
(0,1)
Votazione
Codice
Edizione
CF
Cognome
Età
(0,N)
Partecipante
Partecipazione
(1,N)
Cognome
(1,N)
Docenza
Città Nascita
Docente
Data fine
Data inizio
Sesso
(e t)
Città Nascita
(1,1)
(e p)
(1,N)
Dipendente
Posizione
(1,N)
Età
CF
N. partecipanti
Livello
Tipologia
Professionista
Titolo Prof.
Abilitazione
(1,N)
Interno
Esterno
(0,N)
Area
Codice
Nome
Corso
Datore( Nome , Telefono, Indirizzo)
Partecipante( Codice , CF, Cognome, Età, Sesso, Città Nascita)
.
.
.
.
.
.
Associazione ?
'
!
!
'
'
!
(
#
$
!
"
"
%
$
"
&
"
!
"
Datore( Nome , Telefono, Indirizzo)
Partecipante( Codice , CF, Cognome,
Età, Sesso, Città Nascita)
.
.
.
.
.
.
Associazione molti a molti
'
!
!
'
'
!
(
#
$
!
"
"
%
$
"
&
"
!
"
Datore( Nome , Telefono, Indirizzo)
Datore( Nome , Telefono, Indirizzo)
Partecipante( Codice , CF, Cognome,
Età, Sesso, Città Nascita)
Partecipante( Codice , CF, Cognome,
Età, Sesso, Città Nascita)
ImpiegoPassato( Datore, Partecipante ,
Data inizio, Data fine)
.
.
.
.
.
.
Associazioni: Partecipazione
Indirizzo
Telefono
Nome
Orario
Aula
Giorno
Datore
Telefono
Lezione
(0,N)
(0,N)
Data inizio
Impiego
corrente
(1,1)
(1,1)
Data inizio
Impiego
passato
Composizione
Intestatario
Data fine
(1,N)
(0,N)
(1,1)
(0,1)
Votazione
Codice
Edizione
CF
Cognome
Età
(0,N)
Partecipante
Partecipazione
(1,N)
Cognome
(1,N)
Docenza
Città Nascita
Docente
Data inizio
Sesso
(e t)
Città Nascita
(1,1)
(e p)
(1,N)
Dipendente
Posizione
(1,N)
Età
CF
N. partecipanti
Data fine
Livello
Tipologia
Professionista
Titolo Prof.
Abilitazione
(1,N)
Interno
Esterno
(0,N)
Area
Codice
Nome
Corso
Partecipante( Codice , CF, Cognome, Età, Sesso, Città Nascita)
Edizione( Corso , Data Inizio, Data Fine, N. Partecipanti)
.
.
.
.
.
.
Associazione ?
!
'
!
!
(
#
$
!
"
"
%
$
"
Partecipante( Codice , CF, Cognome, Età,
Sesso, Città Nascita)
"
&
"
!
Edizione( Corso , Data Inizio, Data Fine, N.
Partecipanti)
.
.
.
.
.
.
Associazione molti a molti
!
'
!
!
(
$
!
"
#
"
%
$
Partecipante( Codice , CF, Cognome, Età,
Sesso, Città Nascita)
"
&
"
"
Partecipante( Codice , CF, Cognome, Età,
Sesso, Città Nascita)
!
Edizione( Corso , Data Inizio, Data Fine,
N. Partecipanti)
Edizione( Corso , Data Inizio, Data Fine, N.
Partecipanti)
Partecipazione( Partecipante, Edizione ,
Votazione)
.
.
.
.
.
.
Associazioni: Composizione
Indirizzo
Telefono
Nome
Orario
Aula
Giorno
Datore
Telefono
Lezione
(0,N)
(0,N)
Data inizio
Impiego
corrente
(1,1)
(1,1)
Data inizio
Impiego
passato
Composizione
Intestatario
Data fine
(1,N)
(0,N)
(1,1)
(0,1)
Votazione
Codice
Edizione
CF
Cognome
Età
(0,N)
Partecipante
Partecipazione
(1,N)
Cognome
(1,N)
Docenza
Città Nascita
Docente
Data inizio
Sesso
(e t)
Città Nascita
(1,1)
(e p)
(1,N)
Dipendente
Posizione
(1,N)
Età
CF
N. partecipanti
Data fine
Livello
Tipologia
Professionista
Titolo Prof.
Abilitazione
(1,N)
Interno
Esterno
(0,N)
Area
Codice
Nome
Corso
Lezione( Orario, Aula, Giorno )
Edizione( Corso , Data Inizio, Data Fine, N. Partecipanti)
.
.
.
.
.
.
Associazione ?
!
(
!
"
#
)
'
Lezione( Orario, Aula, Giorno )
!
Edizione( Corso , Data Inizio, Data Fine,
N. Partecipanti)
.
.
.
.
.
.
Associazione uno a molti
!
(
!
"
#
Lezione( Orario, Aula, Giorno )
)
'
Lezione( Orario, Aula, Giorno , Edizione)
!
Edizione( Corso , Data Inizio, Data Fine,
N. Partecipanti)
Edizione( Corso , Data Inizio, Data Fine,
N. Partecipanti)
.
.
.
.
.
.
Associazioni: Tipologia
Indirizzo
Telefono
Nome
Orario
Aula
Giorno
Datore
Telefono
Lezione
(0,N)
(0,N)
Data inizio
Impiego
corrente
(1,1)
(1,1)
Data inizio
Impiego
passato
Composizione
Intestatario
Data fine
(1,N)
(0,N)
(1,1)
(0,1)
Votazione
Codice
Edizione
CF
Cognome
Età
(0,N)
Partecipante
Partecipazione
(1,N)
Cognome
(1,N)
Docenza
Città Nascita
Docente
Data inizio
Sesso
(e t)
Città Nascita
(1,1)
(e p)
(1,N)
Dipendente
Posizione
(1,N)
Età
CF
N. partecipanti
Data fine
Livello
Tipologia
Professionista
Titolo Prof.
Abilitazione
(1,N)
Interno
Esterno
(0,N)
Area
Codice
Nome
Corso
Edizione( Corso , Data Inizio, Data Fine, N. Partecipanti)
Corso( Codice , Nome)
.
.
.
.
.
.
Associazione ?
(
!
"
!
)
!
.
.
.
.
.
.
Associazione uno a molti
(
!
"
!
)
!
Tipologia non ha attributi, quindi le relazioni rimangono invariate.
Edizione( Corso , Data Inizio, Data Fine, N. Partecipanti)
Corso( Codice , Nome)
.
.
.
.
.
.
Associazioni: Docenza
Indirizzo
Telefono
Nome
Orario
Aula
Giorno
Datore
Telefono
Lezione
(0,N)
(0,N)
Data inizio
Data inizio
Impiego
corrente
(1,1)
(1,1)
Impiego
passato
Composizione
Intestatario
Data fine
(1,N)
(0,N)
(1,1)
(0,1)
Votazione
Codice
Edizione
CF
Cognome
Età
(0,N)
Partecipante
Partecipazione
(1,N)
Cognome
(1,N)
Docenza
Città Nascita
Docente
Data fine
Data inizio
Sesso
(e t)
Città Nascita
(1,1)
(e p)
(1,N)
Dipendente
Posizione
(1,N)
Età
CF
N. partecipanti
Livello
Tipologia
Professionista
Titolo Prof.
Abilitazione
(1,N)
Interno
Esterno
(0,N)
Area
Codice
Nome
Corso
Edizione( Corso , Data Inizio, Data Fine, N. Partecipanti)
Docente( CF , Cognome, Età, Città Nascita, Tipo)
.
.
.
.
.
.
Associazione ?
'
!
(
$
$
#
)
'
!
.
.
.
.
.
.
Associazione uno a molti
'
!
(
$
$
#
)
'
!
Si sceglie di
aggiungere identificativo relazione Docente come attributo della relazione
Edizione:
Edizione( Corso , Data Inizio, Data Fine, N. Partecipanti, Docente)
Docente( CF , Cognome, Età, Città Nascita, Tipo)
.
.
.
.
.
.
Associazioni: Abilitazione
Indirizzo
Telefono
Nome
Orario
Aula
Giorno
Datore
Telefono
Lezione
(0,N)
(0,N)
Data inizio
Data inizio
Impiego
corrente
(1,1)
(1,1)
Impiego
passato
Composizione
Intestatario
Data fine
(1,N)
(0,N)
(1,1)
(0,1)
Votazione
Codice
Edizione
CF
Cognome
Età
(0,N)
Partecipante
Partecipazione
(1,N)
Cognome
(1,N)
Docenza
Città Nascita
Docente
Data fine
Data inizio
Sesso
(e t)
Città Nascita
(1,1)
(e p)
(1,N)
Dipendente
Posizione
(1,N)
Età
CF
N. partecipanti
Livello
Tipologia
Professionista
Titolo Prof.
Abilitazione
(1,N)
Interno
Esterno
(0,N)
Area
Codice
Nome
Corso
Corso( Codice , Nome)
Docente( CF , Cognome, Età, Città Nascita, Tipo)
.
.
.
.
.
.
Associazione
?
'
!
(
$
$
#
)
'
!
Corso( Codice , Nome)
Docente( CF , Cognome, Età,
Città Nascita, Tipo)
.
.
.
.
.
.
Associazione
molti a molti
!
(
'
$
$
#
)
'
!
Corso( Codice , Nome)
Corso( Codice , Nome)
Docente( CF , Cognome, Età,
Città Nascita, Tipo)
Docente( CF , Cognome, Età,
Città Nascita, Tipo)
Abilitazione( Corso, Docente )
.
.
.
.
.
.
Associazioni: Intestatario
Indirizzo
Telefono
Nome
Orario
Aula
Giorno
Datore
Telefono
Lezione
(0,N)
(0,N)
Data inizio
Impiego
corrente
(1,1)
(1,1)
Data inizio
Impiego
passato
Composizione
Intestatario
Data fine
(1,N)
(0,N)
(1,1)
(0,1)
Votazione
Codice
Edizione
CF
Cognome
Età
(0,N)
Partecipante
Partecipazione
(1,N)
Cognome
(1,N)
Docenza
Città Nascita
Docente
Data inizio
Sesso
(e t)
Città Nascita
(1,1)
(e p)
(1,N)
Dipendente
Posizione
(1,N)
Età
CF
N. partecipanti
Data fine
Livello
Tipologia
Professionista
Titolo Prof.
Abilitazione
(1,N)
Interno
Esterno
(0,N)
Area
Codice
Nome
Corso
Docente( CF , Cognome, Età, Città Nascita, Tipo)
Telefono( Numero )
.
.
.
.
.
.
Associazione ?
'
#
$
$
)
'
.
.
.
.
.
.
Associazione uno a molti
'
#
$
$
Intestatario non
ha attributi.
'
)
Docente( CF , Cognome, Età, Città Nascita, Tipo)
Telefono( Numero , Docente)
.
.
.
.
.
.
Modello Relazionale
Datore( Nome , Telefono, Indirizzo)
Dipendente( Partecipante , Posizione, Livello, Datore, Data inizio)
ImpiegoPassato( Datore, Partecipante , Data inizio, Data fine)
Professionista( Partecipante , Area, Titolo)
Partecipante( Codice , CF, Cognome, Età, Sesso, Città Nascita)
Partecipazione( Partecipante, Edizione , Votazione)
Lezione( Orario, Aula, Giorno , Edizione)
Edizione( Corso , Data Inizio, Data Fine, N. Partecipanti, Docente)
Corso( Codice , Nome)
Abilitazione( Corso, Docente )
Docente( CF , Cognome, Età, Città Nascita, Tipo)
Telefono( Numero , Docente)
.
.
.
.
.
.
Scarica

esercizioDaLibro