D1 Plogico

37

Transcript of D1 Plogico

Page 1: D1 Plogico
Page 2: 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)

Page 3: D1 Plogico

ProgeGologico

BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)3

  LoschemaE/RdescriveundominioapplicaMvoadundatolivellodiastrazione

  LoschemaE/RèmoltouMleper:  fornireunadescrizionesinteMcaevisiva  rappresentarebuonapartedellasemanMcadell’applicazione

  scambiareinformazionisull’aWvitàprogeGualetraimembridelteamdiprogeGoemantenereunadocumentazione

Page 4: D1 Plogico

ProgeGologico

BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)4

  NonesistonoDBMSingradodioperaredireGamentesuiconceWdischemiE/R  èquindinecessariotradurliinaltrischemididaM(logicorelazionaleinquestelezioni)

  questatraduzionepuòessereeseguitainmodosemi‐automaMco

  lesceltealternaMvedevonotenerecontodell’efficienzadelloschemalogicorisultanteedelleoperazionidaeffeGuare(derivanMdaflussieprocessi)

Page 5: D1 Plogico

Processodidesign

BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)5

dominioapplicaMvo

schemaconceGuale(E/R)

DBMS(SQL:DDL,DML)

schemalogico(SQL:DDL)

progeGazionelogica

progeGazioneconceGuale

DB

raccoltarequisiM

Page 6: D1 Plogico

SceltealternaMve

BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)6

–  ilprogeGologicopresentaingeneraleunasoluzionestandarddeterminabileinmodosempliceedireGo

–  asecondadeicasisonoperòdisponibilianchesoluzionialternaMvechepossonorivelarsipiùomenoconvenienM

–  perunasceltacorreGasononecessarie:•  previsionisullanaturaelafrequenzadelleoperazioni•  valutazioniquanMtaMvesuivolumididaM(enMtà,associazioni,percentualidicoperturadigerarchie,percentualidivalorinulli)

Page 7: D1 Plogico

SceltealternaMve

BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)7

sipossonoindividuarealcuneregoleintuiMve:  leproprietàlogichesonocomunqueprimarierispeGoaimoMvidiefficienza

  teneresullastessaenMtàinformazionicheverrannodifrequenteconsultateinsieme

  teneresuenMtàseparateinformazionicheverrannoconsultateseparatamente

  limitarel’incidenzadivalorinulliperaGribuMopzionali

Page 8: D1 Plogico

FasidelprogeGo

BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)8

ilprogeGoproducetrasformazionietraduzionidelloschemaE/RconleseguenMfasi:

1  eliminazionedellegerarchieisa2  selezionedellechiaviprimarie,eliminazionedelleidenMficazioniesterne

3  trasformazionedegliaGribuMcomposMomulMpli4  traduzionedienMtàeassociazioniinschemidirelazioni

5  verificadinormalizzazione

Page 9: D1 Plogico

BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)9

  dopoleprimetrefasi,loschemaE/RècosMtuitosoltantodaenMtà,associazionieaGribuMsemplici

  laquartafasenonècomplessa  laquintarichiedemoltaaGenzione

!  sitengapresentecheognitrasformazioneimpoverisceloschema;lasemanMcapersadeverestaresoGoformadivincolidiintegritàchegovernerannol’uMlizzodellerelazioni

FasidelprogeGo

Page 10: D1 Plogico

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

Page 11: D1 Plogico

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

Page 12: D1 Plogico

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)

Page 13: D1 Plogico

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à

Page 14: D1 Plogico

ISA:collassoversol’alto

BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)14

  ilcollassoversol’altofavorisceoperazionicheconsultanoinsiemegliaGribuMdell’enMtàpadreequellidiunaenMtàfiglia:

  inquestocasosiaccedeaunasolaenMtà,anzichéadueaGraversounaassociazione

  gliaGribuMobbligatoriperleenMtàfigliedivengonoopzionaliperilpadre

  siavràunacertapercentualedivalorinulli

Page 15: D1 Plogico

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)

Page 16: D1 Plogico

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)

Page 17: D1 Plogico

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

Page 18: D1 Plogico

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)

Page 19: D1 Plogico

ISA:collassoversol’alto

BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)19

  esisteunaprecisarelazionetrailvaloredelseleGoreeicampichepossonoaverevalorediversodaNULL

  campiprimaobbligatorioraammeGonoilvaloreNULL

  perunasMmadellepercentualidiNULLoccorreconoscerelepercentualidilaureandiediplomandi

