LA PROGETTAZIONE DELLE BASI DI DATI Progettazione concettuale 2^ parte __ Progettazione logica...

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

Transcript of LA PROGETTAZIONE DELLE BASI DI DATI Progettazione concettuale 2^ parte __ Progettazione logica...

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

LA PROGETTAZIONELA PROGETTAZIONEDELLE DELLE

BASI DI DATIBASI DI DATI

Progettazione concettuale 2^ Progettazione concettuale 2^ parteparte

____

Progettazione logicaProgettazione logica

Realizzato da Roberto SavinoRealizzato da Roberto Savino

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

Realizzato da Roberto Savino

Identificazione Identificazione esternaesterna

In alcuni casi una entità può essere identificata da altre ad essa collegate

nome_c_d_s

c_d_studiofacoltà

(1,n)(1,1)parte

nome_fac

Nell’esempio i corsi di studio sono identificati da un nomeproprio e da quello della facoltà che li eroga, ad esempio:

laurea in Informatica della facoltà di Scienze MM. FF. NN. di Catania

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

Realizzato da Roberto Savino

Regole da rispettareRegole da rispettare

le identificazioni esterne avvengono sempre le identificazioni esterne avvengono sempre tramite associazioni binarie in cui l’entità da tramite associazioni binarie in cui l’entità da identificare partecipa con cardinalità (1,1)identificare partecipa con cardinalità (1,1)

una identificazione esterna può coinvolgere una identificazione esterna può coinvolgere una entità che a sua volta è identificata una entità che a sua volta è identificata esternamente a patto che non si creino cicli di esternamente a patto che non si creino cicli di identificazioneidentificazione

una identificazione esterna può coinvolgere una identificazione esterna può coinvolgere più entità purché legate da associazioni più entità purché legate da associazioni binarie in cui l’entità da identificare partecipa binarie in cui l’entità da identificare partecipa con cardinalità (1,1)con cardinalità (1,1)

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

Realizzato da Roberto Savino

Chiavi alternativeChiavi alternativeentità con chiavi alternative: interno ed esterna

n_s

scaffalemagazzino

(1,n)(1,n)

(1,1)parte

in ripiano(1,1)

n_r

c_inv

n_mag

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

Realizzato da Roberto Savino

Scelta delle chiaviScelta delle chiavientità con chiavi alternative: interno ed esterna

nome

repartostabilimento

(1,n)(1,n)

(1,1)parte

in macchina

c_inv

(1,1)

n_m

n_s

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

Realizzato da Roberto Savino

Esempio: composizione Esempio: composizione trenitreni

i treni sono identificati da un codice i treni sono identificati da un codice e da una data, sono composti da e da una data, sono composti da vetture che contengono i posti da vetture che contengono i posti da prenotareprenotare

le vetture sono numerate, i posti le vetture sono numerate, i posti sono numerati nello stesso modo sono numerati nello stesso modo all’interno di ogni vetturaall’interno di ogni vettura

(potremmo tenere conto anche degli (potremmo tenere conto anche degli scompartimenti interni alle vetture)scompartimenti interni alle vetture)

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

Realizzato da Roberto Savino

Schema composizione Schema composizione trenitreni

vettura treno

cont

(1,n)(1,n)

(1,1)

n_v

(1,1)comp

inscomparti mento

(1,n)posto

n_t data

n_s n_p

(1,1)

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

Realizzato da Roberto Savino

Esempio: camere Esempio: camere d’albergod’albergo

nome loc

n_p

scala albergo

comp

(1,n)(1,n)

(1,1)

n_s

(1,1)cont

inpiano

(1,n)

camera

n_c

(1,1)

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

Realizzato da Roberto Savino

Requisiti di modellazioneRequisiti di modellazione

spesso nella analisi di un settore spesso nella analisi di un settore aziendale può risultare che più entità aziendale può risultare che più entità risultino simili o casi particolari l’una risultino simili o casi particolari l’una dell’altra, derivanti da “viste” diverse dell’altra, derivanti da “viste” diverse da parte dell’utenzada parte dell’utenza

emerge quindi la necessità di emerge quindi la necessità di evidenziare sottoclassi di alcune classievidenziare sottoclassi di alcune classi

si definisce pertanto si definisce pertanto gerarchiagerarchia di di specializzazionespecializzazione il legame logico che il legame logico che esiste tra classi e sottoclassiesiste tra classi e sottoclassi

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

Realizzato da Roberto Savino

Le gerarchieLe gerarchie

