04 Progettazione Logica

37
0 Progettazione logica 1 Progettazione logica Progettazione concettuale produce uno schema concettuale indipendente dal particolare sistema di gestione dati che utilizzeremo per la sua implementazione obiettivo primario: rappresentazione formale e non ambigua dei dati di interesse Progettazione logica scelto uno specifico DBMS, traduce lo schema concettuale in uno schema logico per il DBMS prescelto obiettivo primario: punto di partenza per la realizzazione della base di dati e delle relative applicazioni

Transcript of 04 Progettazione Logica

Page 1: 04  Progettazione Logica

0

Progettazione logica

1

Progettazione logicaProgettazione concettuale

produce uno schema concettuale indipendente dalparticolare sistema di gestione dati che utilizzeremo per la sua implementazioneobiettivo primario: rappresentazione formale e non ambigua dei dati di interesse

Progettazione logicascelto uno specifico DBMS, traduce lo schema concettualein uno schema logico per il DBMS presceltoobiettivo primario: punto di partenza per la realizzazionedella base di dati e delle relative applicazioni

Page 2: 04  Progettazione Logica

2

Progettazione logica -obiettivo principale

Tradurre uno schema ER, ottenuto come risultato dellafase di progettazione concettuale, in uno schema

relazionale equivalente e che tenga anche conto diaspetti legati alle prestazioni delle operazioni che

verranno eseguite sulla base di dati

3

Progettazione logica - schema

Page 3: 04  Progettazione Logica

4

Progettazione logica - input

Schema concettuale+

documentazione +Carico di lavoro

Dimensioni dei datiOperazioni da eseguire sulla base di dati,Frequenza operazioni

5

Progettazione logica - fase diristrutturazione

Genera uno schema ER semplificato (schema ER ristrutturato), ma equivalente a quello di partenza, al fine di semplificarne la traduzione successiva

eliminazione dallo schema ER di tutti quei costrutti non direttamente rappresentabili nel modello relazionaleulteriori ristrutturazioni dello schema che tengano conto diaspetti prestazionali, identificati dall'analisi del carico dilavoro

Traduzione non sempre univocadipende dal carico di lavoro e da considerazioni relative alla conseguente realizzazione della base di dati chestiamo progettando

Page 4: 04  Progettazione Logica

6

Progettazione logica - fase ditraduzione

Lo schema ER ristrutturato viene tradotto in un equivalente schema relazionaleapplicazione di un insieme di regole ditrasformazione a entita`, attributi e associazioni del modello ERtraduzione non sempre univoca

la scelta di una delle soluzioni possibili dipendeda considerazioni di carattere prestazionale

7

Progettazione logica - output

Vincoli di integrita`Vincoli di autorizzazione

Schema logico

+Vincoli di dominio

Vincoli CHECK od asserzioni Trigger

Comandi di GRANT

Documentazione

DizionariDettagli scelte progettuali

Page 5: 04  Progettazione Logica

8

Fase di ristrutturazioneEliminazione dallo schema ER di tutti i costrutti non direttamente rappresentabili nel modello relazionaleUlteriori ristrutturazioni dello schema che tenganoconto di aspetti prestazionali, identificati dall'analisidel carico di lavoro

analisi della ridondanzapartizionamento/accorpamento di entita`eliminazione degli attributi composti e multi-valoreeliminazione delle gerarchie di generalizzazione

9

Analisi della ridondanzaRidondanza

un'informazione viene rappresentata sia esplicitamentenello schema sia puo` essere derivata da altre informazioni(ad esempio attributi od associazioni) presenti nelloschema

Esempipresenza di cicli tra le associazionipresenza di attributi il cui valore puo` essere derivato daaltri attributi ed/od associazioni

permette di semplificare lo schema ER e di generaresuccessivamente uno schema relazionale

non ridondante

Page 6: 04  Progettazione Logica

10

Analisi della ridondanzaSvantaggi:

maggiore occupazione di spazio appesantimento delle procedure di aggiornamento

Vantaggipuo` rendere piu` efficienti alcune interrogazioni descrittenel carico di lavoro

Ridondanza limitata solo a quei casi in cui sia possibileottenere un significativo beneficio in termini di tempo

di esecuzione di interrogazioni eseguitefrequentemente

11

Analisi della ridondanza

Le valutazioni da effettuare per l'eventualeeliminazione di entita` od associazioniridondanti sono basate su stime piuttosto chesu valori effettivi

