La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

LA PROGETTAZIONE DELLE BASI DI DATI Progettazione concettuale 2^ parte __ Progettazione logica Realizzato da Roberto Savino.

Presentazioni simili


Presentazione sul tema: "LA PROGETTAZIONE DELLE BASI DI DATI Progettazione concettuale 2^ parte __ Progettazione logica Realizzato da Roberto Savino."— Transcript della presentazione:

1 LA PROGETTAZIONE DELLE BASI DI DATI Progettazione concettuale 2^ parte __ Progettazione logica Realizzato da Roberto Savino

2 Identificazione esterna In alcuni casi una entità può essere identificata da altre ad essa collegate nome_c_d_s c_d_studio facoltà (1,n) (1,1) parte nome_fac Nellesempio i corsi di studio sono identificati da un nome proprio e da quello della facoltà che li eroga, ad esempio: laurea in Informatica della facoltà di Scienze MM. FF. NN. di Catania

3 Realizzato da Roberto Savino Regole da rispettare le identificazioni esterne avvengono sempre tramite associazioni binarie in cui lentità da identificare partecipa con cardinalità (1,1) le identificazioni esterne avvengono sempre tramite associazioni binarie in cui lentità da identificare partecipa con cardinalità (1,1) una identificazione esterna può coinvolgere una entità che a sua volta è identificata esternamente a patto che non si creino cicli di identificazione una identificazione esterna può coinvolgere una entità che a sua volta è identificata esternamente a patto che non si creino cicli di identificazione una identificazione esterna può coinvolgere più entità purché legate da associazioni binarie in cui lentità da identificare partecipa con cardinalità (1,1) una identificazione esterna può coinvolgere più entità purché legate da associazioni binarie in cui lentità da identificare partecipa con cardinalità (1,1)

4 Realizzato da Roberto Savino Chiavi alternative entità con chiavi alternative: interno ed esterna n_s scaffale magazzino (1,n) (1,1) parte in ripiano (1,1) n_r c_inv n_mag

5 Realizzato da Roberto Savino Scelta delle chiavi entità con chiavi alternative: interno ed esterna nome reparto stabilimento (1,n) (1,1) parte in macchina c_inv (1,1) n_m n_s

6 Realizzato da Roberto Savino Esempio: composizione treni i treni sono identificati da un codice e da una data, sono composti da vetture che contengono i posti da prenotare i treni sono identificati da un codice e da una data, sono composti da vetture che contengono i posti da prenotare le vetture sono numerate, i posti sono numerati nello stesso modo allinterno di ogni vettura le vetture sono numerate, i posti sono numerati nello stesso modo allinterno di ogni vettura (potremmo tenere conto anche degli scompartimenti interni alle vetture) (potremmo tenere conto anche degli scompartimenti interni alle vetture)

7 Realizzato da Roberto Savino Schema composizione treni vettura treno cont (1,n) (1,1) n_v (1,1) comp in scomparti mento (1,n) posto n_t data n_s n_p (1,1)

8 Realizzato da Roberto Savino Esempio: camere dalbergo nome loc n_p scala albergo comp (1,n) (1,1) n_s (1,1) cont in piano (1,n) camera n_c (1,1)

9 Realizzato da Roberto Savino Requisiti di modellazione spesso nella analisi di un settore aziendale può risultare che più entità risultino simili o casi particolari luna dellaltra, derivanti da viste diverse da parte dellutenza spesso nella analisi di un settore aziendale può risultare che più entità risultino simili o casi particolari luna dellaltra, derivanti da viste diverse da parte dellutenza emerge quindi la necessità di evidenziare sottoclassi di alcune classi emerge quindi la necessità di evidenziare sottoclassi di alcune classi si definisce pertanto gerarchia di specializzazione il legame logico che esiste tra classi e sottoclassi si definisce pertanto gerarchia di specializzazione il legame logico che esiste tra classi e sottoclassi

