36

D3 Normali

Embed Size (px)

Citation preview

Page 1: D3 Normali
Page 2: D3 Normali

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

Page 3: D3 Normali

NellelezioniprecedenM

BasidiDaM‐LaNormalizzazionedelleRelazioni3

  AbbiamovistolaconversionedeglischemiE/Rinschemilogicirelazionali

  questaaTvità,chevasoGoilnomediprogeGologico,prevedeunaseriedifasicheapplicanoregoleditrasformazioneetraduzione

Page 4: D3 Normali

Inquestalezione

BasidiDaM‐LaNormalizzazionedelleRelazioni4

  conMnueremoarisolvereiproblemilegaMallacostruzionedischemirelazionali,vedremo,inparMcolare,comeprodurreschemirelazionaliesenMdaanomalieenonsusceTbilidiperditadiinformazioninelleoperazionidijoin

  riprenderemoilconceGodidipendenzafunzionale

  introdurremoilconceGodiformanormale

Page 5: D3 Normali

BasidiDaM‐LaNormalizzazionedelleRelazioni5

impiegato sMpendio budgetprogeGo funzione

Rossi2biella300tecnicoVerdi3valvola500progeTstaVerdi3albero1500progeTstaNeri7albero1500direGore

Neri7valvola500consulenteNeri7biella300consulente

Mori6biella300direGore

Bianchi6biella300progeTsta

Mori6albero1500progeTstaBianchi6albero1500progeTsta

Ilcasoinesame

Page 6: D3 Normali

Ridondanzeeanomalie

BasidiDaM‐LaNormalizzazionedelleRelazioni6

1)ridondanza:  siripetepiùvoltelanoMziacheunimpiegatopercepisceuncertosMpendio

  siripetepiùvoltecheunprogeGohauncertobudget

  ivaloridiprogeGoediimpiegatosiripetonoequindinonpossonosingolarmenteesserepresicomechiave

  lachiaveè(progeGo,impiegato):nonsihannoripeMzioni

Page 7: D3 Normali

BasidiDaM‐LaNormalizzazionedelleRelazioni7

2)aggiornamento:  poichésiripetepiùvoltelanoMziacheunimpiegatopercepisceuncertosMpendio,selosMpendiovieneaggiornatoquestodeveesserefaGosutuGeletuplecheriguardanouncertoimpiegato

  poichésiripetepiùvoltecheunprogeGohauncertobudget,seilbudgetvieneaggiornatolosidevefaresutuGeletuplecheriguardanouncertoprogeGo

Ridondanzeeanomalie

Page 8: D3 Normali

BasidiDaM‐LaNormalizzazionedelleRelazioni8

3)cancellazione:  supponendocheunimpiegatolascil’aziendaononpartecipiaprogeTrischiamodiperdereidaMsuiprogeTseeral’ulMmoimpiegatodelprogeGo

  analogamenteperidaMdegliimpiegaMseunprogeGovieneeliminato

  selachiaveè(progeGo,impiegato)inentrambiicasidieliminazionesipotrebberoaverevalorinullinellachiave

Ridondanzeeanomalie

Page 9: D3 Normali

BasidiDaM‐LaNormalizzazionedelleRelazioni9

4)inserimento:  selachiaveè(progeGo,impiegato)nonèpossibileinserireidaMdiunimpiegatosenonèstatoassegnatoadalmenounprogeGo,analogamenteperunnuovoprogeGoacuinonèstatoancoraassegnatounimpiegato

  acceGareuninserimentodi(progeGo)o,(impiegato)vuoldirechesiinserisconovalorinulli(incompaMbiliconlachiave)

Ridondanzeeanomalie

Page 10: D3 Normali

BasidiDaM‐LaNormalizzazionedelleRelazioni10

  casicosìeclatanMnonsuccedonosesièseguitalaprassicorreGadiprogeGazione:primaloschemaE/Repoilatraduzioneinschemarelazionale

  puòperòsuccederechecarenzedispecificheoerroridischemaMzzazionepossanoportarearelazioniconanomalie

  icasisonoinvecepiùfrequenMquandosiesaminanovecchiDBscarsamentedocumentaMo,addiriGura,sicercadiintuirelanaturadeidaMdadocumenMchesinteMzzanoleinformazionisumodulicartacei

Ridondanzeeanomalie

Page 11: D3 Normali

Dipendenzefunzionali

BasidiDaM‐LaNormalizzazionedelleRelazioni11

  Ladipendenzafunzionaleèunvincolodiintegritàperilmodellorelazionale

  dall’osservazionedellarelazionericaviamoche:  ognivoltacheinunatuplacompareuncertoimpiegatolosMpendioèsemprelostesso

  possiamodirecheilvaloredell’impiegatodeterminailvaloredellosMpendio,cioè:  esisteunafunzionecheassociaadognivaloreneldominioimpiegatounoedunsolovaloreneldominiosMpendio

  analogamenteperunvalorediprogeGo

Page 12: D3 Normali

Ricordiamoche:

BasidiDaM‐LaNormalizzazionedelleRelazioni12

impiegato sMpendio budgetprogeGo funzione

Rossi2biella300tecnico

Verdi3valvola500progeTsta

Verdi3albero1500progeTsta

Neri7albero1500direGore

Neri7valvola500consulente

Neri7biella300consulente

Schema

Relazione

Dominio:2,3,4,5….20

Page 13: D3 Normali

BasidiDaM‐LaNormalizzazionedelleRelazioni13

  Ladipendenzafunzionalesipuòdefinireformalmente:  dataunarelazioneRdefinitasuunoschemaS(X)eduesoGoinsiemidiaGribuMYeZnonvuoMdiX,esisteunadipendenzafunzionaleY→Z,se,perognicoppiadituplet1et2avenMlostessovalorediYrisultachehannolostessovalorediZ

  dall’osservazionedellarelazionericaviamoche:  impiegato→sMpendioeprogeGo→budget

Dipendenzefunzionali

Page 14: D3 Normali

BasidiDaM‐LaNormalizzazionedelleRelazioni14

  AGenzione:seprendiamolachiaveKdellarelazioneRsiverificafacilmentecheesisteunadipendenzafunzionaletraKedogniaGributodelloschema

  infaTperdefinizionedichiaveesisteunsolovalorediKinRequindiladipendenzadicuisopraèbanalmentesoddisfaGa

  nell’esempio:impiegato,progeGo→sMpendio,budget,funzione

Dipendenzefunzionali

Page 15: D3 Normali

BasidiDaM‐LaNormalizzazionedelleRelazioni15

Però:  impiegato,progeGo→funzioneèunadipendenzacompleta,

  mentreimpiegato,progeGo→sMpendio eimpiegato,progeGo→budgetsonoinrealtàimpiegato→sMpendioeprogeGo→budgetquestesonodipendenzeparzialichecausanoanomalie

Dipendenzefunzionali

Page 16: D3 Normali

BasidiDaM‐LaNormalizzazionedelleRelazioni16

  LeridondanzeeleanomaliesonocausatedadipendenzeX→YchepermeGonoripeMzioniall’internodellarelazione(impiegato,sMpendioeprogeGo,budgetsiripetononellarelazione),inaltreparole:

  LeridondanzeeleanomaliesonocausatedadipendenzeX→YtalicheXnonconMenelachiavedellarelazione

  UnarelazioneRèinformanormale(BoyceeCodd)se,perognidipendenzaX→YinR,XconMeneunachiaveKdiR(Xèsuperchiave)

Dipendenzefunzionali

Page 17: D3 Normali

BasidiDaM‐LaNormalizzazionedelleRelazioni17

  Unarelazionenoninformanormaleèpossibilechevengadecompostaindueopiùrelazioniinformanormale

  ladecomposizionesipuòaGuareeffeGuandoproiezioniinmodotaledaoGenerecheciascunadipendenzafunzionalecorrispondaadunarelazioneseparata

  nell’esempio:FUNZIONIperimpiegato,progeGo→funzioneIMPIEGATIperimpiegato→sMpendioPROGETTIperprogeGo→budget

Dipendenzefunzionali

Page 18: D3 Normali

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

Page 19: D3 Normali

BasidiDaM‐LaNormalizzazionedelleRelazioni19

  FUNZIONI,IMPIEGATIePROGETTIsononormalizzateperchésoddisfanoladefinizionediformanormale

  larelazionenondecompostapuòesserericostruitaconiljoin:

SELECT*FROMIMPIEGATII,PROGETTIP,FUNZIONIFWHEREI.IMPIEGATO=F.IMPIEGATOANDF.PROGETTO=P.PROGETTO

Dipendenzefunzionali

Page 20: D3 Normali

BasidiDaM‐LaNormalizzazionedelleRelazioni20

impiegaM

impiegato

progeT(0,n) (0,n)

sMpendio

funzioniprogeGo

budget

• QuandolarelazioneoriginaleèricostruibileconiljoinladecomposizioneècorreGaesidiceesseresenzaperdita• notarecheloschemacorreGocorrispondeallatraduzionedi:

funzione

Dipendenzefunzionali

Page 21: D3 Normali

BasidiDaM‐LaNormalizzazionedelleRelazioni21

 SchemiE/RcorreTproduconoingeneralebuonischemirelazionalisenzaproblemidianomalieeridondanzeecorrispondonoadecomposizionisenzaperdita

 SchemiE/RdovenontuTivincolisonoespressinelloschemae/oinpresenzadiassociazionin_ariepossonoperòveniretradoT(nonintenzionalmente)inschemirelazionalinonbennormalizzaM

 Èquindiimportantericontrollarelanormalizzazione:operazionequestanonsemprefacileo,possibilepercarenzadispecifice

Dipendenzefunzionali

Page 22: D3 Normali

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

Page 23: D3 Normali

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

Page 24: D3 Normali

BasidiDaM‐LaNormalizzazionedelleRelazioni24