stima occupazione memoria del dato ridondante e costo delle operazioni in presenza oppure in assenza di ridondanza basate su informazioni sulvolume dei dati

da carico di lavoro

Page 7: 04  Progettazione Logica

12

Analisi della ridondanza -esempio

NumNoleggi

Noleggio di un nuovo video da parte di un cliente:• aggiornamento istanze

entita` Noleggio• aggiornamento del valore

dell'attributo numNoleggiper il cliente considerato

Operazione di stampa di un report contenente per ogni cliente il numero totale di noleggi frequente: • numNoleggi renderebbe piu` veloce

l'esecuzione di questa operazione• spazio richiesto limitato

13

Partizionamento/accorpamentodi entita`

Partizionamentoun’entita` E puo` essere partizionata in due entita` E1 ed E2, una dellequali identificata esternamente dall'altra, collegate medianteun'associazione uno a unoconveniente quando alcune operazioni frequenti coinvolgono solo un sottoinsieme degli attributi di E

Accorpamentodue entita` E1 ed E2 collegate da un'associazione uno a uno possonoessere accorpate in un'unica entita` contenente gli attributi di E1 ed E2 nel caso in cui operazioni frequenti abbiano la necessita` diaccedere ad entrambi gli insiemi di attributievita la navigazione dell'associazione durante l'esecuzione di tali operazionipuo` generare attributi opzionali in caso di partecipazione opzionaleall'associazione di almeno un'entita`

Page 8: 04  Progettazione Logica

14

Partizionamento/accorpamentodi entita` - esempio

partizionamentoaccorpamento

15

Partizionamento/accorpamentodi entita`

Le operazioni di partizionamento e diaccorpamento possono gia` essere eseguitenella fase di ristrutturazioneSpesso pero` vengono rimandate alla fase diprogettazione fisica

disponibilita` di ulteriori informazioni relative all'esecuzione delle interrogazioni

Page 9: 04  Progettazione Logica

16

Eliminazione degli attributicomposti

Eliminazione di un attributo composto A da un'entita` ESoluzione 1: eliminazione dei sotto-attributi di A

attributo composto diventa attributo semplicee` compito dell'applicazione garantire che il nuovo attributo contenga valori coerenti con la semantica dell'attributo compostoristrutturato

Soluzione 2: considerare tutti i sotto-attributi di A come attributi di Eridefinizione del dominio dell'attributosi perde la relazione tra i sotto-attributi

Eventuali vincoli di cardinalita` esistenti per l'attributo compostovengono associati a ciascuno dei nuovi attributi generati tramitela ristrutturazioneSe le componenti dell'attributo composto sono a loro voltaattributi composti, si ri-applica la procedura

17

Eliminazione degli attributicomposti - esempio

Dom(residenza) = string

Dom(citta`) = stringDom(via) = stringDom(no) = stringDom(cap) = integer

Dom(citta`) = stringDom(via) = stringDom(no) = stringDom(cap) = integer

Soluzione 1 Soluzione 2

Page 10: 04  Progettazione Logica

18

Eliminazione degli attributimulti-valore

Definizione di una nuova entita`, collegata all'entita` di partenza tramite un'opportuna associazioneL'attributo multi-valore e` rappresentato mediante un attributo mono-valore che identifica l'entita`Vincoli di cardinalita` rispetto alla nuovaassociazione:

per l'entita` che conteneva prima della ristrutturazionel'attributo multi-valore, coincide con il vincolo di cardinalita` dell'attributo multi-valore per la nuova entita` puo` essere in generale posto uguale a (1,n)

19

Eliminazione degli attributimulti-valore - esempio

Page 11: 04  Progettazione Logica

20

Eliminazione delle gerarchie digeneralizzazione

Entita` E generalizzazione di un insieme di entita` E1,…,EnApproccio

si estraggono informazioni sul tipo di gerarchia (totale o parziale, esclusiva o condivisa) dalla documentazione disupporto generata dalla fase di progettazione concettualesi sceglie una soluzione di ristrutturazione, sulla base del carico di lavoro

