Upload
majong-devjfu
View
472
Download
1
Embed Size (px)
Citation preview
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‐LaNormalizzazionedelleRelazioni
NellelezioniprecedenM
BasidiDaM‐LaNormalizzazionedelleRelazioni3
AbbiamovistolaconversionedeglischemiE/Rinschemilogicirelazionali
questaaTvità,chevasoGoilnomediprogeGologico,prevedeunaseriedifasicheapplicanoregoleditrasformazioneetraduzione
Inquestalezione
BasidiDaM‐LaNormalizzazionedelleRelazioni4
conMnueremoarisolvereiproblemilegaMallacostruzionedischemirelazionali,vedremo,inparMcolare,comeprodurreschemirelazionaliesenMdaanomalieenonsusceTbilidiperditadiinformazioninelleoperazionidijoin
riprenderemoilconceGodidipendenzafunzionale
introdurremoilconceGodiformanormale
BasidiDaM‐LaNormalizzazionedelleRelazioni5
impiegato sMpendio budgetprogeGo funzione
Rossi2biella300tecnicoVerdi3valvola500progeTstaVerdi3albero1500progeTstaNeri7albero1500direGore
Neri7valvola500consulenteNeri7biella300consulente
Mori6biella300direGore
Bianchi6biella300progeTsta
Mori6albero1500progeTstaBianchi6albero1500progeTsta
Ilcasoinesame
Ridondanzeeanomalie
BasidiDaM‐LaNormalizzazionedelleRelazioni6
1)ridondanza: siripetepiùvoltelanoMziacheunimpiegatopercepisceuncertosMpendio
siripetepiùvoltecheunprogeGohauncertobudget
ivaloridiprogeGoediimpiegatosiripetonoequindinonpossonosingolarmenteesserepresicomechiave
lachiaveè(progeGo,impiegato):nonsihannoripeMzioni
BasidiDaM‐LaNormalizzazionedelleRelazioni7
2)aggiornamento: poichésiripetepiùvoltelanoMziacheunimpiegatopercepisceuncertosMpendio,selosMpendiovieneaggiornatoquestodeveesserefaGosutuGeletuplecheriguardanouncertoimpiegato
poichésiripetepiùvoltecheunprogeGohauncertobudget,seilbudgetvieneaggiornatolosidevefaresutuGeletuplecheriguardanouncertoprogeGo
Ridondanzeeanomalie
BasidiDaM‐LaNormalizzazionedelleRelazioni8
3)cancellazione: supponendocheunimpiegatolascil’aziendaononpartecipiaprogeTrischiamodiperdereidaMsuiprogeTseeral’ulMmoimpiegatodelprogeGo
analogamenteperidaMdegliimpiegaMseunprogeGovieneeliminato
selachiaveè(progeGo,impiegato)inentrambiicasidieliminazionesipotrebberoaverevalorinullinellachiave
Ridondanzeeanomalie
BasidiDaM‐LaNormalizzazionedelleRelazioni9
4)inserimento: selachiaveè(progeGo,impiegato)nonèpossibileinserireidaMdiunimpiegatosenonèstatoassegnatoadalmenounprogeGo,analogamenteperunnuovoprogeGoacuinonèstatoancoraassegnatounimpiegato
acceGareuninserimentodi(progeGo)o,(impiegato)vuoldirechesiinserisconovalorinulli(incompaMbiliconlachiave)
Ridondanzeeanomalie
BasidiDaM‐LaNormalizzazionedelleRelazioni10
casicosìeclatanMnonsuccedonosesièseguitalaprassicorreGadiprogeGazione:primaloschemaE/Repoilatraduzioneinschemarelazionale
puòperòsuccederechecarenzedispecificheoerroridischemaMzzazionepossanoportarearelazioniconanomalie
icasisonoinvecepiùfrequenMquandosiesaminanovecchiDBscarsamentedocumentaMo,addiriGura,sicercadiintuirelanaturadeidaMdadocumenMchesinteMzzanoleinformazionisumodulicartacei
Ridondanzeeanomalie
Dipendenzefunzionali
BasidiDaM‐LaNormalizzazionedelleRelazioni11
Ladipendenzafunzionaleèunvincolodiintegritàperilmodellorelazionale
dall’osservazionedellarelazionericaviamoche: ognivoltacheinunatuplacompareuncertoimpiegatolosMpendioèsemprelostesso
possiamodirecheilvaloredell’impiegatodeterminailvaloredellosMpendio,cioè: esisteunafunzionecheassociaadognivaloreneldominioimpiegatounoedunsolovaloreneldominiosMpendio
analogamenteperunvalorediprogeGo
Ricordiamoche:
BasidiDaM‐LaNormalizzazionedelleRelazioni12
impiegato sMpendio budgetprogeGo funzione
Rossi2biella300tecnico
Verdi3valvola500progeTsta
Verdi3albero1500progeTsta
Neri7albero1500direGore
Neri7valvola500consulente
Neri7biella300consulente
Schema
Relazione
Dominio:2,3,4,5….20
BasidiDaM‐LaNormalizzazionedelleRelazioni13
Ladipendenzafunzionalesipuòdefinireformalmente: dataunarelazioneRdefinitasuunoschemaS(X)eduesoGoinsiemidiaGribuMYeZnonvuoMdiX,esisteunadipendenzafunzionaleY→Z,se,perognicoppiadituplet1et2avenMlostessovalorediYrisultachehannolostessovalorediZ
dall’osservazionedellarelazionericaviamoche: impiegato→sMpendioeprogeGo→budget
Dipendenzefunzionali
BasidiDaM‐LaNormalizzazionedelleRelazioni14
AGenzione:seprendiamolachiaveKdellarelazioneRsiverificafacilmentecheesisteunadipendenzafunzionaletraKedogniaGributodelloschema
infaTperdefinizionedichiaveesisteunsolovalorediKinRequindiladipendenzadicuisopraèbanalmentesoddisfaGa
nell’esempio:impiegato,progeGo→sMpendio,budget,funzione
Dipendenzefunzionali
BasidiDaM‐LaNormalizzazionedelleRelazioni15
Però: impiegato,progeGo→funzioneèunadipendenzacompleta,
mentreimpiegato,progeGo→sMpendio eimpiegato,progeGo→budgetsonoinrealtàimpiegato→sMpendioeprogeGo→budgetquestesonodipendenzeparzialichecausanoanomalie
Dipendenzefunzionali
BasidiDaM‐LaNormalizzazionedelleRelazioni16
LeridondanzeeleanomaliesonocausatedadipendenzeX→YchepermeGonoripeMzioniall’internodellarelazione(impiegato,sMpendioeprogeGo,budgetsiripetononellarelazione),inaltreparole:
LeridondanzeeleanomaliesonocausatedadipendenzeX→YtalicheXnonconMenelachiavedellarelazione
UnarelazioneRèinformanormale(BoyceeCodd)se,perognidipendenzaX→YinR,XconMeneunachiaveKdiR(Xèsuperchiave)
Dipendenzefunzionali
BasidiDaM‐LaNormalizzazionedelleRelazioni17
Unarelazionenoninformanormaleèpossibilechevengadecompostaindueopiùrelazioniinformanormale
ladecomposizionesipuòaGuareeffeGuandoproiezioniinmodotaledaoGenerecheciascunadipendenzafunzionalecorrispondaadunarelazioneseparata
nell’esempio:FUNZIONIperimpiegato,progeGo→funzioneIMPIEGATIperimpiegato→sMpendioPROGETTIperprogeGo→budget
Dipendenzefunzionali
Dipendenzefunzionali
BasidiDaM‐LaNormalizzazionedelleRelazioni18
impiegato sMpendio
Rossi2Verdi3
Neri7
Mori6
Bianchi6
budgetprogeGo
biella300
valvola500
albero1500
impiegato progeGo funzione
Rossibiellatecnico
VerdivalvolaprogeTsta
VerdialberoprogeTsta
NerialberodireGore
Nerivalvolaconsulente
Neribiellaconsulente
MoribielladireGore
BianchibielladireGore
MorialberoprogeTsta
BianchialberoprogeTsta
BasidiDaM‐LaNormalizzazionedelleRelazioni19
FUNZIONI,IMPIEGATIePROGETTIsononormalizzateperchésoddisfanoladefinizionediformanormale
larelazionenondecompostapuòesserericostruitaconiljoin:
SELECT*FROMIMPIEGATII,PROGETTIP,FUNZIONIFWHEREI.IMPIEGATO=F.IMPIEGATOANDF.PROGETTO=P.PROGETTO
Dipendenzefunzionali
BasidiDaM‐LaNormalizzazionedelleRelazioni20
impiegaM
impiegato
progeT(0,n) (0,n)
sMpendio
funzioniprogeGo
budget
• QuandolarelazioneoriginaleèricostruibileconiljoinladecomposizioneècorreGaesidiceesseresenzaperdita• notarecheloschemacorreGocorrispondeallatraduzionedi:
funzione
Dipendenzefunzionali
BasidiDaM‐LaNormalizzazionedelleRelazioni21
SchemiE/RcorreTproduconoingeneralebuonischemirelazionalisenzaproblemidianomalieeridondanzeecorrispondonoadecomposizionisenzaperdita
SchemiE/RdovenontuTivincolisonoespressinelloschemae/oinpresenzadiassociazionin_ariepossonoperòveniretradoT(nonintenzionalmente)inschemirelazionalinonbennormalizzaM
Èquindiimportantericontrollarelanormalizzazione:operazionequestanonsemprefacileo,possibilepercarenzadispecifice
Dipendenzefunzionali
BasidiDaM‐LaNormalizzazionedelleRelazioni22
paziente
c_paz
medico
matricola
(0,n) (0,n)
(1,1)(1,1)
appuntamento
(data ,ora)
conha
c_or
nome nome
adesempio,loschemagiàvistoinprecedenza:
Dipendenzefunzionali
BasidiDaM‐LaNormalizzazionedelleRelazioni23
Permezzodell’idenMficazioneesternaindividuacorreGamenteleduedipendenze:
matricola,data,ora→c_pazc_paz,data,ora→matricola
esitraducenelloschemarelazionale:
medico(matricola,nome)paziente(c_paz,cognome)appuntamento(matricola,data,ora,c_paz)
oppure
appuntamento(c_paz,data,ora,matricola)
Dipendenzefunzionali
BasidiDaM‐LaNormalizzazionedelleRelazioni24
• NonsempreledecomposizioniproduconoeffeTdesiderabili
• decomposizionierratepossonogenerarerelazioniche,ricongiunteconiljoin,produconorelazionicondaMincerMsihaquindiunaperditadiinformazione
• consideriamounesempiodirelazione:
SEDI(impiegato,progeGo,sede)conledipendenze:
impiegato,progeGo→sedeimpiegato→sedeeprogeGo→sede
Dipendenzefunzionali
BasidiDaM‐LaNormalizzazionedelleRelazioni25
impiegato progeGo sede
Rossibiellamilano
Verdivalvolatorino
Verdialberotorino
Bianchicinghiamilano
Nerivalvolatorino
decomponendosecondoleduedipendenze:
chiavediSEDI:impiegato,progeGo
Vincolo:gliimpiegaMhannocomesedelasededeiloroprogeT
Dipendenzefunzionali
BasidiDaM‐LaNormalizzazionedelleRelazioni26
impiegato sede
Rossimilano
Verditorino
Bianchimilano
Neritorino
progeGo sede
biellamilano
valvolatorino
alberotorino
cinghiamilano
iljoinsull’aGributocomune:SELECTI.IMPIEGATO,P.PROGETTO,P.SEDEFROMIMPIEGATII,PROGETTIPWHEREI.SEDE=P.SEDE
impiegati
progetti
Dipendenzefunzionali
BasidiDaM‐LaNormalizzazionedelleRelazioni27
impiegato progeGo sede
Rossibiellamilano
Verdivalvolatorino
Verdialberotorino
Bianchibiellamilano
Nerivalvolatorino
Rossicinghiamilano
Bianchicinghiamilano
Nerialberotorino
creatuplechenonesistevano!
Dipendenzefunzionali
BasidiDaM‐LaNormalizzazionedelleRelazioni28
• Inoltre,anchesesonocorreGe,leduerelazioninonrispeGanoilvincolochelasedediunimpiegatoèlasededeisuoiprogeT,unprogeGopotrebbecambiaresedeindipendentementedagliimpiegaM
• Regola:unabuonadecomposizionedeveprevederelaricostruzionedellarelazionedipartenzaconoperazionidijoinsuchiavi
• Osservazione:ijoinsuaGribuMchesicorrispondononamsonorischiosi
Dipendenzefunzionali
BasidiDaM‐LaNormalizzazionedelleRelazioni29
progeGo sede
biellamilano
valvolatorino
alberotorino
cinghiamilano
iljoinsull’aGributocomune:SELECTI.IMPIEGATO,P.PROGETTO,P.SEDEFROMIMPIEGATII,PROGETTIPWHEREI.PROGETTO=P.PROGETTO
impiegati
progetti
impiegato progeGo
Rossibiella
Verdivalvola
Verdialbero
Bianchicinghia
Nerivalvola
Dipendenzefunzionali
BasidiDaM‐LaNormalizzazionedelleRelazioni30
impiegato progeGo sede
Rossibiellamilano
Verdivalvolatorino
Verdialberotorino
Bianchicinghiamilano
Nerivalvolatorino
ladecomposizioneècorreGaperòabbiamopersonelloschemaprecedenteladipendenzaimpiegato→sede
problema:cheneèdiVerdiseilprogeGoAlberovaaRoma?
Dipendenzefunzionali
BasidiDaM‐LaNormalizzazionedelleRelazioni31
SefossimoparMMdalloschemaE/R?
progeGo impiegato
lavoro(1,n)(1,m)
nome
sede_p
cognome
sede_i
avremmocomunquedovutodichiarare,apartedalloschemaE/R,ilvincolochelasedediunimpiegatodeveessereugualeallasededeiprogeTincuilavora,eloschemarelazionale:
Dipendenzefunzionali
BasidiDaM‐LaNormalizzazionedelleRelazioni32
progeGo sede
biellamilano
valvolatorino
alberotorino
cinghiamilano
lavoro
progetti
impiegato progeGo
Rossibiella
Verdivalvola
Verdialbero
Bianchicinghia
Nerivalvolaimpiegato sede
Rossimilano
Verditorino
Bianchimilano
Neritorino
impiegati
questasoluzioneconsenteanche(0,n)nell’associazione
Dipendenzefunzionali
BasidiDaM‐LaNormalizzazionedelleRelazioni33
iljoinadessosarà:
SELECTI.IMPIEGATO,P.PROGETTO,P.SEDEFROMIMPIEGATII,PROGETTIP,LAVOROLWHEREI.IMPIEGATO=L.IMPIEGATOANDL.PROGETTO=P.PROGETTO
cheoTenelarelazionerichiestasenzaperditaperchélavorasuchiavi
perònonc’ègaranziasull’uguaglianzadisede
Dipendenzefunzionali
ConclusioniparMcolari
BasidiDaM‐LaNormalizzazionedelleRelazioni34
èdifficileprogeGareunasoluzionerelazionalechemantengaletredipendenzesenzal’aiutodisowwarescriGoadhoc
èpossibilericavareunasoluzionesenzaperdita
partendodalloschemaE/RsioTeneunasoluzionepiùflessibileperchéconsenteinserimenMindipendenMdinuoviprogeTedimpiegaMsenzaintrodurrevalorinulli
Conclusionigenerali
BasidiDaM‐LaNormalizzazionedelleRelazioni35
ProgeGareidaMèdifficile– illavorodigruppoèimportanMssimoperevitaredifferenzedipercezioneedivisionedeiproblemi
– DFD,schemiE/R,dipendenzefunzionalisonouMlissimiperdescrivereecapireiproblemi tantapiùconoscenzasiriesceadescrivereneglischemi,tantamenoverràespressainconvincolimenoleggibilio,dispersainprogrammididifficileleGuraeaggiornamento
BasidiDaM‐LaNormalizzazionedelleRelazioni36
– èbeneperòanchenoneccedereconschemiparMcolarmentecomplicaMcontenenMuneccessodiconceTfiTziedicollegamentocherendonodifficilelaleGuraelasoluzioneinnaturale
– ladocumentazionediprogeGoèpertantofondamentale
Conclusionigenerali