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) . . . . . .