10 Realizzato da Roberto Savino Le gerarchie Definizione: la gerarchia concettuale è il legame logico tra unentità padre E ed alcune entità figlie E 1 E 2.. E n dove: Definizione: la gerarchia concettuale è il legame logico tra unentità padre E ed alcune entità figlie E 1 E 2.. E n dove: E è la generalizzazione di E 1 E 2.. E n E è la generalizzazione di E 1 E 2.. E n E 1 E 2.. E n sono specializzazioni di E E 1 E 2.. E n sono specializzazioni di E una istanza di E k è anche istanza di E (e di tutte la sue generalizzazioni) una istanza di E k è anche istanza di E (e di tutte la sue generalizzazioni) una istanza di E può essere una istanza di E k una istanza di E può essere una istanza di E k

11 Realizzato da Roberto Savino Classificazione del personale unazienda si avvale dellopera di professionisti esterni, quindi il suo personale si suddivide in esterni e dipendenti: esterno dipendente personale matr cognome nome para metro ore t,e

12 Realizzato da Roberto Savino Anagrafe comunale un comune gestisce lanagrafe ed i servizi per i suoi cittadini alcuni di questi richiedono I dati relativi alla licenza di pesca e/o di caccia: cittadino c_f cognome nome pescatore tipo_lic n_licenza nt,ne cacciatore n-porto armi n_licenza

13 Realizzato da Roberto Savino Tipi di gerarchie: totalità t sta per totale: ogni istanza dellentità padre deve far parte di una delle entità figlie t sta per totale: ogni istanza dellentità padre deve far parte di una delle entità figlie nellesempio il personale si divide (completamente) in esterni e dipendenti nellesempio il personale si divide (completamente) in esterni e dipendenti nt sta per non totale: le istanze dellentità padre possono far parte di una delle entità figlie nt sta per non totale: le istanze dellentità padre possono far parte di una delle entità figlie nellesempio i pescatori sono un sottoinsieme dei cittadini nellesempio i pescatori sono un sottoinsieme dei cittadini

14 Realizzato da Roberto Savino Tipi di gerarchie: esclusività e sta per esclusiva: ogni istanza dellentità padre deve far parte di una sola delle entità figlie e sta per esclusiva: ogni istanza dellentità padre deve far parte di una sola delle entità figlie esempio: una istanza di personale non può sia essere sia dipendente che esterno esempio: una istanza di personale non può sia essere sia dipendente che esterno ne sta per non esclusiva: ogni istanza dellentità padre può far parte di una o più entità figlie ne sta per non esclusiva: ogni istanza dellentità padre può far parte di una o più entità figlie esempio: un cittadino può essere sia pescatore che cacciatore esempio: un cittadino può essere sia pescatore che cacciatore

15 Realizzato da Roberto Savino Mansioni esterne consulente informatico legale esterno economista nt, e nt : possono esistere esterni generici che non sono né legali, né ingegneri, né economisti ma non interessa stabilire una sottoclasse ad hoc

16 Realizzato da Roberto Savino Tipi di ingegnere ingegnere elettrico nt, ne ne : possono esistere ingegneri con competenze meccaniche, elettriche, e logistiche le tre qualifiche non si escludono meccanico logistico

17 Realizzato da Roberto Savino Ereditarietà delle proprietà le proprietà dellentità padre non devono essere replicate sullentità figlia in quanto questa le eredita cioè: le proprietà dellentità padre non devono essere replicate sullentità figlia in quanto questa le eredita cioè: le proprietà dellentità padre fanno parte del tipo dellentità figlia le proprietà dellentità padre fanno parte del tipo dellentità figlia non è vero il viceversa non è vero il viceversa il tipo di personale è: (matricola, cognome, nome, indirizzo, data_nascita) il tipo di personale è: (matricola, cognome, nome, indirizzo, data_nascita)

18 Realizzato da Roberto Savino Ereditarietà il tipo di dipendente è: (matricola, cognome, nome, indirizzo, data_nascita, parametro) il tipo di dipendente è: (matricola, cognome, nome, indirizzo, data_nascita, parametro) il tipo di esterno è: (matricola, cognome, nome, indirizzo, data_nascita, ore) il tipo di esterno è: (matricola, cognome, nome, indirizzo, data_nascita, ore) dipendente ed esterno hanno lo stesso tipo dipendente ed esterno hanno lo stesso tipo se considerati come personale NB: le gerarchie concettuali sono anche denominate gerarchie ISA NB: le gerarchie concettuali sono anche denominate gerarchie ISA dipendente è un (is a ) personale dipendente è un (is a ) personale esterno è un (is a ) personale esterno è un (is a ) personale