eliminazione entita` figlieeliminazione entita` padresostituzione della generalizzazione con associazioni

21

Eliminazione entita` figlieEntita`

E1,…,En vengono eliminateAttributi

gli attributi di E1,…,En loro attributi vengono inseriti nell'entita` padre come attributi opzionaliall'entita` padre viene aggiunto un attributo che specifica da qualeentita` figlia nello schema originario proviene ciascuna istanzadell'entita` padre nello schema ristrutturato

nel caso di generalizzazioni totali, tale attributo non puo` maiassumere valore nullonel caso di generalizzazioni parziali, un valore nullo indicaun'istanza dell'entita` padre che, nello schema originario, non era istanza di alcuna delle entita` figlienel caso di generalizzazioni condivise, l'attributo sara` multi-valore

Page 12: 04  Progettazione Logica

22

Eliminazione entita` figlieAssociazioni

la partecipazione (obbligatoria od opzionale) di un'entita` figlia ad un'associazione viene sostituita con la partecipazione opzionaledell'entita` padre alla stessa associazione

Vincoli di integrita`per ogni attributo inserito nell'entita` padre, e` necessarioaggiungere un vincolo di integrita` che indichi quando tale attributo puo` assumere un valore nullo, sulla base del tipodell'istanza considerata e sulla base del tipo di generalizzazione(totale o parziale, condivisa od esclusiva)

se la generalizzazione e` totale, gli attributi di almeno un'entita` figlia Ei dovranno essere obbligatorise e` esclusiva, gli attributi di al piu` un'entita` figlia Ei dovrannoessere obbligatori

per ogni associazione, e` necessario aggiungere un vincolo diintegrita` che indichi quali tipi di istanze dell'entita` padre possono essere coinvolti nell'associazione

23

Eliminazione entita` figlieGeneralizzazione totale ed esclusiva

Page 13: 04  Progettazione Logica

24

Eliminazione entita` padreApplicabile solo nel caso di generalizzazione totaleEntita`

eliminazione dell'entita padre EAttributi

inserimento degli attributi di E in ciascuna delle entita` figlieAssociazioni

ogni associazione a cui partecipava l'entita` padre viene inoltre sostituita con n nuove associazioni, una per ogni entita` figlia

Vincoli di integrita`se la generalizzazione esclusiva, vincolo per indicare che, nello schema ristrutturato, non possono esistere istanze di due entita` figlie distinteaventi lo stesso valore per gli identificatoriil vincolo di cardinalita` di ciascuna entita` figlia rispetto alla nuova associazione coincidera` con il vincolo di cardinalita` dell'entita` padre rispetto all'associazione eliminatai vincoli di cardinalita` delle altre entita` diventeranno invece opzionali

25

Eliminazione entita` padre -esempio

Page 14: 04  Progettazione Logica

26

Sostituzione dellageneralizzazione con associazioni

Entita`non modificate

Associazionila gerarchia viene sostituita da n associazioni uno a uno, ognunadelle quali lega l'entita` padre con una diversa entita` figliale entita` figlie sono identificate esternamente dall'entita` padre e partecipano obbligatoriamente alle associazioni create mentre la partecipazione dell'entita` padre e` opzionale

Vincoli di integrita`se la generalizzazione e` esclusiva, un'istanza dell'entita` padre non puo` partecipare contemporaneamente a due o piu` associazionise la generalizzazione e` totale, ogni istanza dell'entita` padre deve partecipare obbligatoriamente ad almeno un’associazione

27

Sostituzione della generalizzazionecon associazioni - esempio

Page 15: 04  Progettazione Logica

28

OsservazioniEliminazione entita` figlie

spreco di memoria per la presenza dei valori nulliconveniente solo nel caso in cui le operazioni non fanno distinzione trale varie sotto-entita`

Eliminazione entita` padrerisparmio di memoria rispetto alla soluzione di eliminare le entita` figliein quanto evita il problema dei valori nulliconveniente soprattutto nel caso in cui esistano operazioni che siriferiscono alle istanze di una specifica entita` figliasolo per generalizzazione totale

Sostituzione con associazionipreferibile alla soluzione di eliminare le entita` figlie per quanto riguardala quantita` di memoria utilizzataconveniente quando esistono delle operazioni che discriminano traentita` padre ed entita` figlie

29

OsservazioniIn alcune situazioni, puo` essere convenienteadottare soluzioni ibride

