0
Progettazione logica




                                                                  0




Progettazione logica
 Pro...
Progettazione logica -
obiettivo principale

Tradurre uno schema ER, ottenuto come risultato della
    fase di progettazio...
Progettazione logica - input

 Schema concettuale
                                       Carico di lavoro
        +


    ...
Progettazione logica - fase di
traduzione
 Lo schema ER ristrutturato viene tradotto in
 un equivalente schema relazionale...
Fase di ristrutturazione
 Eliminazione dallo schema ER di tutti i costrutti non
 direttamente rappresentabili nel modello ...
Analisi della ridondanza
  Svantaggi:
    maggiore occupazione di spazio
    appesantimento delle procedure di aggiornamen...
Analisi della ridondanza -
esempio
                NumNoleggi


                                            Noleggio di un...
Partizionamento/accorpamento
di entita` - esempio

                                               partizionamento
        ...
Eliminazione degli attributi
composti
Eliminazione di un attributo composto A da un'entita` E
   Soluzione 1: eliminazione...
Eliminazione degli attributi
multi-valore
 Definizione di una nuova entita`, collegata all'entita`
 di partenza tramite un...
Eliminazione delle gerarchie di
generalizzazione
 Entita` E generalizzazione di un insieme di entita`
 E1,…,En
 Approccio
...
Eliminazione entita` figlie
  Associazioni
      la partecipazione (obbligatoria od opzionale) di un'entita` figlia ad
   ...
Eliminazione entita` padre
 Applicabile solo nel caso di generalizzazione totale
 Entita`
    eliminazione dell'entita pad...
Sostituzione della
generalizzazione con associazioni
 Entita`
      non modificate
 Associazioni
   la gerarchia viene sos...
Osservazioni
 Eliminazione entita` figlie
    spreco di memoria per la presenza dei valori nulli
    conveniente solo nel ...
Fase di traduzione
 Genera, a partire dallo schema ER restituito dalla
 fase di ristrutturazione, un equivalente schema
 r...