Definizione: la Definizione: la gerarchia concettualegerarchia concettuale è il legame logico tra un’entità padre E è il legame logico tra un’entità padre E ed alcune entità figlie Eed alcune entità figlie E11 E E22 .. E .. Enn dove: dove: E è la E è la generalizzazionegeneralizzazione di E di E11 E E22 .. E .. Enn

EE11 E E22 .. E .. Enn sono sono specializzazionispecializzazioni di E di E

una istanza di Euna istanza di Ekk èè anche istanza di E (e di anche istanza di E (e di tutte la sue generalizzazioni) tutte la sue generalizzazioni)

una istanza di E una istanza di E puòpuò essere una istanza di essere una istanza di EEkk

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

Realizzato da Roberto Savino

Classificazione del Classificazione del personalepersonale

un’azienda si avvale dell’opera di professionisti esterni, quindi il suo personale si suddivide in esterni e dipendenti:

esternodipendente

personalematr

cognomenome

parametro

ore

t,e

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

Realizzato da Roberto Savino

Anagrafe comunaleAnagrafe comunale

un comune gestisce l’anagrafe ed i servizi per i suoi cittadini alcuni di questi richiedono I dati relativialla licenza di pesca e/o di caccia:

cittadinoc_fcognomenome

pescatoretipo_lic

n_licenza

nt,ne

cacciatoren-portoarmi

n_licenza

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

Realizzato da Roberto Savino

Tipi di gerarchie: totalitàTipi di gerarchie: totalità

tt sta per sta per totaletotale: ogni istanza dell’entità : ogni istanza dell’entità padre deve far parte di una delle entità padre deve far parte di una delle entità figliefiglie nell’esempio il personale si divide nell’esempio il personale si divide

(completamente) in esterni e dipendenti(completamente) in esterni e dipendenti ntnt sta per sta per non totalenon totale: le istanze : le istanze

dell’entità padre possono far parte di dell’entità padre possono far parte di una delle entità figlie una delle entità figlie nell’esempio i pescatori sono un nell’esempio i pescatori sono un

sottoinsieme dei cittadinisottoinsieme dei cittadini

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

Realizzato da Roberto Savino

Tipi di gerarchie: Tipi di gerarchie: esclusivitàesclusività

ee sta per sta per esclusivaesclusiva: ogni istanza : ogni istanza dell’entità padre deve far parte di una dell’entità padre deve far parte di una sola delle entità figliesola delle entità figlie esempio: una istanza di personale non può esempio: una istanza di personale non può

sia essere sia dipendente che esternosia essere sia dipendente che esterno nene sta per sta per non esclusivanon esclusiva: ogni istanza : ogni istanza

dell’entità padre può far parte di una o dell’entità padre può far parte di una o più entità figliepiù entità figlie esempio: un cittadino può essere sia esempio: un cittadino può essere sia

pescatore che cacciatorepescatore che cacciatore

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

Realizzato da Roberto Savino

Mansioni esterneMansioni esterne

consulenteinformatico

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

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

Realizzato da Roberto Savino

TipiTipi di ingegneredi ingegnere

ingegnere

elettrico

nt, ne

ne : possono esistere ingegneri con competenzemeccaniche, elettriche, e logistichele tre qualifiche non si escludono

meccanicologistico

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

Realizzato da Roberto Savino

Ereditarietà delle Ereditarietà delle proprietàproprietà

lele proprietàproprietà dell’entità padre non devono dell’entità padre non devono essere replicate sull’entità figlia in quanto essere replicate sull’entità figlia in quanto questa le questa le ereditaeredita cioè: cioè:

le proprietà dell’entità padre fanno parte le proprietà dell’entità padre fanno parte del del tipotipo dell’entità figlia dell’entità figlia

non è vero il viceversanon è vero il viceversa il tipo di il tipo di personalepersonale è: ( è: (matricola, cognome, matricola, cognome,

nome, indirizzo, data_nascitanome, indirizzo, data_nascita))

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

Realizzato da Roberto Savino

EreditarietàEreditarietà il tipo di il tipo di dipendentedipendente è: è: (matricola, cognome, nome, indirizzo, (matricola, cognome, nome, indirizzo,

data_nascita, data_nascita, parametroparametro)) il tipo di il tipo di esternoesterno è: è: (matricola, cognome, nome, indirizzo, (matricola, cognome, nome, indirizzo,

data_nascita, data_nascita, oreore)) dipendente ed esterno hanno lo stesso tipo dipendente ed esterno hanno lo stesso tipo

se considerati come personalese considerati come personale

NB: le gerarchie concettuali sono anche denominate NB: le gerarchie concettuali sono anche denominate gerarchie ISAgerarchie ISA dipendente dipendente è unè un ( (is ais a ) personale ) personale esterno esterno è unè un ( (is ais a ) personale ) personale

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

