LA PROGETTAZIONE DELLE BASI DI DATI Progettazione concettuale 2^ parte __ Progettazione logica...
-
Upload
malvolio-quaranta -
Category
Documents
-
view
220 -
download
3
Transcript of LA PROGETTAZIONE DELLE BASI DI DATI Progettazione concettuale 2^ parte __ Progettazione logica...
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
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
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)
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
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
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)
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)
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)
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
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
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
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
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
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
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
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
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))
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
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
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
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
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
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;
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...),
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
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
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
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).
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
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
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
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
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..
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
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
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)
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à
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
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
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
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
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
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
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)
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
Realizzato da Roberto Savino
Partizionamento di Partizionamento di entitàentità
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
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)
Realizzato da Roberto Savino
Accorpamento di entitàAccorpamento di entità
E’ l’operazione inversa del E’ l’operazione inversa del partizionamentopartizionamento
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.
Realizzato da Roberto Savino
Partizionamento/Partizionamento/Accorpamento di Accorpamento di
associazioniassociazioni
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
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
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)
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
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
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
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)
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)
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
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.
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
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
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
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))
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,...)
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
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à)
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)
Realizzato da Roberto Savino
Traduzione di schemi Traduzione di schemi ComplessiComplessi
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)
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)
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)