eliminazione di un sottoinsieme delle entita` figlie, mantenendo le altre nello schema

Generalizzazione a piu` livellisi applicano le strategie proposte partendo dalle fogliedella gerarchia complessivalo schema risultante dipendera` dal tipo dellaristrutturazione applicata ad ogni livello

Page 16: 04  Progettazione Logica

30

Fase di traduzioneGenera, a partire dallo schema ER restituito dallafase di ristrutturazione, un equivalente schema relazionaleSi basa su un insieme di regole di traduzione

traduzione delle entita`traduzione delle associazionitraduzione dei vincoli di integrita`ottimizzazioni finali

31

Regole di traduzione

Entita` Associazione

Relazione Relazioneo

Chiave esterna

Page 17: 04  Progettazione Logica

32

Traduzione entita`

Due casil’entita` E possiede non identificatori esterni o mistil’entita` E possiede identificatori esterni o misti

33

Traduzione entita` - no identificatori esterni/misti

E(A1/D1, A2O/D2, A3/D3, A4/D4)

Di estratti dalladocumentazione generata dallaprogettazione concettualeVincolo di obbligatorieta` per A1, A3, A4Chiavi candidate: A1, (A3,A4)

E

A1 A2 (0,1) A3 A4

Page 18: 04  Progettazione Logica

34

Traduzione entita` -identificatori esterni/misti

E1(A1/D1, A2O/D2, A3/D3, A4/D4, B1E2/F1)

E2(B1/F1)

Di, Fi estratti dalla documentazionegenerata dalla progettazione concettualeVincolo di obbligatorieta` per A1, A3, A4, B1Chiavi candidate per E2: B1Chiavi candidate per E1: (A1,B1), (A3,A4)A viene automaticamente rappresentata

E1

A1 A2 (0,1) A3 A4

E2

A

B1

35

Traduzione entita` -identificatori esterni/misti

E1(A1/D1, A2O/D2, A3/D3, A4/D4, ,B1E2/F1,C1)

E2(B1/F1)

Di, Fi estratti dalla documentazione generatadalla progettazione concettualeVincolo di obbligatorieta` per A1, A3, A4, B1Chiavi candidate per E2: B1Chiavi candidate per E1: B1, (A3,A4)A viene automaticamente rappresentata

E1

A1 A2 (0,1) A3 A4

E2

A

B1

C1

Page 19: 04  Progettazione Logica

36

Traduzione entita` -identificatori esterni/misti

Se E2 ha almeno un identificatore esterno o misto

si eliminano prima gli identificatori esterni o mistidi E2si elimina quindi l’identificatore esterno o misto diE1

37