Realizzato da Roberto Savino

Parco mezzi meccaniciParco mezzi meccanici

mezzimeccanici

c_invtargamarca

t,e

moto-carri

auto-carri

auto

dipen-denti

servi- zio

carrelli

t,e

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

Realizzato da Roberto Savino

Anagrafe bancariaAnagrafe bancaria

rapporto

nt,e

mutuo Ia

casamutuo cliente

persona fisica

società

t,e(1,1)

(0,n)

(1,1)

(0,1)

(0,n)

(1,1)

(0,n)

(0,n)

tipo ed associazionidiverse

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

Realizzato da Roberto Savino

Anagrafe aziendaleAnagrafe aziendale

personale

c_f

cognomeindirizzo

t,e

impiegato dirigente

consulentedipendentestipendiosindacato

p_iva

compenso

mansione classe

con-trollodirezione

(1,1)

(0,n)

(0,n)

(1,1)t,e

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

Realizzato da Roberto Savino

UniversitàUniversità

personalec_fcognomeindirizzo

t,e

ordinari associati ricerca-tori

docentinon

docenti

nt,e

tecnici amminis-trativi

nt,e

organizzazionedell’ufficio personale

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

Realizzato da Roberto Savino

Vincoli di integrità sulle Vincoli di integrità sulle proprietàproprietà

Al loro ingresso nel database i valori Al loro ingresso nel database i valori devono essere controllati sulla base devono essere controllati sulla base di di vincolivincoli definiti in sede di analisi; definiti in sede di analisi;

Non sempre i valori delle proprietà Non sempre i valori delle proprietà possono evolvere liberamente ma possono evolvere liberamente ma sono vincolati da regole;sono vincolati da regole;

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

Realizzato da Roberto Savino

Vincoli staticiVincoli statici

Verifiche all’interno di intervalli:Verifiche all’interno di intervalli:

18<età<65, 500<peso<200018<età<65, 500<peso<2000 Presenza di valori in elenchi:Presenza di valori in elenchi:

colore in (rosso, verde, bianco, nero...), colore in (rosso, verde, bianco, nero...),

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

Realizzato da Roberto Savino

Vincoli statici Vincoli statici multiproprietàmultiproprietà

Il vincolo su una proprietà può essere Il vincolo su una proprietà può essere dipendente da valori di altre proprietà:dipendente da valori di altre proprietà: - se il modello è ”et2” i colori disponibili sono - se il modello è ”et2” i colori disponibili sono

(avorio,blu, grigio,..)(avorio,blu, grigio,..) - se livello è 7 allora stipendio è tra 1.5 e 2.5 - se livello è 7 allora stipendio è tra 1.5 e 2.5

mil.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 - se gara è “slalom speciale”, sesso “M” e

categoria “internazionale” il dislivello è tra categoria “internazionale” il dislivello è tra 180 e 220 m, il numero di porte è libero180 e 220 m, il numero di porte è libero

- se gara è “slalom” e categoria “cuccioli” il - se gara è “slalom” e categoria “cuccioli” il dislivello è < 100 m e il numero di porte è <30dislivello è < 100 m e il numero di porte è <30

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

Realizzato da Roberto Savino

Vincoli dinamiciVincoli dinamici

Il controllo statico può non essere Il controllo statico può non essere sufficiente, un nuovo valore può essere sufficiente, un nuovo valore può essere valido staticamente ma può violare la regola valido staticamente ma può violare la regola della sua evoluzione:della sua evoluzione: stipendio precedente < stipendio successivostipendio precedente < stipendio successivo età precedente < età successivaetà precedente < età successiva

Sono necessarie le regole sugli eventi che Sono necessarie le regole sugli eventi che fanno cambiare statofanno cambiare stato

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

Realizzato da Roberto Savino

Progettazione LogicaProgettazione Logica

Obiettivo della Obiettivo della Progettazione Logica Progettazione Logica e’ quello di costruire uno schema e’ quello di costruire uno schema logico ,in un determinato logico ,in un determinato modellomodello (ad (ad es. es. relazionalerelazionale), che descriva in maniera ), che descriva in maniera correttacorretta ed ed efficiente efficiente tutte le tutte le informazioni contenute nello schema E-informazioni contenute nello schema E-R prodotto dalla progettazione R prodotto dalla progettazione concettuale.concettuale.

Non si tratta di una semplice Non si tratta di una semplice traduzione traduzione

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

Realizzato da Roberto Savino