• NonsempreledecomposizioniproduconoeffeTdesiderabili

• decomposizionierratepossonogenerarerelazioniche,ricongiunteconiljoin,produconorelazionicondaMincerMsihaquindiunaperditadiinformazione

• consideriamounesempiodirelazione:

SEDI(impiegato,progeGo,sede)conledipendenze:

impiegato,progeGo→sedeimpiegato→sedeeprogeGo→sede

Dipendenzefunzionali

Page 25: D3 Normali

BasidiDaM‐LaNormalizzazionedelleRelazioni25

impiegato progeGo sede

Rossibiellamilano

Verdivalvolatorino

Verdialberotorino

Bianchicinghiamilano

Nerivalvolatorino

decomponendosecondoleduedipendenze:

chiavediSEDI:impiegato,progeGo

Vincolo:gliimpiegaMhannocomesedelasededeiloroprogeT

Dipendenzefunzionali

Page 26: D3 Normali

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

Page 27: D3 Normali

BasidiDaM‐LaNormalizzazionedelleRelazioni27

impiegato progeGo sede

Rossibiellamilano

Verdivalvolatorino

Verdialberotorino

Bianchibiellamilano

Nerivalvolatorino

Rossicinghiamilano

Bianchicinghiamilano

Nerialberotorino

creatuplechenonesistevano!

Dipendenzefunzionali

Page 28: D3 Normali

BasidiDaM‐LaNormalizzazionedelleRelazioni28

• Inoltre,anchesesonocorreGe,leduerelazioninonrispeGanoilvincolochelasedediunimpiegatoèlasededeisuoiprogeT,unprogeGopotrebbecambiaresedeindipendentementedagliimpiegaM

• Regola:unabuonadecomposizionedeveprevederelaricostruzionedellarelazionedipartenzaconoperazionidijoinsuchiavi

• Osservazione:ijoinsuaGribuMchesicorrispondononamsonorischiosi

Dipendenzefunzionali

Page 29: D3 Normali

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

Page 30: D3 Normali

BasidiDaM‐LaNormalizzazionedelleRelazioni30

impiegato progeGo sede

Rossibiellamilano

Verdivalvolatorino

Verdialberotorino

Bianchicinghiamilano

Nerivalvolatorino

ladecomposizioneècorreGaperòabbiamopersonelloschemaprecedenteladipendenzaimpiegato→sede

problema:cheneèdiVerdiseilprogeGoAlberovaaRoma?

Dipendenzefunzionali

Page 31: D3 Normali

BasidiDaM‐LaNormalizzazionedelleRelazioni31

SefossimoparMMdalloschemaE/R?

progeGo impiegato

lavoro(1,n)(1,m)

nome

sede_p

cognome

sede_i

avremmocomunquedovutodichiarare,apartedalloschemaE/R,ilvincolochelasedediunimpiegatodeveessereugualeallasededeiprogeTincuilavora,eloschemarelazionale:

Dipendenzefunzionali

Page 32: D3 Normali

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

Page 33: D3 Normali

BasidiDaM‐LaNormalizzazionedelleRelazioni33

iljoinadessosarà:

SELECTI.IMPIEGATO,P.PROGETTO,P.SEDEFROMIMPIEGATII,PROGETTIP,LAVOROLWHEREI.IMPIEGATO=L.IMPIEGATOANDL.PROGETTO=P.PROGETTO

cheoTenelarelazionerichiestasenzaperditaperchélavorasuchiavi

perònonc’ègaranziasull’uguaglianzadisede

Dipendenzefunzionali

Page 34: D3 Normali

ConclusioniparMcolari

BasidiDaM‐LaNormalizzazionedelleRelazioni34

  èdifficileprogeGareunasoluzionerelazionalechemantengaletredipendenzesenzal’aiutodisowwarescriGoadhoc

  èpossibilericavareunasoluzionesenzaperdita

  partendodalloschemaE/RsioTeneunasoluzionepiùflessibileperchéconsenteinserimenMindipendenMdinuoviprogeTedimpiegaMsenzaintrodurrevalorinulli

Page 35: D3 Normali

Conclusionigenerali

BasidiDaM‐LaNormalizzazionedelleRelazioni35

  ProgeGareidaMèdifficile–  illavorodigruppoèimportanMssimoperevitaredifferenzedipercezioneedivisionedeiproblemi

–  DFD,schemiE/R,dipendenzefunzionalisonouMlissimiperdescrivereecapireiproblemi  tantapiùconoscenzasiriesceadescrivereneglischemi,tantamenoverràespressainconvincolimenoleggibilio,dispersainprogrammididifficileleGuraeaggiornamento

Page 36: D3 Normali

BasidiDaM‐LaNormalizzazionedelleRelazioni36

–  èbeneperòanchenoneccedereconschemiparMcolarmentecomplicaMcontenenMuneccessodiconceTfiTziedicollegamentocherendonodifficilelaleGuraelasoluzioneinnaturale

–  ladocumentazionediprogeGoèpertantofondamentale

Conclusionigenerali