19 Realizzato da Roberto Savino Parco mezzi meccanici mezzi meccanici c_inv targa marca t,e moto- carri auto- carri auto dipen- denti servi- zio carrelli t,e

20 Realizzato da Roberto Savino Anagrafe bancaria rapporto nt,e mutuo I a casa mutuo cliente persona fisica società t,e (1,1) (0,n) (1,1) (0,1) (0,n) (1,1) (0,n) tipo ed associazioni diverse

21 Realizzato da Roberto Savino Anagrafe aziendale personale c_f cognome indirizzo t,e impiegato dirigente consulente dipendente stipendio sindacato p_iva compenso mansione classe con- trollo direzione (1,1) (0,n) (1,1) t,e

22 Realizzato da Roberto Savino Università personale c_f cognome indirizzo t,e ordinari associati ricerca- tori docenti non docenti nt,e tecnici amminis- trativi nt,e organizzazione dellufficio personale

23 Realizzato da Roberto Savino Vincoli di integrità sulle proprietà Al loro ingresso nel database i valori devono essere controllati sulla base di vincoli definiti in sede di analisi; Al loro ingresso nel database i valori devono essere controllati sulla base di vincoli definiti in sede di analisi; Non sempre i valori delle proprietà possono evolvere liberamente ma sono vincolati da regole; Non sempre i valori delle proprietà possono evolvere liberamente ma sono vincolati da regole;

24 Realizzato da Roberto Savino Vincoli statici Verifiche allinterno di intervalli: Verifiche allinterno di intervalli: 18

25 Realizzato da Roberto Savino Vincoli statici multiproprietà Il vincolo su una proprietà può essere dipendente da valori di altre proprietà: Il vincolo su una proprietà può essere dipendente da valori di altre proprietà: - se il modello è et2 i colori disponibili sono (avorio,blu, grigio,..) - se il modello è et2 i colori disponibili sono (avorio,blu, grigio,..) - se livello è 7 allora stipendio è tra 1.5 e 2.5 mil. - se livello è 7 allora stipendio è tra 1.5 e 2.5 mil. - se scaffale è di tipo a allora carico <100 kg - se scaffale è di tipo a allora carico <100 kg - se gara è slalom speciale, sesso M e categoria internazionale il dislivello è tra 180 e 220 m, il numero di porte è libero - se gara è slalom speciale, sesso M e categoria internazionale il dislivello è tra 180 e 220 m, il numero di porte è libero - se gara è slalom e categoria cuccioli il dislivello è < 100 m e il numero di porte è <30 - se gara è slalom e categoria cuccioli il dislivello è < 100 m e il numero di porte è <30

26 Realizzato da Roberto Savino Vincoli dinamici Il controllo statico può non essere sufficiente, un nuovo valore può essere valido staticamente ma può violare la regola della sua evoluzione: Il controllo statico può non essere sufficiente, un nuovo valore può essere valido staticamente ma può violare la regola della sua evoluzione: stipendio precedente < stipendio successivo stipendio precedente < stipendio successivo età precedente < età successiva età precedente < età successiva Sono necessarie le regole sugli eventi che fanno cambiare stato Sono necessarie le regole sugli eventi che fanno cambiare stato

27 Realizzato da Roberto Savino Progettazione Logica Obiettivo della Progettazione Logica e quello di costruire uno schema logico,in un determinato modello (ad es. relazionale), che descriva in maniera corretta ed efficiente tutte le informazioni contenute nello schema E-R prodotto dalla progettazione concettuale. Obiettivo della Progettazione Logica e quello di costruire uno schema logico,in un determinato modello (ad es. relazionale), che descriva in maniera corretta ed efficiente tutte le informazioni contenute nello schema E-R prodotto dalla progettazione concettuale. Non si tratta di una semplice traduzione Non si tratta di una semplice traduzione