Fasi della Progettazione Fasi della Progettazione LogicaLogica

Ristrutturazione dello schema E-R: Ristrutturazione dello schema E-R: e’ una fase indipendente dal modello logico e’ una fase indipendente dal modello logico

e si basa su criteri di e si basa su criteri di ottimizzazioneottimizzazione dello dello schema e di successiva schema e di successiva semplificazione.semplificazione.

Traduzione verso il Modello Logico: Traduzione verso il Modello Logico: fa riferimento ad un modello logico (ad es. fa riferimento ad un modello logico (ad es.

relazionale) e puo’ includere ulteriore relazionale) e puo’ includere ulteriore ottimizzazione ottimizzazione che si basa sul modello logico che si basa sul modello logico stesso (es. normalizzazione).stesso (es. normalizzazione).

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

Realizzato da Roberto Savino

Input ed output della Input ed output della prima faseprima fase

InputInput: : Schema ConcettualeSchema Concettuale E-R E-R iniziale iniziale, , Carico Carico

Applicativo Applicativo previsto (in termini di previsto (in termini di dimensione dei dati e caratteristica dimensione dei dati e caratteristica delle operazioni)delle operazioni)

OutputOutput : : Schema E-R Schema E-R ristrutturato ristrutturato che che

rappresenta i dati e tiene conto degli rappresenta i dati e tiene conto degli aspetti realizzativiaspetti realizzativi

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

Realizzato da Roberto Savino

Schema E-RModello

logicoCarico

Applicativo

Progettazione logica

Ristrutturazione

Schema E-R ristrutturato

Traduzione verso il modello logico

Vincoli di integrità

DocumentazioneSchema logico

Schema logico

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

Realizzato da Roberto Savino

Schema E-R Carico Applicativo

Ristrutturazione dello schema E-R

Analisi delle ridondanze

Eliminazione dellegeneralizzazioni

Partizionamento/Accorpamento di Entita e associazioni

Schema E-R Ristrutturato

Scelta degli identificatoriprincipali

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

Realizzato da Roberto Savino

Ristrutturazione di Ristrutturazione di schemi E-Rschemi E-R

Analisi delle RidondanzeAnalisi delle Ridondanze: si decide se : si decide se eliminare o no eventuali ridondanze.eliminare o no eventuali ridondanze.

Eliminazione delle GeneralizzazioniEliminazione delle Generalizzazioni: tutte le : tutte le generalizzazioni vengono analizzate e sostituite generalizzazioni vengono analizzate e sostituite da altro.da altro.

Partizionamento/Accorpamento di entità ed Partizionamento/Accorpamento di entità ed associazioniassociazioni: si decide se partizionare concetti : si decide se partizionare concetti in piu’ parti o viceversa accorpare.in piu’ parti o viceversa accorpare.

Scelta degli identificatori primariScelta degli identificatori primari: si sceglie : si sceglie un identificatore per quelle entita’ che ne hanno un identificatore per quelle entita’ che ne hanno piu’ di unopiu’ di uno

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

Realizzato da Roberto Savino

Analisi delle RidondanzeAnalisi delle Ridondanze Attributi derivabili da altri attributi della stessa Attributi derivabili da altri attributi della stessa

entitàentità (fattura: importo lordo) (fattura: importo lordo) Attributi derivabili da attributi di altre entità (o Attributi derivabili da attributi di altre entità (o

associazioni)associazioni) (Acquisto: Importo totale da Prezzo ) (Acquisto: Importo totale da Prezzo ) Attributi derivabili da operazioni di conteggio Attributi derivabili da operazioni di conteggio

(Città: Numero abitanti contando il numero di (Città: Numero abitanti contando il numero di Residenza )Residenza )

Associazioni derivabili dalla composizione di altre Associazioni derivabili dalla composizione di altre associazioni in presenza di cicli. associazioni in presenza di cicli. (Docenza da (Docenza da Frequenza ed Insegnamento). Tuttavia i Frequenza ed Insegnamento). Tuttavia i cicli non cicli non necessariamente generano ridondanzenecessariamente generano ridondanze..

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

Realizzato da Roberto Savino

Eliminazione delle Eliminazione delle gerarchiegerarchie

il modello relazionale non rappresenta le il modello relazionale non rappresenta le gerarchie, le gerarchie sono sostituite da gerarchie, le gerarchie sono sostituite da entità e associazioni:entità e associazioni:

E

E1 E2

K

A

A2A1

1) mantenimento delle entità con associazioni

2) collasso verso l’alto

3) collasso verso il basso

l’applicabilità e la convenienza delle soluzioni dipendono dalle proprietà di copertura e dalle operazioni previste

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