Traduzione entita` - esempio

Videoteca(nome, citta`) Video(colloc, nomeVideoteca, citta`Videoteca,tipo)

Nazione(nome,capitale,numAbitanti) Nazionale(nomeNazione)

Page 20: 04  Progettazione Logica

38

Traduzione entita` - sceltachiave primaria

Ciascuna relazione potrebbe essere caratterizzatada piu` di una chiave

e` necessario selezionare una di queste chiavi come chiave primariadipende da criteri di efficienza

Questi criteri possono anche essere utilizzati per determinare quale chiave di una relazione R2 inserire come chiave esterna in una relazione R1

e` preferibile definire una chiave esterna sulla base di unachiave primaria

39

Traduzione entita` - sceltachiave primaria

Criterigli identificatori che contengono attributi opzionali non possonoessere selezionati come chiave primariaidentificatori composti da pochi attributi sono preferibili ad identificatori composti da molti attributiidentificatori che assumiamo vengano utilizzati da molteoperazioni per accedere alle entita` sono da preferire

Se nessuna chiave candidata soddisfa i requisiti precedentie` consigliabile aggiungere alla relazione un ulteriore attributocome chiave primaria ed assegnare a tale attributo valorispeciali (codici) generati appositamente ai fini dell'identificazione

Page 21: 04  Progettazione Logica

40

Traduzione associazioni -assunzione

Negli schemi che presenteremo nel seguitosupponiamo che le entita` abbiano una solachiave candidata, scelta come chiaveprimariaViene omessa la rappresentazione del dominio degli attributi

41

Traduzione associazionebinaria uno a uno

E1

A1 A2 A3 A4

E2

A

B1B2B3

(1,1)

(0,1)

E1(A1, A2, A3, A4, B1E2,C1) E2(B1, B2, B3)

Partecipazione obbligatoria di una sola entita`

C1

Page 22: 04  Progettazione Logica

42

Traduzione associazionebinaria uno a uno - esempio

Film(titolo,regista,anno,genere,valutaz)

Cliente(codCli,nome,cognome,telefono,dataN,residenza,titoloFilm,registaFilm,giudizio)

43

Traduzione associazionebinaria uno a uno

E1

A1 A2 A3 A4

E2

A

B1B2B3

(1,1)

(1,1)

E1(A1, A2, A3, A4, B1E2 ,C1) E2(B1, B2, B3)

Oppure

E1(A1, A2, A3, A4) E2(B1, B2, B3, A1E1 ,C1)

Partecipazione obbligatoria di entrambe le entita`

C1

Page 23: 04  Progettazione Logica

44

Traduzione associazionebinaria uno a uno

E1

A1 A2 A3 A4

E2

A

B1B2B3

(0,1)

(0,1)

E1(A1, A2, A3, A4, B1oE2,C1o)

E2(B1, B2, B3)

oppure

E1(A1, A2, A3, A4) E2(B1, B2, B3, A1o

E1,C1o)

oppure (per eliminare i valori nulli)

E1(A1, A2, A3, A4) E2(B1, B2, B3)A(A1E1,B1E2,C1) oppureA(A1E1,B1E2,C1)

Partecipazione opzionale di entrambe le entita`

C1

45

Traduzione associazionebinaria uno a uno - esempio

Film(titolo,regista,anno,genere,valutaz)Cliente(codCli,nome,cognome,telefono,dataN,residenza,titoloo

Film,registaoFilm,giudizioo)

Film(titolo,regista,anno,genere,valutaz,codClioCliente,giudizioo)Cliente(codCli,nome,cognome,telefono,dataN,residenza,,giudizio)

Film(titolo,regista,anno,genere,valutaz)Cliente(codCli,nome,cognome,telefono,dataN,residenza,,giudizio)Consiglia(codCliCliente,titoloFilm,registaFilm) oppureConsiglia(codCliCliente,titoloFilm,registaFilm)

Page 24: 04  Progettazione Logica

46

Traduzione associazionebinaria uno a molti

E1

A1 A2 A3 A4

E2

A

B1B2B3

(1,1) E1(A1, A2, A3, A4, B1E2,C1) E2(B1, B2, B3)

C1

(0,n) oppure (1,n)

Partecipazione obbligatoria entita` dal lato uno

47

Traduzione associazionebinaria uno a molti

E1

A1 A2 A3 A4

E2

A

B1B2B3

(0,1)

(0,n) oppure (1,n)

E1(A1, A2, A3, A4, B1oE2,C1o)

E2(B1, B2, B3)

oppure (per eliminare i valori nulli)

E1(A1, A2, A3, A4) E2(B1, B2, B3)A(A1E1, B1E2, C1)

C1

Partecipazione opzionale entita` dal lato uno

Page 25: 04  Progettazione Logica

48

Traduzione associazionebinaria uno a molti - esempio

Film(titolo,regista,anno,genere,valutaz)

Video(colloc,tipo,titoloFilm,registaFilm,data)

49

Traduzione associazionebinaria uno a molti - esempio

Video(colloc,tipo,codClioCliente,dataNolo)Cliente(codCli,nome,cognome,telefono,dataN,residenza)

Video(colloc,tipo)Cliente(codCli,nome,cognome,telefono,dataN,residenza)Noleggia(collocVideo,codCliCliente,dataNol)

Page 26: 04  Progettazione Logica

50

Traduzione associazionebinaria molti a molti

E1

A1 A2 A3 A4

E2

A

B1B2B3

(0,n) oppure (1,n)

(0,n) oppure (1,n)

E1(A1, A2, A3, A4) E2(B1, B2, B3)A(A1E1, B1E2,C1)

C1

51

Traduzione associazionebinaria molti a molti - esempio

Cliente(codCli,nome,cognome,telefono,dataN,residenza)Film(titolo,regista,anno,genere,valutaz)Consiglia(codCliCliente,titoloFilm,registaFilm,giudizio)

Page 27: 04  Progettazione Logica

52

Associazione unaria uno a unoo uno a molti

In modo analogo ad associazioni binarie, considerando i ruoli

E1

A1 A2 A3 A4

A

(1,1)

(0,1) oppure (1,1) oppure(0,n) oppure (1,n)

E1(A1, A2, A3, A4, R2E1 ,C1)

C1R1

R2

Partecipazione obbligatoria entita` dal lato uno

53

E1

A1 A2 A3 A4

A

(0,1)

(0,1) oppure (0,n) oppure (1,n)

E1(A1, A2, A3, A4, R2oE1 ,C1o)

oppure

E1(A1, A2, A3, A4) A(R1E1, R2E1, C1)

C1R1

R2

Associazione unaria uno a unoo uno a molti

Partecipazione opzionale entita` dal lato uno

Page 28: 04  Progettazione Logica

54

E1

A1 A2 A3 A4

A

(0,n) oppure (1,n)

(0,n) oppure (1,n)

E1(A1, A2, A3, A4) A(R1E1, R2E1, C1)

C1R1

R2

Associazione unaria molti a molti

55

Associazione unaria uno a molti - esempio

Cliente(codCli,nome,cognome,telefono,dataN,residenza,vecchioClioCliente)

oppure

Cliente(codCli,nome,cognome,telefono,dataN,residenza)Presenta(nuovoCliCliente,vecchioCliCliente)

Page 29: 04  Progettazione Logica

56

Associazione unaria molti a molti - esempio

Cliente(codCli,nome,cognome,telefono,dataN,residenza)Presenta(nuovoCliCliente,vecchioCliCliente)

57

Associazione n-aria molti a molti

In modo analogo ad associazioni binarieSpesso sono molti a molti

E1

A1 A2 A3 A4

E2

A

B1B2B3

(1,n) oppure (0,n)E1(A1, A2, A3, A4) E2(B1, B2, B3)E3(D1, D2)A(A1E1, B1E2, D1E3, C1)

C1

(1,n) oppure (0,n)

E3D1D2

(1,n) oppure(0,n)

Page 30: 04  Progettazione Logica

58

Associazione n-aria molti a molti

In alcuni casi (A1, B1, D1) e` una super-chiave per ALa determinazione della chiave puo` avveniredall’analisi di particolari vincoli di integrita`

dipendenze funzionalile vedremo nel seguito

59

Altre associazione n-arieIn modo analogo ad associazioni binarie

E1

A1 A2 A3 A4

E2

A

B1B2B3

(1,1) oppure (0,1)E1(A1, A2, A3, A4,

B1E2, D1E3, C1) E2(B1, B2, B3)E3(D1, D2)

C1

(1,n) oppure (0,n)

E3D1D2

(1,n) oppure(0,n)

Page 31: 04  Progettazione Logica

60

Associazione n-aria - esempio

Cliente(codCli,nome,cognome,telefono,dataN,residenza)Film(titolo,regista,anno,genere,valutaz)Attore(codA,nome,cognome)Consiglia(codCliCliente,titoloFilm,registaFilm,codAAttore,giudizio)

61

Associazione n-aria - esempio

Se un cliente puo` consigliare attori in un numero arbitrario difilm, ma al piu` un film per ogni attore (vincolo di integrita`):