Page 20: D1 Plogico

ISA:collassoversoilbasso

BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)20

Collassoversoilbasso:  sieliminal’enMtàpadretrasferendonegliaGribuMsutuGeleenMtàfiglie  unaassociazionedelpadreèreplicata,tantevoltequantesonoleenMtàfiglie

  lasoluzioneèinteressanteinpresenzadimolMaGribuMdispecializzazione(conilcollassoversol’altosiavrebbeuneccessodivalorinulli)

  favorisceleoperazioniincuisiaccedeseparatamentealleenMtàfiglie

Page 21: D1 Plogico

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

Page 22: D1 Plogico

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

Page 23: D1 Plogico

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)

Page 24: D1 Plogico

Sceltadellachiaveprimaria

BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)24

  ÈnecessariochetraidiversiidenMficatoridiunaenMtàvengadesignataunachiaveprimaria:perlachiaveprimariaoccorrerà,infaW,cheilDBMSsiaprovvistodistrumenMpergaranMrel’unicitàdeivalori

  criterieurisMcidiscelta:  primo:sceglierelachiavecheèusatapiùfrequentementeperaccedereall’enMtà

  secondo:sipreferisconochiavisempliciachiavicomposte,interneanzichéesterne

Page 25: D1 Plogico

IdenMficatoriesterni

BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)25

  unacomponentediidenMficazioneesternadiunaenMtàE2daunaenMtàE1aGraversounaassociazioneRcomportailtrasportodellachiaveprimariadiE1suE2

stabilimentocodice

matrdipendente

(1,n)

(1,1)

cognome

denom

lavora

(E1)

(R)

(E2)

Page 26: D1 Plogico

IdenMficatoriesterni

BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)26

  inquestomodol’associazioneèrappresentataaGraversolachiave,epuòessereeliminata

  lachiavetrasportataèchiaveesterna

  inpresenzadipiùidenMficazioniincascata,ènecessarioiniziarelapropagazionedall’enMtàchenonhaidenMficazioniesterne

stabilimentocodice

matr dipendente

cognome

codice

Page 27: D1 Plogico

AGribuMcomposM/ripetuM

BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)27

cognome

lerelazioninonpossono(perdefinizione)contenereaGribuMcomposMo,aGribuMripetuMmasolamenteaGribuM“atomici”

cf

dipendente

indirizzo

vianumciGà

codice

qualifica descrizione(0,n)

Page 28: D1 Plogico

AGribuMcomposM

BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)28

  Duepossibilisoluzioni  eliminarel’aGributocompostoeconsiderareisuoicomponenMcomeaGribuMsemplici

  inquestomodosiperdelavisioneunitariamasimanMenel’arMcolazionedeicomponenM

dipendente

via num ciGà

qualifica(0,n)

cf

cognome

Page 29: D1 Plogico

BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)29

  eliminareicomponenMeconsiderarel’aGributocomesemplice

  inquestomodoloschemarisultasemplificato,perdendopartedeideGagli

dipendente

indirizzo

qualifica

(0,n)cf

cognome

AGribuMcomposM

Page 30: D1 Plogico

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.

Page 31: D1 Plogico

BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)31

Casob)‐unvalorepuòcomparirepiùvoltenellaripeMzione:lanuovaenMtàEAhal’idenMficatorecompostodall’idenMficatorediEpiùunvaloreidenMficantesinteMco(adesempio,unnumerod’ordine)

dataparMtacasa

ospiMmarcatori

(0,n)

AGribuMripetuM

Page 32: D1 Plogico

BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)32

n_ordine

dataparMtacasa

ospiM

marcatore

....

datamarcaturecasa (1,1)

AGribuMripetuM

Page 33: D1 Plogico

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)

Page 34: D1 Plogico

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

Page 35: D1 Plogico

BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)35

studentematr

(1,n)

(1,n)

codicecorso

cognome

piano_s

denom.

anno

nome

Traduzionestandardes.

Page 36: D1 Plogico

BasidiDaM‐ProgeGoLogicoRelazionale(Parte1)36

STUDENTE(MATR,COGNOME,NOME)

CORSO(CODICE,DENOM)

PIANO_ST(MATR,CODICE,ANNO)FK: MATRREFERENCESSTUDENTEFK: CODICEREFERENCESCORSO

Traduzionestandardes.

inSQL...

Page 37: D1 Plogico

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.