Realizzato da Roberto Savino

mantenimento delle mantenimento delle entitàentità

– tuttetutte le entità le entità vengono mantenutevengono mantenute

– le entità le entità figliefiglie sono in sono in associazione con associazione con l’entità padrel’entità padre

– le entità figlie sono le entità figlie sono identificate identificate esternamenteesternamente tramite tramite l’associazione l’associazione

E

E1 E2

KA

A2A1

(1,1)(1,1)

(0,1) (0,1)

questa soluzione è sempre possibile, indipendentemente dalla copertura

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

Realizzato da Roberto Savino

mantenimento entità - mantenimento entità - es.:es.:

progetto

prog_sw prog_hw

coddesc

n_schede

mesiuomo

comp_hw

usa

(1,n)

(0,n)

(1,1)

(0,1)

(1,1)

(0,1)

progetto

prog_sw prog_hw

coddesc

n_schedemesiuomo

comp_hw

usa

(1,n)

(0,n)

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

Realizzato da Roberto Savino

eliminazione delle eliminazione delle gerarchiegerarchie

Il Il collasso verso l’altocollasso verso l’alto riunisce tutte le entità riunisce tutte le entità figlie nell’entità padrefiglie nell’entità padre

E

E1 E2

K

A2A1

A

E K

A1

A

selettore

A2(0,1)

(0,1)

selettore è un attributo che specifica se una

istanza di E appartiene a una delle sottoentità

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

Realizzato da Roberto Savino

ISA: collasso verso l’altoISA: collasso verso l’alto

Il collasso verso l’alto favorisce Il collasso verso l’alto favorisce operazioni che consultano insieme gli operazioni che consultano insieme gli attributi dell’entità padre e quelli di una attributi dell’entità padre e quelli di una entità figlia:entità figlia: in questo caso si accede a una sola entità, in questo caso si accede a una sola entità,

anziché a due attraverso una associazioneanziché a due attraverso una associazione

gli attributi obbligatori per le entità gli attributi obbligatori per le entità figlie divengono opzionali per il padrefiglie divengono opzionali per il padre si avrà una certa percentuale di valori nulli si avrà una certa percentuale di valori nulli

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

Realizzato da Roberto Savino

ISA: collasso verso ISA: collasso verso l’altol’alto

studente

laureando diplomando

matr.cogn.

stagetesi

cod_r

relatore

denom.

azienda

(1,1) (1,1)

studentematr.

cogn.stage (0,1)

tesi (0,1)

relatore

denom.

azienda

(0,1) (0,1)

selettore

il dominio di sel è (L,D,N)

(p,e)

cod_r

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

Realizzato da Roberto Savino

studente(123, rossi) studente(123, rossi) laureando(123, DFD)laureando(123, DFD)studente(218, bianchi)studente(218, bianchi)studente(312, verdi) studente(312, verdi) diplomando(312, ST)diplomando(312, ST)

studente(123,rossi, studente(123,rossi, L,L, DFD, NULLDFD, NULL))studente(218,bianchi, studente(218,bianchi, N,N, NULL, NULLNULL, NULL))studente(312,verdi, studente(312,verdi, D, NULL, STD, NULL, ST))

(selettore)

ISA: collasso verso ISA: collasso verso l’altol’alto

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

Realizzato da Roberto Savino

ISA: collasso verso il ISA: collasso verso il bassobasso

Collasso verso il basso: Collasso verso il basso: si elimina l’entità padre trasferendone si elimina l’entità padre trasferendone

gli attributi su tutte le entità figliegli attributi su tutte le entità figlie una associazione del padre è replicata, una associazione del padre è replicata,

tante volte quante sono le entità figlietante volte quante sono le entità figlie la soluzione è interessante in presenza di la soluzione è interessante in presenza di

molti attributi di specializzazione (con il molti attributi di specializzazione (con il collasso verso l’alto si avrebbe un eccesso collasso verso l’alto si avrebbe un eccesso di valori nulli)di valori nulli)

favorisce le operazioni in cui si accede favorisce le operazioni in cui si accede separatamente alle entità figlieseparatamente alle entità figlie

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

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

KAA2A1AK

E

E1 E2

K

A2A1

A

ISA: collasso verso il ISA: collasso verso il bassobasso

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

Realizzato da Roberto Savino

collasso verso il basso: es.collasso verso il basso: es.

dipendente

impiegato operaio

cfcognome

qualificamansione

(t,e)

dirigenteclasse

iscritto

(0,1)

(1,n)

(0,1)

(1,n)

(1,n)(1,n)