Cliente(codCli,nome,cognome,telefono,dataN,residenza)Film(titolo,regista,anno,genere,valutaz)Attore(codA,nome,cognome)Consiglia(codCliCliente,titoloFilm,registaFilm,codAAttore,giudizio)

Page 32: 04  Progettazione Logica

62

Associazione n-aria - esempio

Cliente(codCli,nome,cognome,telefono,dataN,residenza,titoloo

Film,registaoFilm,codAo

Attore,giudizioo)Film(titolo,regista,anno,genere,valutaz)Attore(codA,nome,cognome)

Come si puo` ridurre la presenza di valori nulli?

Un esempio completo diprogettazione logica

Page 33: 04  Progettazione Logica

64

Carico di lavoroOperazione 1

Inserisce un nuovo video ed il corrispondente film, se non ancorapresente (frequenza: 30 video/mese, 10 film/mese)

Operazione 2Inserisce un nuovo cliente, classificandolo come cliente standard, indicando tutti i suoi dati anagrafici (frequenza: 5 clienti/settimana)

Operazione 3Inserisce le informazioni relative ad un nuovo noleggio ed aggiorna i punti mancanti per accedere alla categoria VIP; quando i puntimancanti ad un cliente standard per accedere alla categoria VIP sono zero, il cliente cambia categoria e diventa un cliente VIP a cui viene assegnato un determinato bonus (frequenza: 200 noleggi/giorno)

Operazione 4Aggiorna i dati del noleggio al momento della restituzione del video da parte di un generico cliente (frequenza: 200 noleggi/giorno)

65

Operazione 5Stampa l’elenco dei nomi e delle residenze di tutti i clienti che hannonoleggiato almeno un video da pi`u di 1 settimana e non l’hannoancora restituito (frequenza: 1 stampa/giorno)