28 Realizzato da Roberto Savino Fasi della Progettazione Logica Ristrutturazione dello schema E-R: Ristrutturazione dello schema E-R: e una fase indipendente dal modello logico e si basa su criteri di ottimizzazione dello schema e di successiva semplificazione. e una fase indipendente dal modello logico e si basa su criteri di ottimizzazione dello schema e di successiva semplificazione. Traduzione verso il Modello Logico: Traduzione verso il Modello Logico: fa riferimento ad un modello logico (ad es. relazionale) e puo includere ulteriore ottimizzazione che si basa sul modello logico stesso (es. normalizzazione). fa riferimento ad un modello logico (ad es. relazionale) e puo includere ulteriore ottimizzazione che si basa sul modello logico stesso (es. normalizzazione).

29 Realizzato da Roberto Savino Input ed output della prima fase Input: Input: Schema Concettuale E-R iniziale, Carico Applicativo previsto (in termini di dimensione dei dati e caratteristica delle operazioni) Schema Concettuale E-R iniziale, Carico Applicativo previsto (in termini di dimensione dei dati e caratteristica delle operazioni) Output : Output : Schema E-R ristrutturato che rappresenta i dati e tiene conto degli aspetti realizzativi Schema E-R ristrutturato che rappresenta i dati e tiene conto degli aspetti realizzativi

30 Realizzato da Roberto Savino Schema E-R Modello logico Carico Applicativo Progettazione logica Ristrutturazione Schema E-R ristrutturato Traduzione verso il modello logico Vincoli di integrità Documentazione Schema logico Schema logico

31 Realizzato da Roberto Savino Schema E-R Carico Applicativo Ristrutturazione dello schema E-R Analisi delle ridondanze Eliminazione delle generalizzazioni Partizionamento/Accorpamento di Entita e associazioni Schema E-R Ristrutturato Scelta degli identificatori principali

32 Realizzato da Roberto Savino Ristrutturazione di schemi E-R Analisi delle Ridondanze: si decide se eliminare o no eventuali ridondanze. Analisi delle Ridondanze: si decide se eliminare o no eventuali ridondanze. Eliminazione delle Generalizzazioni: tutte le generalizzazioni vengono analizzate e sostituite da altro. Eliminazione delle Generalizzazioni: tutte le generalizzazioni vengono analizzate e sostituite da altro. Partizionamento/Accorpamento di entità ed associazioni: si decide se partizionare concetti in piu parti o viceversa accorpare. Partizionamento/Accorpamento di entità ed associazioni: si decide se partizionare concetti in piu parti o viceversa accorpare. Scelta degli identificatori primari: si sceglie un identificatore per quelle entita che ne hanno piu di uno Scelta degli identificatori primari: si sceglie un identificatore per quelle entita che ne hanno piu di uno

33 Realizzato da Roberto Savino Analisi delle Ridondanze Attributi derivabili da altri attributi della stessa entità (fattura: importo lordo) Attributi derivabili da altri attributi della stessa entità (fattura: importo lordo) Attributi derivabili da attributi di altre entità (o associazioni) (Acquisto: Importo totale da Prezzo ) Attributi derivabili da attributi di altre entità (o associazioni) (Acquisto: Importo totale da Prezzo ) Attributi derivabili da operazioni di conteggio (Città: Numero abitanti contando il numero di Residenza ) Attributi derivabili da operazioni di conteggio (Città: Numero abitanti contando il numero di Residenza ) Associazioni derivabili dalla composizione di altre associazioni in presenza di cicli. (Docenza da Frequenza ed Insegnamento). Tuttavia i cicli non necessariamente generano ridondanze. Associazioni derivabili dalla composizione di altre associazioni in presenza di cicli. (Docenza da Frequenza ed Insegnamento). Tuttavia i cicli non necessariamente generano ridondanze.

34 Realizzato da Roberto Savino Eliminazione delle gerarchie il modello relazionale non rappresenta le gerarchie, le gerarchie sono sostituite da entità e associazioni: E E1E2 K A A2 A1 1) mantenimento delle entità con associazioni 2) collasso verso lalto 3) collasso verso il basso lapplicabilità e la convenienza delle soluzioni dipendono dalle proprietà di copertura e dalle operazioni previste

