D1 Plogico
-
Upload
majong-devjfu -
Category
Technology
-
view
237 -
download
8
Transcript of D1 Plogico
C)ModelloRelazionale,Algebrarelazionale,SQL
1 2 3 4 5 6 7
E)TecnologiadiunDBMS
1 2 3 4 5 6
A)Introduzione
1 2
B)Prog.ConceGuale(ER)
1 2 3 4 5 6 7
D)Prog.LogicaeNormalizzazione
1 2 3 4
F)ProgrammazioneDB
1 2
2 BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)
ProgeGologico
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)3
LoschemaE/RdescriveundominioapplicaMvoadundatolivellodiastrazione
LoschemaE/RèmoltouMleper: fornireunadescrizionesinteMcaevisiva rappresentarebuonapartedellasemanMcadell’applicazione
scambiareinformazionisull’aWvitàprogeGualetraimembridelteamdiprogeGoemantenereunadocumentazione
ProgeGologico
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)4
NonesistonoDBMSingradodioperaredireGamentesuiconceWdischemiE/R èquindinecessariotradurliinaltrischemididaM(logicorelazionaleinquestelezioni)
questatraduzionepuòessereeseguitainmodosemi‐automaMco
lesceltealternaMvedevonotenerecontodell’efficienzadelloschemalogicorisultanteedelleoperazionidaeffeGuare(derivanMdaflussieprocessi)
Processodidesign
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)5
dominioapplicaMvo
schemaconceGuale(E/R)
DBMS(SQL:DDL,DML)
schemalogico(SQL:DDL)
progeGazionelogica
progeGazioneconceGuale
DB
raccoltarequisiM
SceltealternaMve
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)6
– ilprogeGologicopresentaingeneraleunasoluzionestandarddeterminabileinmodosempliceedireGo
– asecondadeicasisonoperòdisponibilianchesoluzionialternaMvechepossonorivelarsipiùomenoconvenienM
– perunasceltacorreGasononecessarie:• previsionisullanaturaelafrequenzadelleoperazioni• valutazioniquanMtaMvesuivolumididaM(enMtà,associazioni,percentualidicoperturadigerarchie,percentualidivalorinulli)
SceltealternaMve
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)7
sipossonoindividuarealcuneregoleintuiMve: leproprietàlogichesonocomunqueprimarierispeGoaimoMvidiefficienza
teneresullastessaenMtàinformazionicheverrannodifrequenteconsultateinsieme
teneresuenMtàseparateinformazionicheverrannoconsultateseparatamente
limitarel’incidenzadivalorinulliperaGribuMopzionali
FasidelprogeGo
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)8
ilprogeGoproducetrasformazionietraduzionidelloschemaE/RconleseguenMfasi:
1 eliminazionedellegerarchieisa2 selezionedellechiaviprimarie,eliminazionedelleidenMficazioniesterne
3 trasformazionedegliaGribuMcomposMomulMpli4 traduzionedienMtàeassociazioniinschemidirelazioni
5 verificadinormalizzazione
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)9
dopoleprimetrefasi,loschemaE/RècosMtuitosoltantodaenMtà,associazionieaGribuMsemplici
laquartafasenonècomplessa laquintarichiedemoltaaGenzione
! sitengapresentecheognitrasformazioneimpoverisceloschema;lasemanMcapersadeverestaresoGoformadivincolidiintegritàchegovernerannol’uMlizzodellerelazioni
FasidelprogeGo
Eliminazionedellegerarchie
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)10
ilmodellorelazionalenonrappresentalegerarchie,legerarchiesonososMtuitedaenMtàeassociazioni:
E
E1 E2
K
A
A2A1
1)mantenimentodelleenMtàconassociazioni
2)collassoversol’alto
3)collassoversoilbasso
l’applicabilitàelaconvenienzadellesoluzionidipendonodalleproprietàdicoperturaedalleoperazionipreviste
MantenimentodelleenMtà
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)11
– tuGeleenMtàvengonomantenute
– leenMtàfigliesonoinassociazioneconl’enMtàpadre
– leenMtàfigliesonoidenMficateesternamentetramitel’associazione
E
E1 E2
KA
A2A1
(1,1)(1,1)
(0,1) (0,1)
questasoluzioneèsemprepossibile,indipendentementedallacopertura
MantenimentoenMtà‐es.:
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)12
progeGo
prog_sw prog_hw
coddesc
n_schede
mesiuomo
comp_hw
usa
(1,n)
(0,n)
(1,1)
(0,1)
(1,1)
(0,1)
progeGo
prog_sw prog_hw
coddesc
n_schedemesiuomo
comp_hw
usa
(1,n)
(0,n)
Eliminazionedellegerarchie
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)13
Ilcollassoversol’altoriuniscetuGeleenMtàfiglienell’enMtàpadre
E
E1 E2
K
A2A1
A
E K
A1
A
seleGore
A2(0,1)
(0,1)
seleGoreèunaGributochespecificaseuna
istanzadiEapparMeneaunadellesoGoenMtà
ISA:collassoversol’alto
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)14
ilcollassoversol’altofavorisceoperazionicheconsultanoinsiemegliaGribuMdell’enMtàpadreequellidiunaenMtàfiglia:
inquestocasosiaccedeaunasolaenMtà,anzichéadueaGraversounaassociazione
gliaGribuMobbligatoriperleenMtàfigliedivengonoopzionaliperilpadre
siavràunacertapercentualedivalorinulli
Coperturadell’ISA totaleesclusiva:seleGorehaNvalori,
quantesonolesoGoenMtà
parzialeesclusiva:seleGorehaN+1valori;ilvaloreinpiùserve
perleistanzechenonappartengonoadalcunasoGoenMtà
ISA:collassoversol’alto
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)15
E
KA1
AseleGore
A2
(0,1)
(0,1)
ISA:collassoversol’alto
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)16
nonesclusiva:occorronotanMseleGoribooleaniquantesonolesoGoenMtà,sel_iè“vero”perogniistanzadiEcheapparMeneaE_iselacoperturaèparzialeiseleGoripossonoesseretuW“falsi”leassociazioniconnesseallesoGoenMtàsitrasportanosuE,leeventualicardinalitàminimediventano0
E
K
A
sel_i
Coperturadell’ISA:
(0,n)
ISA:collassoversol’alto
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)17
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)
seleGore
ildominiodiselè(L,D,N)
(p,e)
cod_r
ISA:collassoversol’alto
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)18
studente(123,rossi)laureando(123,DFD)studente(218,bianchi)studente(312,verdi)diplomando(312,turbina)
studente(123,rossi,L,DFD,NULL)studente(218,bianchi,N,NULL,NULL)studente(312,verdi,D,NULL,turbina)
(seleGore)
ISA:collassoversol’alto
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)19
esisteunaprecisarelazionetrailvaloredelseleGoreeicampichepossonoaverevalorediversodaNULL
campiprimaobbligatorioraammeGonoilvaloreNULL
perunasMmadellepercentualidiNULLoccorreconoscerelepercentualidilaureandiediplomandi
ISA:collassoversoilbasso
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)20
Collassoversoilbasso: sieliminal’enMtàpadretrasferendonegliaGribuMsutuGeleenMtàfiglie unaassociazionedelpadreèreplicata,tantevoltequantesonoleenMtàfiglie
lasoluzioneèinteressanteinpresenzadimolMaGribuMdispecializzazione(conilcollassoversol’altosiavrebbeuneccessodivalorinulli)
favorisceleoperazioniincuisiaccedeseparatamentealleenMtàfiglie
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)21
limiMdiapplicabilità:
• selacoperturanonètotalenonsipuòfare:
dovemeGeregliEchenonsononéE1,néE2?
• selacoperturanonèesclusivaintroduceridondanza:perunaistanzapresentesiainE1cheinE2sirappresentanoduevoltegliaGribuMdiE
E1 E2
KAA2A1AK
E
E1 E2
K
A2A1
A
ISA:collassoversoilbasso
Collassoversoilbasso:es.
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)22
dipendente
impiegato operaio
cfcognome
qualificamansione
(t,e)
dirigenteclasse
iscri<o
(0,1)
(1,n)
(0,1)
(1,n)
(1,n)(1,n)
dirige
sindacato
Collassoversoilbasso:es.
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)23
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)
(0,1)
(0,n)
(0,n)(0,n)
Sceltadellachiaveprimaria
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)24
ÈnecessariochetraidiversiidenMficatoridiunaenMtàvengadesignataunachiaveprimaria:perlachiaveprimariaoccorrerà,infaW,cheilDBMSsiaprovvistodistrumenMpergaranMrel’unicitàdeivalori
criterieurisMcidiscelta: primo:sceglierelachiavecheèusatapiùfrequentementeperaccedereall’enMtà
secondo:sipreferisconochiavisempliciachiavicomposte,interneanzichéesterne
IdenMficatoriesterni
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)25
unacomponentediidenMficazioneesternadiunaenMtàE2daunaenMtàE1aGraversounaassociazioneRcomportailtrasportodellachiaveprimariadiE1suE2
stabilimentocodice
matrdipendente
(1,n)
(1,1)
cognome
denom
lavora
(E1)
(R)
(E2)
IdenMficatoriesterni
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)26
inquestomodol’associazioneèrappresentataaGraversolachiave,epuòessereeliminata
lachiavetrasportataèchiaveesterna
inpresenzadipiùidenMficazioniincascata,ènecessarioiniziarelapropagazionedall’enMtàchenonhaidenMficazioniesterne
stabilimentocodice
matr dipendente
cognome
codice
AGribuMcomposM/ripetuM
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)27
cognome
lerelazioninonpossono(perdefinizione)contenereaGribuMcomposMo,aGribuMripetuMmasolamenteaGribuM“atomici”
cf
dipendente
indirizzo
vianumciGà
codice
qualifica descrizione(0,n)
AGribuMcomposM
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)28
Duepossibilisoluzioni eliminarel’aGributocompostoeconsiderareisuoicomponenMcomeaGribuMsemplici
inquestomodosiperdelavisioneunitariamasimanMenel’arMcolazionedeicomponenM
dipendente
via num ciGà
qualifica(0,n)
cf
cognome
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)29
eliminareicomponenMeconsiderarel’aGributocomesemplice
inquestomodoloschemarisultasemplificato,perdendopartedeideGagli
dipendente
indirizzo
qualifica
(0,n)cf
cognome
AGribuMcomposM
AGribuMripetuM
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)30
Ladefinizionedirelazioneimponeche,seunaenMtàEhaunaGributoAripetuto,sicreiunanuovaenMtàchecontengal’aGributoesiacollegataaE:Casoa)‐unvalorepuòcomparireunavoltasolanellaripeMzione:lanuovaenMtàEAhal’idenMficatorecompostodall’idenMficatorediEpiùl’aGributoA
cfdipendente codicequalifica
descr.indir.
cfcogn.
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)31
Casob)‐unvalorepuòcomparirepiùvoltenellaripeMzione:lanuovaenMtàEAhal’idenMficatorecompostodall’idenMficatorediEpiùunvaloreidenMficantesinteMco(adesempio,unnumerod’ordine)
dataparMtacasa
ospiMmarcatori
(0,n)
AGribuMripetuM
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)32
n_ordine
dataparMtacasa
ospiM
marcatore
....
datamarcaturecasa (1,1)
AGribuMripetuM
Traduzionestandard
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)33
ognienMtàètradoGaconunarelazioneconglistessiaGribuM lachiaveèlachiave(oidenMficatore)dell’enMtàstessa(giàvisto)
ogniassociazioneètradoGaconunarelazioneconglistessiaGribuM,cuisiaggiungonogliidenMficatoridituGeleenMtàcheessacollega(giàvisto) lachiaveècompostadallechiavidelleenMtàcollegate(questapuòperòessereunasuperchiave,comesivedràinseguito)
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)34
E1(K1,A1,B1,...)
E2(K2,A2,B2,...)
R(K1,K2,AR,BR,...)
E1
K1
(1,n)
(1,n)
K2
E2
A1
R
B1
A2B2
AR
BR
Traduzionestandard
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)35
studentematr
(1,n)
(1,n)
codicecorso
cognome
piano_s
denom.
anno
nome
Traduzionestandardes.
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)36
STUDENTE(MATR,COGNOME,NOME)
CORSO(CODICE,DENOM)
PIANO_ST(MATR,CODICE,ANNO)FK: MATRREFERENCESSTUDENTEFK: CODICEREFERENCESCORSO
Traduzionestandardes.
inSQL...
BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)37
CREATE TABLE STUDENTE (MATR... NOT NULL, …, NOME... , PRIMARY KEY (MATR));
CREATE TABLE CORSO (CODICE... NOT NULL, DENOM ... , PRIMARY KEY (CODICE));
CREATE TABLE PIANO_ST (MATR... NOT NULL, CODICE... NOT NULL, ANNO… PRIMARY KEY (MATR, CODICE), FOREIGN KEY (MATR) REFERENCES STUDENTE FOREIGN KEY (CODICE) REFERENCES CORSO);
Traduzionestandardes.