Operazione 6Stampa l’elenco dei nomi e delle residenze di tutti i clienti VIP, per inviare materiale informativo relativo alla situazione bonus (frequenza: 2 stampe/mese)

Carico di lavoro

Page 34: 04  Progettazione Logica

66

Cliente

Video

(1,1)

Contiene

Fi lm

Standard VIP

bonusptiMancanti

(0,n)

(0,n)

valutaz (0,1)

anno

colloc

nomecognome

dataN

telefono(1,n) codCli residenza

città via no cap

DVD

VHS

Noleggio

dataRest (0,1) dataNol

Effettua

Relati voA

(1,1)

(0,n) (1,1)

Consiglia

giudizio

(0,n)

(0,n)

ti tolo regi sta

genere

Schema concettuale

67

Documentazione concettualeVincoli:

V1: Un cliente non può noleggiare più di tre video contemporaneamente

V2: Un video non può essere noleggiato prima dell’uscita del relativo film

V3: La data di noleggio di un video non può essere successiva a quella di restituzioneV4: Uno stesso video non può essere noleggiato da due o più clientidiversi contemporaneamente

Page 35: 04  Progettazione Logica

68

Documentazione concettualeGerarchie di generalizzazione:

Totale/esclusivaDVD, VHSVideo

Totale/esclusivaStandard, VIPCliente

TipologiaEntità figlieEntità padre

69

Schema ristrutturato

Page 36: 04  Progettazione Logica

70

Documentazione su schema ristrutturatoVincoli:

V1: Un cliente non può noleggiare più di tre video contemporaneamente

V2: Un video non può essere noleggiato prima dell’uscita del relativo film

V3: La data di noleggio di un video non può essere successiva a quella di restituzioneV4: Uno stesso video non può essere noleggiato da due o più clientidiversi contemporaneamente

V5: Ogni cliente e` alternativamente un cliente standard od un cliente VIP

71

Schema relazionaleCliente(codCli,nome,cognome,dataN,residenza)Standard(codCliCliente,ptiMancanti)VIP(codCliCliente,bonus)Telefono(numero)Video(colloc,tipo,titoloFilm,registaFilm)Film(titolo,regista,anno,genere,valutazo)Noleggio(collocVideo,dataNol,codCliCliente,dataResto)RispondeA(codCliCliente,numeroTelefono)Consiglia(titoloFilm,registaFilm,codCliCliente,giudizio)

Page 37: 04  Progettazione Logica

72

Documentazione

73

OttimizzazioniLa relazione Telefono puo` essere eliminata

ogni numero di telefono che compare nella relazione Telefono compare anche nella relazione RispondeA in quanto la partecipazione dell’entita` Telefono all’associazione RispondeA e` obbligatoria

Possiamo inserire un nuovo attributo codF in Film, come chiave primaria

La chiave attuale (di due attributi) diventerebbechiave alternativa