35 Realizzato da Roberto Savino mantenimento delle entità – tutte le entità vengono mantenute – le entità figlie sono in associazione con lentità padre – le entità figlie sono identificate esternamente tramite lassociazione E E1 E2 K A A2 A1 (1,1) (0,1) questa soluzione è sempre possibile, indipendentemente dalla copertura

36 Realizzato da Roberto Savino mantenimento entità - es.: progetto prog_sw prog_hw cod desc n_schede mesi uomo comp_hw usa (1,n) (0,n) (1,1) (0,1) (1,1) (0,1) progetto prog_sw prog_hw cod desc n_schede mesi uomo comp_hw usa (1,n) (0,n)

37 Realizzato da Roberto Savino eliminazione delle gerarchie Il collasso verso lalto riunisce tutte le entità figlie nellentità padre Il collasso verso lalto riunisce tutte le entità figlie nellentità padre E E1E2 K A2 A1 A E K A selettore A2 (0,1) selettore è un attributo che specifica se una istanza di E appartiene a una delle sottoentità

38 Realizzato da Roberto Savino ISA: collasso verso lalto Il collasso verso lalto favorisce operazioni che consultano insieme gli attributi dellentità padre e quelli di una entità figlia: Il collasso verso lalto favorisce operazioni che consultano insieme gli attributi dellentità padre e quelli di una entità figlia: in questo caso si accede a una sola entità, anziché a due attraverso una associazione in questo caso si accede a una sola entità, anziché a due attraverso una associazione gli attributi obbligatori per le entità figlie divengono opzionali per il padre gli attributi obbligatori per le entità figlie divengono opzionali per il padre si avrà una certa percentuale di valori nulli si avrà una certa percentuale di valori nulli

39 Realizzato da Roberto Savino ISA: collasso verso lalto studente laureandodiplomando matr. cogn. stage tesi cod_r relatore denom. azienda (1,1) studente matr. cogn. stage (0,1) tesi (0,1) relatore denom. azienda (0,1) selettore il dominio di sel è (L,D,N) (p,e) cod_r

40 Realizzato da Roberto Savino studente(123, rossi) laureando(123, DFD) studente(218, bianchi) studente(312, verdi) diplomando(312, ST) studente(123,rossi, L, DFD, NULL) studente(218,bianchi, N, NULL, NULL) studente(312,verdi, D, NULL, ST) (selettore) ISA: collasso verso lalto

41 Realizzato da Roberto Savino ISA: collasso verso il basso Collasso verso il basso: Collasso verso il basso: si elimina lentità padre trasferendone gli attributi su tutte le entità figlie si elimina lentità padre trasferendone gli attributi su tutte le entità figlie una associazione del padre è replicata, tante volte quante sono le entità figlie una associazione del padre è replicata, tante volte quante sono le entità figlie la soluzione è interessante in presenza di molti attributi di specializzazione (con il collasso verso lalto si avrebbe un eccesso di valori nulli) la soluzione è interessante in presenza di molti attributi di specializzazione (con il collasso verso lalto si avrebbe un eccesso di valori nulli) favorisce le operazioni in cui si accede separatamente alle entità figlie favorisce le operazioni in cui si accede separatamente alle entità figlie

42 Realizzato da Roberto Savino limiti di applicabilità: se la copertura non è totale non si può fare: dove mettere gli E che non sono né E1, né E2 ? se la copertura non è esclusiva introduce ridondanza: per una istanza presente sia in E1 che in E2 si rappresentano due volte gli attributi di E E1 E2 KAA2 A1 AK E E1E2 K A2 A1 A ISA: collasso verso il basso

43 Realizzato da Roberto Savino collasso verso il basso: es. dipendente impiegato operaio cf cognome qualifica mansione (t,e) dirigente classe iscritto (0,1) (1,n) (0,1) (1,n) dirige sindacato

