Traduzione ER - relazionale 1
Introduzione Algoritmo applicato ad uno schema ER ristrutturato:!! I. Traduzione delle entità (non deboli)! II. Traduzione delle associazioni 2
I.Traduzione delle entità (1) Ogni entità origina una tabella! Gli attributi dell entità sono i campi della tabella! Gli identificatori dell entità sono le chiavi della tabella! Attributi opzionali dell entità determinano l ammissibilità del valore NULL dei campi corrispondenti 3
I.Traduzione delle entità (2) id E A 1 A 2 A 3 A n E(id,A 1,A 2,A 3,A n ) 4
Esempi (1) Studente matricola cog data_nascita Studente(matricola,,cog,data_nascita) 5
II.Traduzione delle associazioni (1) Si procede in base alla cardinalità dell associazione:! Associazione molti a molti:! Si genera una nuova tabella, la cui chiave è l unione delle chiavi delle tabelle ottenute dalle entità coinvolte dall associazione! Gli unici ulteriori attributi (campi) corrispondono agli attributi dell associazione 6
II.Traduzione delle associazioni (2) Associazioni molti a molti A 1 A 2 E A (-,N) R (-,N) E B B 1 B 2 C 1 C 2 E A (A1,A2) E B (B1,B2) E R (A1,B1,C1,C2) 7
Esempi (3) matricola Studente (0,N) esame (0,N) Corso CFU voto lode Studente(matricola,) Corso(,CFU) Esame(matrStudente,Corso,voto,lode) 8
II.Traduzione delle associazioni (3) Si procede in base alla cardinalità dell associazione:! Associazione uno a molti: 2 alternative! Si genera una nuova tabella, i cui attributi sono le chiavi delle 2 tabelle (ed eventuali attributi dell associazione). La chiave è la chiave della tabella ottenuta dall entità che partecipa all associazione con cardinalità (-,1)! Si aggiungono agli attributi della tabella ottenuta dall entità che partecipa all associazione con cardinalità (-,1)! la chiave della tabella ottenuta dall entità che partecipa all associazione con cardinalità (-,N)! Eventuali attributi dell associazione 9
II.Traduzione delle associazioni (4) Associazioni uno a molti A 1 A 2 E A (-,1) (-,N) R E B B 1 B 2 C 1 C 2 E A (A1,A2) E B (B1,B2) E R (A1,B1,C1,C2) 10
II.Traduzione delle associazioni (5) Associazioni uno a molti A 1 A 2 E A (-,1) (-,N) R E B B 1 B 2 C 1 C 2 E A (A1,A2,B1,C1,C2) E B (B1,B2) 11
II.Traduzione delle associazioni (6) Associazioni uno a molti La scelta tra le due alternative è determinata dalla cardinalità minima di partecipazione all associazione (dal lato di E A ):! (1,1): è preferibile modificare lo schema di E A, dato che ogni tupla sarà legata ad una tupla di E B! (0,1): se gli elementi di E A che partecipano all associazione sono solo una (piccola) parte del totale, conviene generare la tabella E R! La modifica dello schema di E A comporterebbe la presenza di (molti) valori NULL per gli attributi B1, C1 e C2 in corrispondenza delle tuple che non hanno legami 12
Esempi (4) matricola Docente (1,1) (1,N) afferenza Dipartimento citta Docente(matricola,) Dipartimento(,citta) 13
Esempi (4) matricola Docente (1,1) (1,N) afferenza Dipartimento citta Docente(matricola,,dipartimentoAfferenza) Dipartimento(,citta) 14
II.Traduzione delle associazioni (7) Si procede in base alla cardinalità dell associazione:! Associazione uno a uno: 2 alternative! Si genera una nuova tabella, i cui attributi sono le chiavi delle 2 tabelle (ed eventuali attributi dell associazione). Le chiavi delle due tabelle di partenza sono entrambe, singolarmente, chiavi della nuova tabella! Si aggiungono agli attributi di una tabella (se c è, quella con partecipazione obbligatoria all associazione)! la chiave dell altra tabella, a sua volta con il ruolo di chiave! Eventuali attributi dell associazione 15
II.Traduzione delle associazioni (8) Associazioni uno a uno A 1 A 2 E A (-,1) (-,1) R E B B 1 B 2 C 1 C 2 E A (A1,A2) E B (B1,B2) E R (A1,B1,C1,C2) 16
II.Traduzione delle associazioni (9) Associazioni uno a uno A 1 A 2 E A (1,1) (-,1) R E B B 1 B 2 C 1 C 2 E A (A1,A2,B1,C1,C2) E B (B1,B2) 17
Esempi (5) matricola Direttore (1,1) (1,1) direzione Dipartimento citta Direttore(matricola,) Dipartimento(,citta) 18
Esempi (5) matricola Direttore (1,1) (1,1) direzione Dipartimento citta Direttore(matricola,,dipartimentoDiretto) Dipartimento(,citta) 19
Esempi (5) matricola Direttore (1,1) (1,1) direzione Dipartimento citta Direttore(matricola,) Dipartimento(,citta,direttore) 20
Esempi (6) CF Uomo (0,1) (0,1) sposati Donna CF data_nozze Uomo(CF,) Donna(CF,) Sposati(marito,moglie,data_nozze) 21
Associazioni ricorsive (1) Casi particolari di associazioni binarie! Vanno trattate come descritto nel passo II, a seconda delle cardinalità 22
Associazioni ricorsive (2) (1,N) capo Impiegato matricola livello supervisione (1,1) subordinato 23
Associazioni ricorsive (2) Impiegato (1,N) supervisione matricola livello Rappresentiamo due volte la stessa entità.! N.B. : non significa che abbiamo due entità Impiegato! Nel E-R non posso avere due entità con lo stesso!!! (1,1) Impiegato(matricola,, livello) Impiegato matricola livello 24
Associazioni ricorsive (2) Impiegato (1,N) supervisione matricola livello Impiegato(matricola,, livello, matricolacapo) (1,1) Impiegato matricola livello 25