D1 Plogico

Post on 28-May-2015

237 views 8 download

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.