44 Realizzato da Roberto Savino collasso verso il basso: es. impiegato operaio cf qualifica mansione dirigente classe (0,1) (0,n) (1,n) dir_d sindacato cf co. (0,n) (0,1) dir_o dir_i (1,1) (0,n)

45 Realizzato da Roberto Savino Partizionamento/Accorpamento Il principio generale e il seguente: gli accessi si riducono Il principio generale e il seguente: gli accessi si riducono separando attributi di uno stesso concetto che vengono acceduti da operazioni diverse separando attributi di uno stesso concetto che vengono acceduti da operazioni diverse raggruppando attributi di concetti diversi che vengono acceduti dalle medesime operazioni raggruppando attributi di concetti diversi che vengono acceduti dalle medesime operazioni

46 Realizzato da Roberto Savino Partizionamento di entità

47 Realizzato da Roberto Savino Partizionamento verticale ed orizzontale Nellesempio precedente vengono create due entità e gli attributi vengono divisi: partizionamento verticale Nellesempio precedente vengono create due entità e gli attributi vengono divisi: partizionamento verticale Se invece si suddivide in due entità con gli stessi attributi (ad esempio Analista e Venditore) con operazioni distinte sulle due si ha il partizionamento orizzontale Se invece si suddivide in due entità con gli stessi attributi (ad esempio Analista e Venditore) con operazioni distinte sulle due si ha il partizionamento orizzontale

48 Realizzato da Roberto Savino Eliminazione di attributi multivalore Il modello relazionale non li supporta (anche se alcuni sistemi moderni li ammettono) Il modello relazionale non li supporta (anche se alcuni sistemi moderni li ammettono)

49 Realizzato da Roberto Savino Accorpamento di entità E loperazione inversa del partizionamento E loperazione inversa del partizionamento

50 Realizzato da Roberto Savino Quando si fa un accorpamento Laccorpamento precedente è giustificato se le operazioni più frequenti su Persona richiedono sempre i dati relativi allappartamento e quindi vogliamo risparmiare gli accessi alla relazione che li lega. Normalmente gli accorpamenti si fanno su relazioni uno ad uno, raramente su uno a molti mai su molti a molti. Laccorpamento precedente è giustificato se le operazioni più frequenti su Persona richiedono sempre i dati relativi allappartamento e quindi vogliamo risparmiare gli accessi alla relazione che li lega. Normalmente gli accorpamenti si fanno su relazioni uno ad uno, raramente su uno a molti mai su molti a molti.

51 Realizzato da Roberto Savino Partizionamento/Accorpamento di associazioni

52 Realizzato da Roberto Savino Traduzione standard Entità ed Associazioni molti a molti ogni entità è tradotta con una relazione con gli stessi attributi ogni entità è tradotta con una relazione con gli stessi attributi la chiave è la chiave (o identificatore) dellentità stessa la chiave è la chiave (o identificatore) dellentità stessa ogni associazione è tradotta con una relazione con gli stessi attributi, cui si aggiungono gli identificatori di tutte le entità che essa collega (già visto) ogni associazione è tradotta con una relazione con gli stessi attributi, cui si aggiungono gli identificatori di tutte le entità che essa collega (già visto) la chiave è composta dalle chiavi delle entità collegate la chiave è composta dalle chiavi delle entità collegate

53 Realizzato da Roberto Savino E1 (K1, A1, B1,...) E2 (K2, A2, B2,...) R (K1,K2, AR, BR,...) E1 K1 (1,n) K2 E2 A1 R B1 A2 B2 AR BR Traduzione standard Entità ed Associazioni molti a molti

54 Realizzato da Roberto Savino traduzione standard: es. studente matr (1,n) codice corso cognome piano_s denom. anno nome STUDENTE (m, c, n) CORSO (c, d) PIANO_S (c,m, a)

55 Realizzato da Roberto Savino altre traduzioni La traduzione standard è sempre possibile ed è lunica possibilità per le associazioni N a M La traduzione standard è sempre possibile ed è lunica possibilità per le associazioni N a M Altre forme di traduzione delle associazioni sono possibili per altri casi di cardinalità (1 a 1, 1 a N) Altre forme di traduzione delle associazioni sono possibili per altri casi di cardinalità (1 a 1, 1 a N) Le altre forme di traduzione fondono in una stessa relazione entità e associazioni Le altre forme di traduzione fondono in una stessa relazione entità e associazioni