Traduzione entita`
 Due casi
     l’entita` E possiede non identificatori esterni o
     misti
     l’entita` E possiede i...
Traduzione entita` -
     identificatori esterni/misti
      A1   A2 (0,1) A3 A4
                                 E1(A1/D1...
Traduzione entita` -
identificatori esterni/misti
 Se E2 ha almeno un identificatore esterno o
 misto
   si eliminano prim...
Traduzione entita` - scelta
chiave primaria
 Ciascuna relazione potrebbe essere caratterizzata
 da piu` di una chiave
    ...
Traduzione associazioni -
 assunzione
     Negli schemi che presenteremo nel seguito
     supponiamo che le entita` abbian...
Traduzione associazione
 binaria uno a uno - esempio




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

     Cliente(codCl...
Traduzione associazione
   binaria uno a uno
                                             Partecipazione opzionale
       ...
Traduzione associazione
 binaria uno a molti

     A1   A2        A3      A4
                                         Part...
Traduzione associazione
binaria uno a molti - esempio




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

          Vi...
Traduzione associazione
 binaria molti a molti
     A1   A2        A3   A4



               E1


                    (0,n...
Associazione unaria uno a uno
    o uno a molti
        In modo analogo ad associazioni binarie,
        considerando i ru...
Associazione unaria molti a
  molti

            A1   A2        A3   A4



                                               ...
Associazione unaria molti a
     molti - esempio




         Cliente(codCli,nome,cognome,telefono,dataN,residenza)
      ...
Associazione n-aria molti a
     molti
      In alcuni casi (A1, B1, D1) e` una super-
      chiave per A
      La determi...
Associazione n-aria - esempio




   Cliente(codCli,nome,cognome,telefono,dataN,residenza)
   Film(titolo,regista,anno,gen...
Associazione n-aria - esempio




Cliente(codCli,nome,cognome,telefono,dataN,residenza,
         titolooFilm,registaoFilm,...
Carico di lavoro
   Operazione 1
     Inserisce un nuovo video ed il corrispondente film, se non ancora
     presente (fre...
città via no cap


             telefono    codCli residenza                                dataRest (0,1)         dataNol...
Documentazione concettuale
Gerarchie di generalizzazione:


      Entità padre   Entità figlie   Tipologia

      Cliente ...
Documentazione su schema
ristrutturato
Vincoli:
       V1: Un cliente non può noleggiare più di tre video contemporaneamen...
Documentazione




                                                       72




Ottimizzazioni
 La relazione Telefono puo...
Upcoming SlideShare
Loading in...5
×

04 Progettazione Logica

575

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
575
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
23
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "04 Progettazione Logica"

  1. 1. Progettazione logica 0 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 1
  2. 2. Progettazione logica - obiettivo principale Tradurre uno schema ER, ottenuto come risultato della fase di progettazione concettuale, in uno schema relazionale equivalente e che tenga anche conto di aspetti legati alle prestazioni delle operazioni che verranno eseguite sulla base di dati 2 Progettazione logica - schema 3
  3. 3. Progettazione logica - input Schema concettuale Carico di lavoro + + documentazione Dimensioni dei dati Operazioni da eseguire sulla base di dati, Frequenza operazioni 4 Progettazione logica - fase di ristrutturazione 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 relazionale ulteriori ristrutturazioni dello schema che tengano conto di aspetti prestazionali, identificati dall'analisi del carico di lavoro Traduzione non sempre univoca dipende dal carico di lavoro e da considerazioni relative alla conseguente realizzazione della base di dati che stiamo progettando 5
  4. 4. Progettazione logica - fase di traduzione Lo schema ER ristrutturato viene tradotto in un equivalente schema relazionale applicazione di un insieme di regole di trasformazione a entita`, attributi e associazioni del modello ER traduzione non sempre univoca la scelta di una delle soluzioni possibili dipende da considerazioni di carattere prestazionale 6 Progettazione logica - output Schema logico Documentazione + Dizionari Vincoli di integrita` Dettagli scelte progettuali Vincoli di autorizzazione Vincoli di dominio Vincoli CHECK od asserzioni Trigger Comandi di GRANT 7
  5. 5. Fase di ristrutturazione Eliminazione dallo schema ER di tutti i costrutti non direttamente rappresentabili nel modello relazionale Ulteriori ristrutturazioni dello schema che tengano conto di aspetti prestazionali, identificati dall'analisi del carico di lavoro analisi della ridondanza partizionamento/accorpamento di entita` eliminazione degli attributi composti e multi-valore eliminazione delle gerarchie di generalizzazione 8 Analisi della ridondanza Ridondanza un'informazione viene rappresentata sia esplicitamente nello schema sia puo` essere derivata da altre informazioni (ad esempio attributi od associazioni) presenti nello schema Esempi presenza di cicli tra le associazioni presenza di attributi il cui valore puo` essere derivato da altri attributi ed/od associazioni permette di semplificare lo schema ER e di generare successivamente uno schema relazionale 9 non ridondante
  6. 6. Analisi della ridondanza Svantaggi: maggiore occupazione di spazio appesantimento delle procedure di aggiornamento Vantaggi puo` rendere piu` efficienti alcune interrogazioni descritte nel carico di lavoro Ridondanza limitata solo a quei casi in cui sia possibile ottenere un significativo beneficio in termini di tempo di esecuzione di interrogazioni eseguite frequentemente 10 Analisi della ridondanza Le valutazioni da effettuare per l'eventuale eliminazione di entita` od associazioni ridondanti sono basate su stime piuttosto che su valori effettivi stima occupazione memoria del dato ridondante e costo delle operazioni in presenza oppure in assenza di ridondanza basate su informazioni sul volume dei dati da carico di lavoro 11
  7. 7. Analisi della ridondanza - esempio NumNoleggi Noleggio di un nuovo video da parte di un cliente: • aggiornamento istanze entita` Noleggio • aggiornamento del valore dell'attributo numNoleggi per 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 12 • spazio richiesto limitato Partizionamento/accorpamento di entita` Partizionamento un’entita` E puo` essere partizionata in due entita` E1 ed E2, una delle quali identificata esternamente dall'altra, collegate mediante un'associazione uno a uno conveniente quando alcune operazioni frequenti coinvolgono solo un sottoinsieme degli attributi di E Accorpamento due entita` E1 ed E2 collegate da un'associazione uno a uno possono essere accorpate in un'unica entita` contenente gli attributi di E1 ed E2 nel caso in cui operazioni frequenti abbiano la necessita` di accedere ad entrambi gli insiemi di attributi evita la navigazione dell'associazione durante l'esecuzione di tali operazioni puo` generare attributi opzionali in caso di partecipazione opzionale all'associazione di almeno un'entita` 13
  8. 8. Partizionamento/accorpamento di entita` - esempio partizionamento accorpamento 14 Partizionamento/accorpamento di entita` Le operazioni di partizionamento e di accorpamento possono gia` essere eseguite nella fase di ristrutturazione Spesso pero` vengono rimandate alla fase di progettazione fisica disponibilita` di ulteriori informazioni relative all'esecuzione delle interrogazioni 15
  9. 9. Eliminazione degli attributi composti Eliminazione di un attributo composto A da un'entita` E Soluzione 1: eliminazione dei sotto-attributi di A attributo composto diventa attributo semplice e` compito dell'applicazione garantire che il nuovo attributo contenga valori coerenti con la semantica dell'attributo composto ristrutturato Soluzione 2: considerare tutti i sotto-attributi di A come attributi di E ridefinizione del dominio dell'attributo si perde la relazione tra i sotto-attributi Eventuali vincoli di cardinalita` esistenti per l'attributo composto vengono associati a ciascuno dei nuovi attributi generati tramite la ristrutturazione Se le componenti dell'attributo composto sono a loro volta attributi composti, si ri-applica la procedura 16 Eliminazione degli attributi composti - esempio Dom(citta`) = string Soluzione 1 Soluzione 2 Dom(via) = string Dom(no) = string Dom(cap) = integer Dom(citta`) = string Dom(residenza) = string Dom(via) = string Dom(no) = string Dom(cap) = integer 17
  10. 10. Eliminazione degli attributi multi-valore Definizione di una nuova entita`, collegata all'entita` di partenza tramite un'opportuna associazione L'attributo multi-valore e` rappresentato mediante un attributo mono-valore che identifica l'entita` Vincoli di cardinalita` rispetto alla nuova associazione: per l'entita` che conteneva prima della ristrutturazione l'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) 18 Eliminazione degli attributi multi-valore - esempio 19
  11. 11. Eliminazione delle gerarchie di generalizzazione Entita` E generalizzazione di un insieme di entita` E1,…,En Approccio si estraggono informazioni sul tipo di gerarchia (totale o parziale, esclusiva o condivisa) dalla documentazione di supporto generata dalla fase di progettazione concettuale si sceglie una soluzione di ristrutturazione, sulla base del carico di lavoro eliminazione entita` figlie eliminazione entita` padre sostituzione della generalizzazione con associazioni 20 Eliminazione entita` figlie Entita` E1,…,En vengono eliminate Attributi gli attributi di E1,…,En loro attributi vengono inseriti nell'entita` padre come attributi opzionali all'entita` padre viene aggiunto un attributo che specifica da quale entita` figlia nello schema originario proviene ciascuna istanza dell'entita` padre nello schema ristrutturato nel caso di generalizzazioni totali, tale attributo non puo` mai assumere valore nullo nel caso di generalizzazioni parziali, un valore nullo indica un'istanza dell'entita` padre che, nello schema originario, non era istanza di alcuna delle entita` figlie nel caso di generalizzazioni condivise, l'attributo sara` multi-valore 21
  12. 12. Eliminazione entita` figlie Associazioni la partecipazione (obbligatoria od opzionale) di un'entita` figlia ad un'associazione viene sostituita con la partecipazione opzionale dell'entita` padre alla stessa associazione Vincoli di integrita` per ogni attributo inserito nell'entita` padre, e` necessario aggiungere un vincolo di integrita` che indichi quando tale attributo puo` assumere un valore nullo, sulla base del tipo dell'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 obbligatori se e` esclusiva, gli attributi di al piu` un'entita` figlia Ei dovranno essere obbligatori per ogni associazione, e` necessario aggiungere un vincolo di integrita` che indichi quali tipi di istanze dell'entita` padre 22 possono essere coinvolti nell'associazione Eliminazione entita` figlie Generalizzazione totale ed esclusiva 23
  13. 13. Eliminazione entita` padre Applicabile solo nel caso di generalizzazione totale Entita` eliminazione dell'entita padre E Attributi inserimento degli attributi di E in ciascuna delle entita` figlie Associazioni 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 distinte aventi lo stesso valore per gli identificatori il vincolo di cardinalita` di ciascuna entita` figlia rispetto alla nuova associazione coincidera` con il vincolo di cardinalita` dell'entita` padre rispetto all'associazione eliminata i vincoli di cardinalita` delle altre entita` diventeranno invece opzionali 24 Eliminazione entita` padre - esempio 25
  14. 14. Sostituzione della generalizzazione con associazioni Entita` non modificate Associazioni la gerarchia viene sostituita da n associazioni uno a uno, ognuna delle quali lega l'entita` padre con una diversa entita` figlia le 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` associazioni se la generalizzazione e` totale, ogni istanza dell'entita` padre deve partecipare obbligatoriamente ad almeno un’associazione 26 Sostituzione della generalizzazione con associazioni - esempio 27
  15. 15. Osservazioni Eliminazione entita` figlie spreco di memoria per la presenza dei valori nulli conveniente solo nel caso in cui le operazioni non fanno distinzione tra le varie sotto-entita` Eliminazione entita` padre risparmio di memoria rispetto alla soluzione di eliminare le entita` figlie in quanto evita il problema dei valori nulli conveniente soprattutto nel caso in cui esistano operazioni che si riferiscono alle istanze di una specifica entita` figlia solo per generalizzazione totale Sostituzione con associazioni preferibile alla soluzione di eliminare le entita` figlie per quanto riguarda la quantita` di memoria utilizzata conveniente quando esistono delle operazioni che discriminano tra entita` padre ed entita` figlie 28 Osservazioni In alcune situazioni, puo` essere conveniente adottare soluzioni ibride eliminazione di un sottoinsieme delle entita` figlie, mantenendo le altre nello schema Generalizzazione a piu` livelli si applicano le strategie proposte partendo dalle foglie della gerarchia complessiva lo schema risultante dipendera` dal tipo della ristrutturazione applicata ad ogni livello 29
  16. 16. Fase di traduzione Genera, a partire dallo schema ER restituito dalla fase di ristrutturazione, un equivalente schema relazionale Si basa su un insieme di regole di traduzione traduzione delle entita` traduzione delle associazioni traduzione dei vincoli di integrita` ottimizzazioni finali 30 Regole di traduzione Associazione Entita` Relazione Relazione o Chiave esterna 31
  17. 17. Traduzione entita` Due casi l’entita` E possiede non identificatori esterni o misti l’entita` E possiede identificatori esterni o misti 32 Traduzione entita` - no identificatori esterni/misti A1 A2 (0,1) A3 A4 E(A1/D1, A2O/D2, A3/D3, A4/D4) Di estratti dalla E documentazione generata dalla progettazione concettuale Vincolo di obbligatorieta` per A1, A3, A4 Chiavi candidate: A1, (A3,A4) 33
  18. 18. Traduzione entita` - identificatori esterni/misti A1 A2 (0,1) A3 A4 E1(A1/D1, A2O/D2, A3/D3, A4/D4, B1E2/F1) E2(B1/F1) E1 Di, Fi estratti dalla documentazione generata dalla progettazione concettuale Vincolo di obbligatorieta` per A1, A3, A4, A B1 Chiavi candidate per E2: B1 Chiavi candidate per E1: (A1,B1), (A3,A4) B1 E2 A viene automaticamente rappresentata 34 Traduzione entita` - identificatori esterni/misti A1 A2 (0,1) A3 A4 E1(A1/D1, A2O/D2, A3/D3, A4/D4, ,B1E2/F1,C1) E2(B1/F1) E1 Di, Fi estratti dalla documentazione generata dalla progettazione concettuale C1 Vincolo di obbligatorieta` per A1, A3, A4, B1 Chiavi candidate per E2: B1 A Chiavi candidate per E1: B1, (A3,A4) A viene automaticamente rappresentata B1 E2 35
  19. 19. Traduzione entita` - identificatori esterni/misti Se E2 ha almeno un identificatore esterno o misto si eliminano prima gli identificatori esterni o misti di E2 si elimina quindi l’identificatore esterno o misto di E1 36 Traduzione entita` - esempio Videoteca(nome, citta`) Video(colloc, nomeVideoteca, citta`Videoteca,tipo) Nazione(nome,capitale,numAbitanti) Nazionale(nomeNazione) 37
  20. 20. Traduzione entita` - scelta chiave primaria Ciascuna relazione potrebbe essere caratterizzata da piu` di una chiave e` necessario selezionare una di queste chiavi come chiave primaria dipende 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 una chiave primaria 38 Traduzione entita` - scelta chiave primaria Criteri gli identificatori che contengono attributi opzionali non possono essere selezionati come chiave primaria identificatori composti da pochi attributi sono preferibili ad identificatori composti da molti attributi identificatori che assumiamo vengano utilizzati da molte operazioni per accedere alle entita` sono da preferire Se nessuna chiave candidata soddisfa i requisiti precedenti e` consigliabile aggiungere alla relazione un ulteriore attributo come chiave primaria ed assegnare a tale attributo valori speciali (codici) generati appositamente ai fini dell'identificazione 39
  21. 21. Traduzione associazioni - assunzione Negli schemi che presenteremo nel seguito supponiamo che le entita` abbiano una sola chiave candidata, scelta come chiave primaria Viene omessa la rappresentazione del dominio degli attributi 40 Traduzione associazione binaria uno a uno Partecipazione obbligatoria A1 A2 A3 A4 di una sola entita` E1 (1,1) E1(A1, A2, A3, A4, B1E2,C1) C1 E2(B1, B2, B3) A (0,1) B1 B2 E2 B3 41
  22. 22. Traduzione associazione binaria uno a uno - esempio Film(titolo,regista,anno,genere,valutaz) Cliente(codCli,nome,cognome,telefono,dataN,residenza, titoloFilm,registaFilm,giudizio) 42 Traduzione associazione binaria uno a uno A1 A2 A3 A4 Partecipazione obbligatoria di entrambe le entita` E1(A1, A2, A3, A4, B1E2 ,C1) E1 E2(B1, B2, B3) (1,1) C1 Oppure A E1(A1, A2, A3, A4) (1,1) E2(B1, B2, B3, A1E1 ,C1) B1 B2 E2 B3 43
  23. 23. Traduzione associazione binaria uno a uno Partecipazione opzionale A1 A2 A3 A4 di entrambe le entita` E1(A1, A2, A3, A4, B1oE2,C1o) E2(B1, B2, B3) E1 oppure (0,1) C1 E1(A1, A2, A3, A4) A E2(B1, B2, B3, A1oE1,C1o) (0,1) oppure (per eliminare i valori nulli) B1 B2 E2 E1(A1, A2, A3, A4) B3 E2(B1, B2, B3) A(A1E1,B1E2,C1) oppure A(A1E1,B1E2,C1) 44 Traduzione associazione binaria uno a uno - esempio Film(titolo,regista,anno,genere,valutaz) Cliente(codCli,nome,cognome,telefono,dataN,residenza,titolooFilm,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) oppure 45 Consiglia(codCliCliente,titoloFilm,registaFilm)
  24. 24. Traduzione associazione binaria uno a molti A1 A2 A3 A4 Partecipazione obbligatoria entita` dal lato uno E1 (1,1) E1(A1, A2, A3, A4, B1E2,C1) C1 E2(B1, B2, B3) A (0,n) oppure (1,n) B1 B2 E2 B3 46 Traduzione associazione binaria uno a molti A1 A2 A3 A4 Partecipazione opzionale entita` dal lato uno E1 E1(A1, A2, A3, A4, B1oE2,C1o) (0,1) E2(B1, B2, B3) C1 A oppure (per eliminare i valori nulli) (0,n) oppure (1,n) E1(A1, A2, A3, A4) E2(B1, B2, B3) B1 A(A1E1, B1E2, C1) B2 E2 B3 47
  25. 25. Traduzione associazione binaria uno a molti - esempio Film(titolo,regista,anno,genere,valutaz) Video(colloc,tipo,titoloFilm,registaFilm,data) 48 Traduzione associazione binaria 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) 49
  26. 26. Traduzione associazione binaria molti a molti A1 A2 A3 A4 E1 (0,n) oppure (1,n) E1(A1, A2, A3, A4) C1 E2(B1, B2, B3) A A(A1E1, B1E2,C1) (0,n) oppure (1,n) B1 B2 E2 B3 50 Traduzione associazione binaria molti a molti - esempio Cliente(codCli,nome,cognome,telefono,dataN,residenza) Film(titolo,regista,anno,genere,valutaz) Consiglia(codCliCliente,titoloFilm,registaFilm,giudizio) 51
  27. 27. Associazione unaria uno a uno o uno a molti In modo analogo ad associazioni binarie, considerando i ruoli Partecipazione obbligatoria A1 A2 A3 A4 entita` dal lato uno E1(A1, A2, A3, A4, R2E1 ,C1) E1 R1 (1,1) C1 R2 A (0,1) oppure (1,1) oppure (0,n) oppure (1,n) 52 Associazione unaria uno a uno o uno a molti Partecipazione opzionale entita` dal lato uno A1 A2 A3 A4 E1(A1, A2, A3, A4, R2oE1 ,C1o) E1 oppure R1 (0,1) C1 R2 A E1(A1, A2, A3, A4) A(R1E1, R2E1, C1) (0,1) oppure (0,n) oppure (1,n) 53
  28. 28. Associazione unaria molti a molti A1 A2 A3 A4 E1(A1, A2, A3, A4) E1 A(R1E1, R2E1, C1) R1 (0,n) oppure (1,n) C1 R2 A (0,n) oppure (1,n) 54 Associazione unaria uno a molti - esempio Cliente(codCli,nome,cognome,telefono,dataN,residenza,vecchioClioCliente) oppure Cliente(codCli,nome,cognome,telefono,dataN,residenza) 55 Presenta(nuovoCliCliente,vecchioCliCliente)
  29. 29. Associazione unaria molti a molti - esempio Cliente(codCli,nome,cognome,telefono,dataN,residenza) Presenta(nuovoCliCliente,vecchioCliCliente) 56 Associazione n-aria molti a molti In modo analogo ad associazioni binarie Spesso sono molti a molti A1 A2 A3 A4 E1 (1,n) oppure (0,n) (1,n) oppure E1(A1, A2, A3, A4) C1 (0,n) D1 E2(B1, B2, B3) D2 A E3 E3(D1, D2) A(A1E1, B1E2, D1E3, C1) (1,n) oppure (0,n) B1 B2 E2 B3 57
  30. 30. Associazione n-aria molti a molti In alcuni casi (A1, B1, D1) e` una super- chiave per A La determinazione della chiave puo` avvenire dall’analisi di particolari vincoli di integrita` dipendenze funzionali le vedremo nel seguito 58 Altre associazione n-arie In modo analogo ad associazioni binarie A1 A2 A3 A4 E1 (1,1) oppure (0,1) (1,n) oppure E1(A1, A2, A3, A4, C1 (0,n) D1 B1E2, D1E3, C1) D2 A E3 E2(B1, B2, B3) E3(D1, D2) (1,n) oppure (0,n) B1 B2 E2 B3 59
  31. 31. 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) 60 Associazione n-aria - esempio Se un cliente puo` consigliare attori in un numero arbitrario di film, 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) 61
  32. 32. Associazione n-aria - esempio Cliente(codCli,nome,cognome,telefono,dataN,residenza, titolooFilm,registaoFilm,codAoAttore,giudizioo) Film(titolo,regista,anno,genere,valutaz) Attore(codA,nome,cognome) Come si puo` ridurre la presenza di valori nulli? 62 Un esempio completo di progettazione logica
  33. 33. Carico di lavoro Operazione 1 Inserisce un nuovo video ed il corrispondente film, se non ancora presente (frequenza: 30 video/mese, 10 film/mese) Operazione 2 Inserisce un nuovo cliente, classificandolo come cliente standard, indicando tutti i suoi dati anagrafici (frequenza: 5 clienti/settimana) Operazione 3 Inserisce le informazioni relative ad un nuovo noleggio ed aggiorna i punti mancanti per accedere alla categoria VIP; quando i punti mancanti 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 4 Aggiorna i dati del noleggio al momento della restituzione del video da parte di un generico cliente (frequenza: 200 noleggi/giorno) 64 Carico di lavoro Operazione 5 Stampa l’elenco dei nomi e delle residenze di tutti i clienti che hanno noleggiato almeno un video da pi`u di 1 settimana e non l’hanno ancora restituito (frequenza: 1 stampa/giorno) Operazione 6 Stampa l’elenco dei nomi e delle residenze di tutti i clienti VIP, per inviare materiale informativo relativo alla situazione bonus (frequenza: 2 stampe/mese) 65
  34. 34. città via no cap telefono codCli residenza dataRest (0,1) dataNol (1,n) dataN (0,n) (1,1) nome Effettua Cliente Noleggio cognome (0,n) (1,1) Relati voA Standard VIP giudizio colloc (0,n) DVD Consi glia ptiMancanti bonus Video (1,1) VHS Schema Contiene concettuale genere (0,n) valutaz (0,1) (0,n) Fi lm anno 66 ti tol o regi sta Documentazione concettuale Vincoli: 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 restituzione V4: Uno stesso video non può essere noleggiato da due o più clienti diversi contemporaneamente 67
  35. 35. Documentazione concettuale Gerarchie di generalizzazione: Entità padre Entità figlie Tipologia Cliente Standard, VIP Totale/esclusiva Video DVD, VHS Totale/esclusiva 68 Schema ristrutturato 69
  36. 36. Documentazione su schema ristrutturato Vincoli: 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 restituzione V4: Uno stesso video non può essere noleggiato da due o più clienti diversi contemporaneamente V5: Ogni cliente e` alternativamente un cliente standard od un cliente VIP 70 Schema relazionale Cliente(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) 71
  37. 37. Documentazione 72 Ottimizzazioni La 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) diventerebbe chiave alternativa 73
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×