dirige

sindacato

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

Realizzato da Roberto Savino

collasso verso il basso: es.collasso verso il basso: es.

impiegato operaio

cf

qualificamansione

dirigente

classe(0,1) (0,1)

(0,n)

(1,n)(1,n)

dir_d

sindacato

cf cfco. co. co.

(0,n)(0,n)

(0,1)

dir_odir_i

(1,1)(1,1)

(1,1)

(0,n)

(0,n)(0,n)

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

Realizzato da Roberto Savino

Partizionamento/Partizionamento/AccorpamentoAccorpamento

Il principio generale e’ il seguente: Il principio generale e’ il seguente: gli accessi si riducono gli accessi si riducono separando attributi di uno stesso separando attributi di uno stesso

concetto che vengono acceduti da concetto che vengono acceduti da operazioni diverseoperazioni diverse

raggruppando attributi di concetti raggruppando attributi di concetti diversi che vengono acceduti dalle diversi che vengono acceduti dalle medesime operazionimedesime operazioni

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

Realizzato da Roberto Savino

Partizionamento di Partizionamento di entitàentità

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

Realizzato da Roberto Savino

Partizionamento Partizionamento verticale ed orizzontaleverticale ed orizzontale

Nell’esempio precedente vengono Nell’esempio precedente vengono create due entità e gli attributi create due entità e gli attributi vengono divisi: vengono divisi: partizionamento partizionamento verticaleverticale

Se invece si suddivide in due entità Se invece si suddivide in due entità con gli stessi attributi (ad esempio con gli stessi attributi (ad esempio Analista e Venditore) con operazioni Analista e Venditore) con operazioni distinte sulle due si ha il distinte sulle due si ha il partizionamento orizzontalepartizionamento orizzontale

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

Realizzato da Roberto Savino

Eliminazione di attributi Eliminazione di attributi multivaloremultivalore

Il modello relazionale non li supporta (anche se Il modello relazionale non li supporta (anche se alcuni sistemi moderni li ammettono)alcuni sistemi moderni li ammettono)

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

Realizzato da Roberto Savino

Accorpamento di entitàAccorpamento di entità

E’ l’operazione inversa del E’ l’operazione inversa del partizionamentopartizionamento

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

Realizzato da Roberto Savino

Quando si fa un Quando si fa un accorpamentoaccorpamento

L’accorpamento precedente è L’accorpamento precedente è giustificato se le operazioni più giustificato se le operazioni più frequenti su Persona richiedono frequenti su Persona richiedono sempre i dati relativi all’appartamento sempre i dati relativi all’appartamento e quindi vogliamo risparmiare gli e quindi vogliamo risparmiare gli accessi alla relazione che li lega. accessi alla relazione che li lega. Normalmente gli accorpamenti si fanno Normalmente gli accorpamenti si fanno su relazioni uno ad uno, raramente su su relazioni uno ad uno, raramente su uno a molti mai su molti a molti.uno a molti mai su molti a molti.

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

Realizzato da Roberto Savino

Partizionamento/Partizionamento/Accorpamento di Accorpamento di

associazioniassociazioni

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

Realizzato da Roberto Savino

Traduzione standardTraduzione standard Entità ed Associazioni Entità ed Associazioni

molti a moltimolti a molti ogni entità è tradotta con una relazione con ogni entità è tradotta con una relazione con

gli stessi attributigli stessi attributi la chiave è la chiave (o identificatore) dell’entità la chiave è la chiave (o identificatore) dell’entità

stessastessa

ogni associazione è tradotta con una ogni associazione è tradotta con una relazione con gli stessi attributi, cui si relazione con gli stessi attributi, cui si aggiungono gli identificatori di tutte le aggiungono gli identificatori di tutte le entità che essa collega (già visto)entità che essa collega (già visto) la chiave è composta dalle chiavi delle entità la chiave è composta dalle chiavi delle entità

collegatecollegate

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

Realizzato da Roberto Savino

E1 (K1, A1, B1,...)

E2 (K2, A2, B2,...)

R (K1,K2, AR, BR,...)

E1

K1

(1,n)

(1,n)

K2

E2

A1

R

B1

A2

B2

AR

BR

Traduzione standardTraduzione standard Entità ed Associazioni Entità ed Associazioni

molti a moltimolti a molti

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

Realizzato da Roberto Savino

traduzione standard: traduzione standard: es.es.

studentematr

(1,n)

(1,n)

codicecorso

cognome

piano_s

denom.

anno

nome

STUDENTE (m, c, n)

CORSO (c, d)

PIANO_S (c,m, a)

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