56 Realizzato da Roberto Savino Associazione binaria 1 a N traduzione standard: traduzione standard: E1 (K1, A1, B1) E2 (K2, A2, B2) R (K1,K2, AR, BR) E1 K1 (1,n) (1,1) K2 E2 A1 R B1 A2 B2 AR BR

57 Realizzato da Roberto Savino associazione binaria 1 a N Se E1 partecipa con cardinalità (1,1) può essere fusa con lassociazione, ottenendo una soluzione a due relazioni: Se E1 partecipa con cardinalità (1,1) può essere fusa con lassociazione, ottenendo una soluzione a due relazioni: E1(K1, A1, B1, K2, AR, BR) E2(K2, A2, B2) Se E1 partecipa con cardinalità (0,1) la soluzione a due relazioni ha valori nulli in K2, AR, BR per le istanze di E1 che non partecipano allassociazione Se E1 partecipa con cardinalità (0,1) la soluzione a due relazioni ha valori nulli in K2, AR, BR per le istanze di E1 che non partecipano allassociazione

58 Realizzato da Roberto Savino ass. binaria 1 a N es. comune nome_c nome_p provincia (1,1) (1,n) abitanti appartiene regione codice comune nome_c nome_p provincia abitanti regione codice nome_p (senza attributi sullassociazione)

59 Realizzato da Roberto Savino ass. binaria 1 a N es. cliente nome numero ordine (0,n) (1,1) telefono invia data sconto p_iva cliente nome numero ordine telefono data sconto p_iva (con attributi sullassociazione)

60 Realizzato da Roberto Savino ass. binaria 1 a N es. nome reparto stabili- mento (1,n) (1,1) parte in macchina num (1,1) n_stab Con identificazione esterna c_inv

61 Realizzato da Roberto Savino STABILIMENTO (N_STAB …..); REPARTO (NOME, N_STAB,......); MACCHINA (NUM, NOME, N_STAB); ass. binaria 1 a N es.

62 Realizzato da Roberto Savino Associazione binaria 1 a 1 traduzione con una relazione: traduzione con una relazione: E12 (K1, A1, B1, K2, A2, B2, K2, A2, B2, AR, BR) AR, BR) comune nome_c nome_s sindaco (1,1) abitanti amministra partito data

63 Realizzato da Roberto Savino associazione binaria 1 a 1 se la cardinalità di E2 è 0,1 e quella di E1 è 1,1 allora la chiave sarà K2 ; E2 è lentità con maggior numero di istanze alcune della quali non si associano, ci saranno quindi valori nulli in corrispondenza di K1, K1 in questo caso non potrebbe essere scelta se la cardinalità è 0,1 da entrambe le parti allora le relazioni saranno due per limpossibilità di assegnare la chiave allunica relazione a causa della presenza di valori nulli sia su K1 che su K2

64 Realizzato da Roberto Savino associazione binaria 1 a 1 CITTADINO (COD_F, NOME_C, INDIRIZZO, DATA_N, MATR, DATA, TIPO); cittadino nome_c matr servizio (0,1) (1,1) data_n assolto cod_f data tipo

65 Realizzato da Roberto Savino associazione binaria 1 a 1 Traduzione con due relazioni Traduzione con due relazioni lassociazione può essere compattata con lentità che partecipa obbligatoriamente (una delle due se la partecipazione è obbligatoria per entrambe) la discussione sulla chiave è analoga al caso di traduzione con una relazione lassociazione può essere compattata con lentità che partecipa obbligatoriamente (una delle due se la partecipazione è obbligatoria per entrambe) la discussione sulla chiave è analoga al caso di traduzione con una relazione E1 (K1, A1, B1,...) E2 (K2, A2, B2,... K1, AR, BR) E1 (K1, A1, B1,...) E2 (K2, A2, B2,... K1, AR, BR)