Realizzato da Roberto Savino

altre traduzionialtre traduzioni

La traduzione standard è sempre La traduzione standard è sempre possibile ed è l’unica possibilità per le possibile ed è l’unica possibilità per le associazioni N a Massociazioni N a M

Altre forme di traduzione delle Altre forme di traduzione delle associazioni sono possibili per altri casi di associazioni sono possibili per altri casi di cardinalità (1 a 1, 1 a N)cardinalità (1 a 1, 1 a N)

Le altre forme di traduzione fondono in Le altre forme di traduzione fondono in una stessa relazione entità e associazioniuna stessa relazione entità e associazioni

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

Realizzato da Roberto Savino

Associazione binaria 1 Associazione binaria 1 a Na N

traduzione traduzione standard: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

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

Realizzato da Roberto Savino

associazione binaria 1 a associazione binaria 1 a NN

Se E1 partecipa con cardinalità (1,1) può Se E1 partecipa con cardinalità (1,1) può essere fusa con l’associazione, ottenendo essere fusa con l’associazione, ottenendo una soluzione a due relazioni:una soluzione a due relazioni:

E1(K1, A1, B1, K2, AR, BR)E2(K2, A2, B2)

Se E1 partecipa con cardinalità (0,1) la Se E1 partecipa con cardinalità (0,1) la soluzione a due relazioni ha valori nulli in soluzione a due relazioni ha valori nulli in K2, AR, BR per le istanze di E1 che non K2, AR, BR per le istanze di E1 che non partecipano all’associazionepartecipano all’associazione

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

Realizzato da Roberto Savino

ass. binaria 1 a N es.ass. binaria 1 a N es.

comune

nome_c

nome_p

provincia

(1,1)

(1,n)

abitanti

appartiene

regione

codice

comunenome_c

nome_p

provincia

abitanti

regione

codice nome_p

(senza attributi sull’associazione)

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

Realizzato da Roberto Savino

ass. binaria 1 a N es.ass. binaria 1 a N es.

clientenome

numeroordine

(0,n)

(1,1)

telefono

invia

data

sconto

p_iva

clientenome

numeroordine

telefono

data

sconto

p_iva

p_iva

(con attributi sull’associazione)

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

Realizzato da Roberto Savino

ass. binaria 1 a N es.ass. binaria 1 a N es.

nome

reparto

stabili-mento

(1,n)(1,n)

(1,1)parte

in macchina

num

(1,1)

n_stab

Con identificazione esterna

c_inv

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

Realizzato da Roberto Savino

STABILIMENTO (N_STAB …..);REPARTO (NOME, N_STAB, ......);MACCHINA (NUM, NOME, N_STAB);

ass. binaria 1 a N es.ass. binaria 1 a N es.

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

Realizzato da Roberto Savino

Associazione binaria 1 Associazione binaria 1 a 1a 1

traduzione con traduzione con una relazione: una relazione:

E12 (K1, A1, B1,E12 (K1, A1, B1, K2, A2, B2, K2, A2, B2, AR, BR) AR, BR)

comunenome_c

nome_ssindaco

(1,1)

(1,1)abitanti

amministra

partito

data

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

Realizzato da Roberto Savino

associazione binaria 1 a associazione binaria 1 a 11

• se la cardinalità di E2 è 0,1 e quella di E1 è 1,1 allora la chiave sarà K2 ; E2 è l’entità 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 l’impossibilità di assegnare la chiave all’unica relazione a causa della presenza di valori nulli sia su K1 che su K2

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

Realizzato da Roberto Savino

associazione binaria 1 associazione binaria 1 a 1a 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

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

Realizzato da Roberto Savino

associazione binaria 1 associazione binaria 1 a 1a 1

Traduzione con due relazioniTraduzione con due relazioni l’associazione può essere l’associazione può essere compattatacompattata con l’entità con l’entità

che partecipa che partecipa obbligatoriamenteobbligatoriamente (una delle due se (una delle due se la partecipazione è obbligatoria per entrambe) la la partecipazione è obbligatoria per entrambe) la discussione sulla chiave è analoga al caso di discussione sulla chiave è analoga al caso di traduzione con una relazionetraduzione con una relazione

E1 (E1 (K1K1, A1, B1,...), A1, B1,...)

E2 (E2 (K2K2, A2, B2,... , A2, B2,... K1, AR, BRK1, AR, BR))

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

Realizzato da Roberto Savino

associazione binaria 1 associazione binaria 1 a 1a 1

Traduzione con tre relazioniTraduzione con tre relazioni la chiave della relazione che traduce la chiave della relazione che traduce