66 Realizzato da Roberto Savino associazione binaria 1 a 1 Traduzione con tre relazioni Traduzione con tre relazioni la chiave della relazione che traduce lassociazione può essere indifferentemente K1 o K2, non ci sono problemi di valori nulli la chiave della relazione che traduce lassociazione può essere indifferentemente K1 o K2, non ci sono problemi di valori nulli E1 (K1, A1, B1,...) E2 (K2, A2, B2,...) R (K1, K2, AR, BR,...) E1 (K1, A1, B1,...) E2 (K2, A2, B2,...) R (K1, K2, AR, BR,...)

67 Realizzato da Roberto Savino Necessità della ridenominazione nel caso di relazioni ricorsive Prodotto(Codice,Nome,Costo) Composizione(Composto,Componente,Quantita) Esiste un vincolo referenziale tra Composto,Componente e lattributo Codice di Prodotto. Esiste un vincolo referenziale tra Composto,Componente e lattributo Codice di Prodotto. prodotto codice (0,N) nome q.tà costo (0,N) composizione

68 Realizzato da Roberto Savino Associazioni con più entità Fornitore(PartitaIVA, NomeDitta) Fornitore(PartitaIVA, NomeDitta) Prodotto(Codice,Genere), Prodotto(Codice,Genere), Dipartimento(Nome,Telefono) Dipartimento(Nome,Telefono) Fornitura(Fornitore,Prodotto,Dipartimento,Quantità) Fornitura(Fornitore,Prodotto,Dipartimento,Quantità)

69 Realizzato da Roberto Savino Rappresentazione Grafica delle Traduzioni Permette di evidenziare i vincoli referenziali Permette di evidenziare i vincoli referenziali impiegato progetto partecipazione (1,n) (0,n) codice cognome stip età nome budget Data consegna Impiegato(Matricola,Cognome,Stipendio) Progetto(Codice,Nome,Budget) Partecipazione(Matricola,Codice,Data inizio)

70 Realizzato da Roberto Savino Traduzione di schemi Complessi

71 Realizzato da Roberto Savino Traduzione delle entita Con identificatore interno : E3(A31,A32) E4(A41,A42) E5(A51,A52) E6(A61,A62,A63) Con identificatore interno : E3(A31,A32) E4(A41,A42) E5(A51,A52) E6(A61,A62,A63) Con identificatore esterno : E1(A11,A51,A12) E2(A21,A11,A51,A22) Con identificatore esterno : E1(A11,A51,A12) E2(A21,A11,A51,A22)

72 Realizzato da Roberto Savino Traduzioni delle Associazioni Le relazioni R1 ed R12 sono state tradotte con lidentificazione esterna di E1 ed E2. Le relazioni R1 ed R12 sono state tradotte con lidentificazione esterna di E1 ed E2. Per tradurre R3 scarichiamo su E5 con opportuni rinominamenti gli attributi che individuano E6 nonche lattributo AR3 di R3 Per tradurre R3 scarichiamo su E5 con opportuni rinominamenti gli attributi che individuano E6 nonche lattributo AR3 di R3 Facciamo lo stesso per R4 ed R5 scaricando tutto su E5(rinominando R3 come A61R3 ed R4 con A61R4) Facciamo lo stesso per R4 ed R5 scaricando tutto su E5(rinominando R3 come A61R3 ed R4 con A61R4) Infine lunica associazione R2 molti a molti viene tradotta R2(A21,A11,A51,A31,A41,AR21,AR22) Infine lunica associazione R2 molti a molti viene tradotta R2(A21,A11,A51,A31,A41,AR21,AR22)

73 Realizzato da Roberto Savino Schema Finale E1(A11,A51,A12) E2(A21,A11,A51,A22) E3(A31,A32) E4(A41,A42) E5(A51,A52,A61R3,A62R3,AR3,A61R4, A62R4,A61R5,A62R5,AR5) E6(A61,A62,A63) R2(A21,A11,A51,A31,A41,AR21,AR22)


Scaricare ppt "LA PROGETTAZIONE DELLE BASI DI DATI Progettazione concettuale 2^ parte __ Progettazione logica Realizzato da Roberto Savino."

Presentazioni simili


Annunci Google