l’associazione può essere l’associazione può essere indifferentemente K1 o K2, non ci sono indifferentemente K1 o K2, non ci sono problemi di valori nulliproblemi di valori nulli

E1 (E1 (K1K1, A1, B1,...), A1, B1,...)E2 (E2 (K2K2, A2, B2,...), A2, B2,...)R (R (K1K1, K2, AR, BR,...), K2, AR, BR,...)

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

Realizzato da Roberto Savino

Necessità della Necessità della ridenominazioneridenominazione

nel caso di relazioni nel caso di relazioni ricorsivericorsiveProdotto(Prodotto(CodiceCodice,Nome,Costo),Nome,Costo)

Composizione(Composizione(CompostoComposto,,ComponenteComponente,Quantita’),Quantita’) Esiste un vincolo referenziale tra Esiste un vincolo referenziale tra

Composto,Componente e l’attributo Codice di Composto,Componente e l’attributo Codice di Prodotto.Prodotto.

prodotto

codice

(0,N)

nome

q.tà

costo

(0,N)

composizione

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

Realizzato da Roberto Savino

Associazioni con più Associazioni con più entitàentità

Fornitore(Fornitore(PartitaIVAPartitaIVA, NomeDitta), NomeDitta) Prodotto(Prodotto(CodiceCodice,Genere), ,Genere), Dipartimento(Dipartimento(NomeNome,Telefono),Telefono) Fornitura(Fornitura(FornitoreFornitore,,ProdottoProdotto,,DipartimentoDipartimento,Quantità),Quantità)

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

Realizzato da Roberto Savino

Rappresentazione Rappresentazione Grafica delle TraduzioniGrafica delle Traduzioni

Permette di evidenziare i vincoli referenzialiPermette di evidenziare i vincoli referenziali

impiegato

progetto

partecipazione

(1,n)

(0,n)

codice

cognome

stip

età

nome

budget

Data consegnaImpiegato(Matricola,Cognome,Stipendio)Progetto(Codice,Nome,Budget)Partecipazione(Matricola,Codice,Data inizio)

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

Realizzato da Roberto Savino

Traduzione di schemi Traduzione di schemi ComplessiComplessi

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

Realizzato da Roberto Savino

Traduzione delle entita’Traduzione delle entita’ Con Con identificatore identificatore

internointerno : : E3(E3(A31A31,A32) ,A32) E4(E4(A41A41,A42) E5(,A42) E5(A51A51,A52) ,A52) E6(E6(A61A61,,A62A62,A63) ,A63)

Con Con identificatore identificatore esternoesterno : : E1(E1(A11A11,,A51A51,A12) ,A12) E2(E2(A21A21,,A11A11,,A51A51,A22),A22)

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

Realizzato da Roberto Savino

Traduzioni delle Traduzioni delle AssociazioniAssociazioni

Le relazioni R1 ed R12 sono state tradotte con Le relazioni R1 ed R12 sono state tradotte con l’identificazione esterna di E1 ed E2.l’identificazione esterna di E1 ed E2.

Per tradurre R3 scarichiamo su E5 con opportuni Per tradurre R3 scarichiamo su E5 con opportuni rinominamenti gli attributi che individuano E6 rinominamenti gli attributi che individuano E6 nonche’ l’attributo AR3 di R3nonche’ l’attributo AR3 di R3

Facciamo lo stesso per R4 ed R5 scaricando tutto Facciamo lo stesso per R4 ed R5 scaricando tutto su E5(rinominando R3 come A61R3 ed R4 con su E5(rinominando R3 come A61R3 ed R4 con A61R4)A61R4)

Infine l’unica associazione R2 molti a molti viene Infine l’unica associazione R2 molti a molti viene tradotta R2(tradotta R2(A21A21,,A11A11,,A51A51,,A31A31,,A41A41,AR21,AR22),AR21,AR22)

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

Realizzato da Roberto Savino

Schema FinaleSchema FinaleE1(E1(A11A11,,A51A51,A12) ,A12)

E2(E2(A21A21,,A11A11,,A51A51,A22) ,A22)

E3(E3(A31A31,A32) ,A32)

E4(E4(A41A41,A42) ,A42)

E5(E5(A51A51,A52,A61R3,A62R3,AR3,A61R4, A62R4,A61R5,A62R5,AR5) ,A52,A61R3,A62R3,AR3,A61R4, A62R4,A61R5,A62R5,AR5)

E6(E6(A61A61,,A62A62,A63) R2(,A63) R2(A21A21,,A11A11,,A51A51,,A31A31,,A41A41,AR21,AR22),AR21,AR22)