SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
Corso di Basi di Dati e Laboratorio




 PROGETTAZIONE LOGICA
                      Prof. Silvana Castano




 A.A. 2005/2006             Basi di Dati e Laboratorio   1




PROGETTAZIONE LOGICA


       SCHEMA CONCETTUALE (i.e., E-R)




                 SCHEMA LOGICO
      (specifico del DBMS, i.e., relazionale)


 A.A. 2005/2006             Basi di Dati e Laboratorio   2
ATTIVITA’
• Ristrutturazione dello schema concettuale
  (generale, indipendente dallo specifico modello
  logico)

• Traduzione nello schema logico
  (si fa riferimento ad uno specifico modello logico,
  per noi sarà il modello relazionale)

• Verifica di ‘normalizzazione’ sullo schema logico
  ottenuto

 A.A. 2005/2006         Basi di Dati e Laboratorio     3




RISTRUTTURAZIONE DI SCHEMI ER

• Modifiche apportate allo schema ER sulla
  base di valutazioni legate ai parametri di
  carico della BD
• Classi di modifiche:
         • Analisi dei dati derivati (ridondanza)
         • Eliminazione delle gerarchie di generalizzazione
         • Scelta degli identificatori primari




 A.A. 2005/2006         Basi di Dati e Laboratorio     4
INPUT


• Schema Concettuale (ER) dei dati
• Dati quantitativi sul carico applicativo della
  BD
• Modello logico obiettivo (i.e., relazionale)




 A.A. 2005/2006             Basi di Dati e Laboratorio           5




CARICO APPLICATIVO DELLA BD

• Carico: insieme di applicazioni che la BD dovrà
  supportare
• Per valutare il carico operativo della BD è
  necessario conoscere informazioni circa:
   – Volume dei dati (nr. medio di occorrenze di ogni
     entità/associazione, nr. medio di partecipazioni delle
     entità alle associazioni)
   – Operazioni più frequenti
         • Tipologia: interattiva o batch
         • Frequenza: nr. Medio di esecuzioni in un certo intervallo di
           tempo
         • Dati coinvolti negli accessi: entità e/o associazioni


 A.A. 2005/2006             Basi di Dati e Laboratorio           6
ANALISI DEI DATI DERIVATI
• Presenza di attributi il cui valore è derivato (es., valore
  aggregato) ovvero può essere calcolato mediante
  algoritmi a partire da altri valori memorizzati nella BD

• VANTAGGIO:                  Efficienza, si evita di ricalcolare il
                              valore derivato ogni volta
• SVANTAGGI:                  Overhead di elaborazione ==>
                              necessità di mantenere la consistenza
                              tra i dati derivati ed i dati costituenti.
                              Occupazione di memoria




  A.A. 2005/2006                 Basi di Dati e Laboratorio                      7




DATI DERIVATI
     Attributi derivabili da altri attributi della stessa entità
                        netto
                        lordo             Fattura
                          IVA


         Attributi derivabili da altri attributi di altre entità


                                (1,N)                         (1,N)
Imp. totale        Acquisto             composizione                  Prodotto       prezzo




  A.A. 2005/2006                 Basi di Dati e Laboratorio                      8
DATI DERIVATI
                  (1,1)                           (1,N)
  Persona                     residenza                       Città        Nr. abitanti


    Attributi derivabili da operazioni di conteggio di occorrenze


                          docenza                                        Professore
     (0,N)                                                       (1,N)
                                                                         (1,1)

             (0,N)                      (1,N)                 (1,1)
Studente                  frequenza               Corso               insegnamento


  Associazioni derivabili dalla composizione di altre associazioni
                                (cicli)
 A.A. 2005/2006                  Basi di Dati e Laboratorio                      9




ANALISI DEI DATI DERIVATI
• La convenienza del mantenimento degli dati
  derivati va valutata confrontando:

   – Nr. di operazioni necessarie per calcolare il dato
     derivato
                                          VS.
   – Nr. di operazioni di aggiornamento extra necessarie
     per mantenere la consistenza della BD in presenza
     del dato derivato
   – Memoria addizionale utilizzata



 A.A. 2005/2006                  Basi di Dati e Laboratorio                      10
ELIMINAZIONE GERARCHIE DI
GENERALIZZAZIONE

• I modelli logici come il relazionale non rappresentano
  esplicitamente le gerarchie di generalizzazione
• Occorre rappresentarle attraverso tipi di entità e
  associazioni
• 3 opzioni:
   – 1: Mantenimento della sola entità superclasse
   – 2: Mantenimento delle sole entità sottoclassi
   – 3: Mantenimento di tutti i tipi di entità




 A.A. 2005/2006            Basi di Dati e Laboratorio              11




Opzione 1
• Si mantiene solo la superclasse e si eliminano le
  sottoclassi

• Ristrutturazioni sullo schema
   – Aggiunta di un nuovo attributo TIPO sull’entità generica per
     mantenere la distinzione tra le varie occorrenze dell’entità
     generica
   – Revisione delle cardinalità di associazioni/attributi definiti sulle
     entità sottoclasse (la cardinalità minima diventa zero)


• Applicabilità: tutti i tipi di gerarchie




 A.A. 2005/2006            Basi di Dati e Laboratorio              12
ESEMPIO

           CF                                (1,1)                         (0,N)
                           Impiegato                     afferisce                 Dipartimento
         Nome
                                 (t,e)


         Segretario        Ingegnere          Direttore           Nr. Subalterni
Skill
         (0,N)
                                        Specializzazione
             Usa


         (0,N)

          WordProc.

    A.A. 2005/2006                   Basi di Dati e Laboratorio                       13




ESEMPIO opzione 1
        Tipo (S/I/D)

          CF                           (1,1)                            (0,N)
                         Impiegato                   afferisce                  Dipartimento
        Nome
         Skill   (0,1)
                                     (0,1)
                 (0,1)               Nr.Subalterni
        Specializzazione
                              (0,N)

                           Usa


                              (0,N)

                         WordProc.



    A.A. 2005/2006                   Basi di Dati e Laboratorio                       14
Opzione 2
 • Si mantengono solo le sottoclassi e si elimina la
   superclasse

 • Ristrutturazioni sullo schema
     – Ereditarietà esplicita di tutti gli attributi e associazioni della
       superclasse sulle sottoclassi
     – Non si alterano le cardinalità delle associazioni definite sulle
       sottoclassi


 • Applicabilità: gerarchie di tipo TE




   A.A. 2005/2006                   Basi di Dati e Laboratorio               15




ESEMPIO opzione 2
                           (0,N)                      (0,N)
                                   Dipartimento

                                            (0,N)

               afferisce             afferisce                afferisce

                      (1,1)                 (1,1)                 (1,1)
  CF                                                                      CF
 Skill       Segretario             Ingegnere                 Direttore   Nr.Subalterni
Nome                                                                      Nome
                      (0,N)
                                   CF            Nome
                    Usa
                                   Specializzazione
                      (0,N)

             WordProc.

   A.A. 2005/2006                   Basi di Dati e Laboratorio               16
Opzione 3

• Si mantengono sia la superclasse sia le sottoclassi

• Ristrutturazioni sullo schema
        – Si definiscono associazioni ‘1:1’ esplicite tra la superclasse ed
          ogni sottoclasse per la rappresentazione dei legami ‘is-a’ della
          gerarchia.
        – Le sottoclassi sono identificate esternamente dalla superclasse
        – Non si alterano le cardinalità delle associazioni preesistenti

• Applicabilità: tutti i tipi di gerarchie




   A.A. 2005/2006               Basi di Dati e Laboratorio                         17




ESEMPIO opzione 3
                  CF                        (1,1)                       (0,N)
                            Impiegato                  afferisce                Dipartimento
             Nome
                                 (0,1)
                    (0,1)                    (0,1)
              è                è                       è
                   (1,1)           (1,1)                     (1,1)
Skill
         Segretario         Ingegnere             Direttore
                                                                     Nr.Subalterni
                  (0,N)
                                   Specializzazione
            Usa

                  (0,N)

         WordProc.

   A.A. 2005/2006               Basi di Dati e Laboratorio                         18
MANTENIMENTO DI TUTTE LE ENTITA’


• Dopo gli aggiornamenti, occorre verificare che
  per ogni istanza delle specializzazioni esista una
  istanza dell’entità generica
• Per le generalizzazioni totali, occorre verificare
  che ad ogni istanza della generalizzazione
  corrisponda un’istanza di qualche
  specializzazione




  A.A. 2005/2006            Basi di Dati e Laboratorio   19




ANALISI DELLE GERARCHIE

• Le scelte tra le alternative sono guidate dalla
  tipologia di operazioni che sono eseguite sulle
  entità della gerarchia.
• La maggioranza delle operazioni usa attributi di
  gerarchia, senza distinzione tra le istanze delle
  specializzazioni


                   Alternativa 1 assicura un numero
                   minore di accessi rispetto alle altre due
                   alternative


  A.A. 2005/2006            Basi di Dati e Laboratorio   20
ANALISI DELLE GERARCHIE


• La maggioranza delle operazioni usa
  contemporaneamente attributi dell’entità
  generica ed attributi di singole specializzazioni e
  la gerarchia è di tipo ‘(t,e)’

                  Alternativa 2 assicura un risparmio di
                  memoria rispetto ad ‘1’, per assenza di
                  valori nulli e riduzione di accessi rispetto
                  a ‘3’ perché non si visita l’entità generica
                  per accedere ad alcuni attributi


 A.A. 2005/2006             Basi di Dati e Laboratorio   21




ANALISI DELLE GERARCHIE

• La maggioranza delle operazioni usa attributi
  dell’entità generica e di sue specializzazioni,
  anche non contemporaneamente

              Alternativa 3 assicura un risparmio di
              memoria rispetto ad ‘1’, per assenza di
              valori nulli e riduzione dei tempi di
              accesso rispetto a ‘2’ per un numero
              minore di attributi

• N.B. Gerarchie a più livelli sono trattate ricorsivamente,
  partendo dal basso

 A.A. 2005/2006             Basi di Dati e Laboratorio   22
SCELTA DEGLI
IDENTIFICATORI PRIMARI

• Identificazione della chiave primaria per il relazionale

                  CRITERI DI SCELTA IN ER
• Identificatori con possibili valori nulli non possono essere
  scelti come primari
• Un identificatore semplice è da preferire ad identificatori
  composti (e.g., uso di identificatori surrogati)
• Identificatore usato da molte operazioni è da preferire




  A.A. 2005/2006       Basi di Dati e Laboratorio      23




ELIMINAZIONE DI
ATTRIBUTI MULTIVALORE

• Un attributo multivalore ‘a’ di un’entità E è rappresentato
  mediante una nuova entità E’ e una associazione R tra E’
  con E (caso particolare di partizionamento)
                   Card(E, R) = Card(a)

• Alcuni DBMS consentono la rappresentazione di attributi
  multivalore




  A.A. 2005/2006       Basi di Dati e Laboratorio      24
ESEMPIO

                       Nome
                     Indirizzo          Agenzia                  Telefono
                         Città                          (1,N)




  Nome
                                                                                 Numero
Indirizzo            Agenzia     (1,N)               (1,1)      Telefono
    Città
                                       Recapito



    A.A. 2005/2006               Basi di Dati e Laboratorio                 25




ELIMINAZIONE DI
ATTRIBUTI COMPOSTI
 • Alternativa 1: si considerano tutti gli attributi
   componenti come attributi dell’entità




    CF                                                                      CF
  Nome               Persona                                  Persona       Nome
    Età                                                                     Età

                     Indirizzo
                                                          CAP Città Via

         Via           Città     CAP



    A.A. 2005/2006               Basi di Dati e Laboratorio                 26
ELIMINAZIONE DI
ATTRIBUTI COMPOSTI
• Alternativa 2: si considera l’attributo composto
  come un unico attributo (con dominio stringa di
  caratteri), unione di tutti i componenti.



  CF                                                                        CF
Nome              Persona                                  Persona          Nome
  Età                                                                       Età

                  Indirizzo
                                                           Indirizzo

     Via            Città     CAP



 A.A. 2005/2006               Basi di Dati e Laboratorio               27




PROGETTAZIONE LOGICA DI
BD RELAZIONALI

• Generazione dello schema relazionale a
  partire dallo schema dati ER (Regole di
  Trasformazione)
• Verifica di Normalizzazione sullo schema
  relazionale generato (verifiche di
  normalizzazione possono essere svolte anche
  sullo schema concettuale integrato)




 A.A. 2005/2006               Basi di Dati e Laboratorio               28
TRADUZIONE DA ER A RELAZIONALE

• Traduzione di tipi di entità
  Un tipo di entità E={K, W}, con
    - K={a1, a2, …, at} identificatore di E
    - W={a(t+1), …, am} attributi descrittivi di E
   è tradotto in una relazione con schema
      E(a1,a2, …, at, a(t+1), …, am) = E(K, W)
                 con chiave primaria K




  A.A. 2005/2006           Basi di Dati e Laboratorio   29




ESEMPIO

                     CF
                   Nome        Persona
                     Età

                               Indirizzo




            Persona(CF, Nome, Indirizzo, Età)

• Si applica a tutte le entità dello schema (le
  generalizzazioni sono già state ristrutturate)

  A.A. 2005/2006           Basi di Dati e Laboratorio   30
GENERAZIONE DELLO SCHEMA
RELAZIONALE - ASSOCIAZIONI

• Per la trasformazione di associazioni
  occorre considerare:
   – Tipo di associazione (binaria, N-aria)
   – Vincoli di integrità:
         • cardinalità massime (‘1:1’, ‘1:N’, ‘N:M’)
         • cardinalità minime
           (partecipazione opzionale/obbligatoria)




 A.A. 2005/2006          Basi di Dati e Laboratorio        31




ASSOCIAZIONI ‘N:M’
• R tra E1={K1, W} e E2={K2, X} e
  Max-Card(E1, R)= n e
  Max-Card(E2, R)= n, con
   –   K1 identificatore di E1
   –   W insieme di attributi descrittivi di E1
   –   K2 identificatore di E2
   –   X insieme di attributi descrittivi di E2
   –   C={c1, …, cq} attributi descrittivi di R (se definiti)




 A.A. 2005/2006          Basi di Dati e Laboratorio        32
ASSOCIAZIONI ‘N:M’
• E’ trasformata in una relazione con schema:
                      R(K1, K2, C)
            con chiave primaria K1 ∪ K2
• Valutare se C può diventare parte della chiave
  primaria, (es.: Serie storiche)
• Se C = ∅, lo schema di relazione R possiede
  solo gli attributi chiave delle entità partecipanti




  A.A. 2005/2006              Basi di Dati e Laboratorio                      33




ESEMPIO

Matricola                     (1, N)                       (1,N)                   Nome
  Nome             Studente             Frequenza                     Corso
Indirizzo
                                  Voto
                                                                   Codice-Corso




Studente (Matricola, Nome, Indirizzo)
Corso (Codice-Corso, Nome)
Frequenza (Matricola, Codice-Corso, Voto)


  A.A. 2005/2006              Basi di Dati e Laboratorio                      34
ASSOCIAZIONI ‘1:1’

• R tra E1={K1, W} e E2={K2, X} e
  Max-Card(E1, R)= 1 e
  Max-Card(E2, R)= 1, con
   –   K1 identificatore di E1
   –   W insieme di attributi descrittivi di E1
   –   K2 identificatore di E2
   –   X insieme di attributi descrittivi di E2
   –   C attributi descrittivi di R (se definiti)




 A.A. 2005/2006           Basi di Dati e Laboratorio   35




ASSOCIAZIONI ‘1:1’
• R è rappresentata mediante chiave esterna in
  uno dei due schemi di relazione definiti per E1 ed
  E2:
  – E1(K1, W, K2, C)
    E2(K2, X)
                               oppure
  – E1(K1, W)
  – E2(K2, X, K1, C)




 A.A. 2005/2006           Basi di Dati e Laboratorio   36
ESEMPIO Partecipazione Obbligatoria

      Codice-Cli                                           Cod-Carta      Tipo


                     (1, 1)                                (1,1)
                                                                     Carta
         Cliente                    Possiede
                                                                    Credito


   Nome       Indirizzo                                            Scadenza




Cliente (Codice-Cli, Nome, Indirizzo, Cod-Carta, Tipo)
CartaCredito (Cod-Carta, Tipo, Scadenza)


  A.A. 2005/2006              Basi di Dati e Laboratorio                  37




ESEMPIO Partecipazione Opzionale



      Codice-Cli                                           Cod-Carta      Tipo


                     (0, 1)                                (1,1)
                                                                     Carta
         Cliente                    Possiede
                                                                    Credito


   Nome       Indirizzo                                            Scadenza



 Cliente (Codice-Cli, Nome, Indirizzo)
 CartaCredito (Cod-Carta, Tipo, Scadenza, Codice-Cli)


  A.A. 2005/2006              Basi di Dati e Laboratorio                  38
ASSOCIAZIONI ‘1:N’
• R tra E1={K1, W} e E2={K2, X} e
  Max-Card(E1,R)=1 e Max-Card(E2,R)= N (o viceversa)
  con
   –   K1 identificatore di E1
   –   W insieme di attributi descrittivi di E1
   –   K2 identificatore di E2
   –   X insieme di attributi descrittivi di E2
   –   C attributi descrittivi di R (se definiti)




  A.A. 2005/2006               Basi di Dati e Laboratorio   39




ASSOCIAZIONI ‘1:N’ (‘N:1’)

• R è rappresentata aggiungendo la chiave
  esterna K2 nello schema di relazione definito per
  E1, dove si aggiunge anche l’insieme C
     • E1(K1, W, K2, C)
     • E2 (K2, X)
• Se C = ∅, si aggiunge solamente K2




  A.A. 2005/2006               Basi di Dati e Laboratorio   40
ESEMPIO
                                                                         Governatore


                                (1, 1)                           (1,N)
  Nome             Città                 Locazione                           Stato     Nome

Nr.Abitanti
                                                                         Popolazione



Città (Nome, Nr.Abitanti, NomeStato)
Stato (Nome, Governatore, Popolazione)



  A.A. 2005/2006                    Basi di Dati e Laboratorio                       41




ESEMPIO - Partecipazione Opzionale

     Data Nr.Ordine
                                                      Sconto

                           (0, 1)                                    (1,N)
         Ordine                          Emissione                            Venditore



                                                                          Telefono Nome



Ordine (Nr.Ordine, Data)
Venditore (Nome, Telefono)
Emissione (Nr.Ordine, Nome, Sconto)

Soluzione consigliata in presenza di un numero elevato di ordini
emessi senza venditore
  A.A. 2005/2006                    Basi di Dati e Laboratorio                       42
ENTITA’ CON IDENTIFICATORE ESTERNO


• E1={K1, W} entità debole E2={K2, X} entità forte, con R
  tra E1 e E2, Max-Card(E1, R)= 1, con
         •   K1 ∪ K2 identificatore esterno di E1
         •   W insieme di attributi descrittivi di E1
         •   K2 identificatore di E2
         •   X insieme di attributi descrittivi di E2
• La chiave dell’entità debole contiene l’identificatore
  dell’entità forte:
         • E1={K1, K2, W}
         • E2={K2, X}




  A.A. 2005/2006               Basi di Dati e Laboratorio                  43




GENERAZIONE SCHEMA RELAZIONALE
ESEMPIO Identificatore Esterno
             Codice-Rep                                      Codice-Imp


                            (0, N)
                Reparto              Afferenza               Impiegato
Locazione                                                                 Nome
                                                     (1,1)




Impiegato (Codice-Imp, Codice-Rep, Nome)
Reparto (Codice-Rep, Locazione)



  A.A. 2005/2006               Basi di Dati e Laboratorio                  44
ASSOCIAZIONI N-arie
• R associazione N-aria tra E1, E2, …, Ep con E1={K1,
  W}, E2={K2, X}, …, Ep={Kp, Z}, con C (eventuale)
  insieme di attributi descrittivi di R
• Si procede in maniera analoga alle associazioni binarie
  ‘N:M’
• R è trasformata in una relazione con schema:
                            E(K, C)
• con chiave primaria K = K1 ∪ K2 ∪ … ∪ Kp o un suo
  sottoinsieme (necessaria verifica di minimalità)
• Se C = ∅, lo schema di relazione R possiede solo gli
  attributi chiave delle entità partecipanti


 A.A. 2005/2006       Basi di Dati e Laboratorio    45




GENERAZIONE SCHEMA RELAZIONALE
ASSOCIAZIONI RICORSIVE

• R ricorsiva su E={K, W}
                         ‘N:M’
• R è di tipo ‘N:M’, è trasformata in una relazione
  con schema:
                      R(K’, K’’)
  dove K’ e K” coincidono con K, ma sono
  opportunamente ridenominati per evidenziare il
  ruolo di E nei due rami di R




 A.A. 2005/2006       Basi di Dati e Laboratorio    46
GENERAZIONE SCHEMA RELAZIONALE
RELAZIONI RICORSIVE
                       ‘1:N’
• R è di tipo ‘1:N’, due alternative:
        • Come sopra
                           R(K’, K’’)
          con chiave primaria K’, ridenominata da K per il
          ramo con Max-Card = 1 in R
        • Si segue la regola delle ‘1:N’
                        R(K, W, K’’)
           con K’’ chiave ridenominata secondo il ramo con
           Max-Card = N in R




 A.A. 2005/2006         Basi di Dati e Laboratorio               47




ESEMPIO
                        Età                  Nome

                              Impiegato
      Subalterno                                     Direttore
                              Direzione




N:M      Impiegato (Nome, Età)
         Direzione (NomeDirettore, NomeSubalterno)
1:N       Impiegato (Nome, Età, NomeDirettore)



 A.A. 2005/2006         Basi di Dati e Laboratorio               48

Weitere ähnliche Inhalte

Ähnlich wie Corso Di Basi Di Dati 04 Progettazione Logica

Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q L
Laboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q LLaboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q L
Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q Lguestbe916c
 
Corso Di Basi Di Dati 05 Normalizzazione
Corso Di  Basi Di  Dati 05  NormalizzazioneCorso Di  Basi Di  Dati 05  Normalizzazione
Corso Di Basi Di Dati 05 Normalizzazioneguestbe916c
 
Basi di Dati - C1 - Il modello relazionale dei dati
Basi di Dati - C1 - Il modello relazionale dei datiBasi di Dati - C1 - Il modello relazionale dei dati
Basi di Dati - C1 - Il modello relazionale dei datiMajong DevJfu
 
Esercitazioni 04 Progettazione Concettuale E Logica
Esercitazioni 04  Progettazione Concettuale E LogicaEsercitazioni 04  Progettazione Concettuale E Logica
Esercitazioni 04 Progettazione Concettuale E Logicaguestbe916c
 
Presentazione Agic
Presentazione AgicPresentazione Agic
Presentazione Agicguestc09d24
 
corso oracle plsql.ppt
corso oracle plsql.pptcorso oracle plsql.ppt
corso oracle plsql.pptssuserf7962d
 

Ähnlich wie Corso Di Basi Di Dati 04 Progettazione Logica (8)

Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q L
Laboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q LLaboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q L
Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q L
 
Corso Di Basi Di Dati 05 Normalizzazione
Corso Di  Basi Di  Dati 05  NormalizzazioneCorso Di  Basi Di  Dati 05  Normalizzazione
Corso Di Basi Di Dati 05 Normalizzazione
 
C3 Ddl1
C3 Ddl1C3 Ddl1
C3 Ddl1
 
Basi di Dati - C1 - Il modello relazionale dei dati
Basi di Dati - C1 - Il modello relazionale dei datiBasi di Dati - C1 - Il modello relazionale dei dati
Basi di Dati - C1 - Il modello relazionale dei dati
 
Esercitazioni 04 Progettazione Concettuale E Logica
Esercitazioni 04  Progettazione Concettuale E LogicaEsercitazioni 04  Progettazione Concettuale E Logica
Esercitazioni 04 Progettazione Concettuale E Logica
 
D1 Plogico
D1 PlogicoD1 Plogico
D1 Plogico
 
Presentazione Agic
Presentazione AgicPresentazione Agic
Presentazione Agic
 
corso oracle plsql.ppt
corso oracle plsql.pptcorso oracle plsql.ppt
corso oracle plsql.ppt
 

Mehr von guestbe916c

Laboratorio Di Basi Di Dati 09 Il Linguaggio P H P
Laboratorio Di  Basi Di  Dati 09  Il Linguaggio  P H PLaboratorio Di  Basi Di  Dati 09  Il Linguaggio  P H P
Laboratorio Di Basi Di Dati 09 Il Linguaggio P H Pguestbe916c
 
Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M L
Laboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M LLaboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M L
Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M Lguestbe916c
 
Laboratorio Di Basi Di Dati 03 Il D B M S Postgre S Q L
Laboratorio Di  Basi Di  Dati 03  Il  D B M S  Postgre S Q LLaboratorio Di  Basi Di  Dati 03  Il  D B M S  Postgre S Q L
Laboratorio Di Basi Di Dati 03 Il D B M S Postgre S Q Lguestbe916c
 
Laboratorio Di Basi Di Dati 11 P H P Interazione Con I D B M S
Laboratorio Di  Basi Di  Dati 11  P H P   Interazione Con I  D B M SLaboratorio Di  Basi Di  Dati 11  P H P   Interazione Con I  D B M S
Laboratorio Di Basi Di Dati 11 P H P Interazione Con I D B M Sguestbe916c
 
Laboratorio Di Basi Di Dati 01 Introduzione
Laboratorio Di  Basi Di  Dati 01 IntroduzioneLaboratorio Di  Basi Di  Dati 01 Introduzione
Laboratorio Di Basi Di Dati 01 Introduzioneguestbe916c
 
Laboratorio Di Basi Di Dati 10 P H P Cookie E Sessioni
Laboratorio Di  Basi Di  Dati 10  P H P    Cookie E SessioniLaboratorio Di  Basi Di  Dati 10  P H P    Cookie E Sessioni
Laboratorio Di Basi Di Dati 10 P H P Cookie E Sessioniguestbe916c
 
Corso Di Basi Di Dati 09 Modelli Controllo
Corso Di  Basi Di  Dati 09  Modelli ControlloCorso Di  Basi Di  Dati 09  Modelli Controllo
Corso Di Basi Di Dati 09 Modelli Controlloguestbe916c
 
Esercitazioni 02 S Q L
Esercitazioni 02  S Q LEsercitazioni 02  S Q L
Esercitazioni 02 S Q Lguestbe916c
 
Laboratorio Di Basi Di Dati 07 Programmazione Web Lato Server
Laboratorio Di  Basi Di  Dati 07  Programmazione  Web Lato ServerLaboratorio Di  Basi Di  Dati 07  Programmazione  Web Lato Server
Laboratorio Di Basi Di Dati 07 Programmazione Web Lato Serverguestbe916c
 
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client
Laboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato ClientLaboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato Client
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Clientguestbe916c
 
Esercitazioni 01 Algebra Relazionale
Esercitazioni 01  Algebra RelazionaleEsercitazioni 01  Algebra Relazionale
Esercitazioni 01 Algebra Relazionaleguestbe916c
 
Corso Di Basi Di Dati 10 Transazioni
Corso Di  Basi Di  Dati 10  TransazioniCorso Di  Basi Di  Dati 10  Transazioni
Corso Di Basi Di Dati 10 Transazioniguestbe916c
 
Corso Di Basi Di Dati 02 S Q L D M L
Corso Di  Basi Di  Dati 02  S Q L  D M LCorso Di  Basi Di  Dati 02  S Q L  D M L
Corso Di Basi Di Dati 02 S Q L D M Lguestbe916c
 
Corso Di Basi Di Dati 02 S Q L Query
Corso Di  Basi Di  Dati 02  S Q L   QueryCorso Di  Basi Di  Dati 02  S Q L   Query
Corso Di Basi Di Dati 02 S Q L Queryguestbe916c
 
Esercitazioni 03 Algebra + S Q L
Esercitazioni 03  Algebra +  S Q LEsercitazioni 03  Algebra +  S Q L
Esercitazioni 03 Algebra + S Q Lguestbe916c
 
Laboratorio Di Basi Di Dati 05 Architettura Del Web
Laboratorio Di  Basi Di  Dati 05  Architettura Del  WebLaboratorio Di  Basi Di  Dati 05  Architettura Del  Web
Laboratorio Di Basi Di Dati 05 Architettura Del Webguestbe916c
 
Corso Di Basi Di Dati 08 Protezione Dei Dati
Corso Di  Basi Di  Dati 08  Protezione Dei DatiCorso Di  Basi Di  Dati 08  Protezione Dei Dati
Corso Di Basi Di Dati 08 Protezione Dei Datiguestbe916c
 
Laboratorio Di Basi Di Dati 02 Il D B M S My S Q L
Laboratorio Di  Basi Di  Dati 02  Il  D B M S  My S Q LLaboratorio Di  Basi Di  Dati 02  Il  D B M S  My S Q L
Laboratorio Di Basi Di Dati 02 Il D B M S My S Q Lguestbe916c
 

Mehr von guestbe916c (20)

Laboratorio Di Basi Di Dati 09 Il Linguaggio P H P
Laboratorio Di  Basi Di  Dati 09  Il Linguaggio  P H PLaboratorio Di  Basi Di  Dati 09  Il Linguaggio  P H P
Laboratorio Di Basi Di Dati 09 Il Linguaggio P H P
 
Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M L
Laboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M LLaboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M L
Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M L
 
Laboratorio Di Basi Di Dati 03 Il D B M S Postgre S Q L
Laboratorio Di  Basi Di  Dati 03  Il  D B M S  Postgre S Q LLaboratorio Di  Basi Di  Dati 03  Il  D B M S  Postgre S Q L
Laboratorio Di Basi Di Dati 03 Il D B M S Postgre S Q L
 
Laboratorio Di Basi Di Dati 11 P H P Interazione Con I D B M S
Laboratorio Di  Basi Di  Dati 11  P H P   Interazione Con I  D B M SLaboratorio Di  Basi Di  Dati 11  P H P   Interazione Con I  D B M S
Laboratorio Di Basi Di Dati 11 P H P Interazione Con I D B M S
 
Laboratorio Di Basi Di Dati 01 Introduzione
Laboratorio Di  Basi Di  Dati 01 IntroduzioneLaboratorio Di  Basi Di  Dati 01 Introduzione
Laboratorio Di Basi Di Dati 01 Introduzione
 
Laboratorio Di Basi Di Dati 10 P H P Cookie E Sessioni
Laboratorio Di  Basi Di  Dati 10  P H P    Cookie E SessioniLaboratorio Di  Basi Di  Dati 10  P H P    Cookie E Sessioni
Laboratorio Di Basi Di Dati 10 P H P Cookie E Sessioni
 
Corso Di Basi Di Dati 09 Modelli Controllo
Corso Di  Basi Di  Dati 09  Modelli ControlloCorso Di  Basi Di  Dati 09  Modelli Controllo
Corso Di Basi Di Dati 09 Modelli Controllo
 
Esercitazioni 02 S Q L
Esercitazioni 02  S Q LEsercitazioni 02  S Q L
Esercitazioni 02 S Q L
 
Laboratorio Di Basi Di Dati 07 Programmazione Web Lato Server
Laboratorio Di  Basi Di  Dati 07  Programmazione  Web Lato ServerLaboratorio Di  Basi Di  Dati 07  Programmazione  Web Lato Server
Laboratorio Di Basi Di Dati 07 Programmazione Web Lato Server
 
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client
Laboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato ClientLaboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato Client
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client
 
Esercitazioni 01 Algebra Relazionale
Esercitazioni 01  Algebra RelazionaleEsercitazioni 01  Algebra Relazionale
Esercitazioni 01 Algebra Relazionale
 
Corso Di Basi Di Dati 10 Transazioni
Corso Di  Basi Di  Dati 10  TransazioniCorso Di  Basi Di  Dati 10  Transazioni
Corso Di Basi Di Dati 10 Transazioni
 
Corso Di Basi Di Dati 02 S Q L D M L
Corso Di  Basi Di  Dati 02  S Q L  D M LCorso Di  Basi Di  Dati 02  S Q L  D M L
Corso Di Basi Di Dati 02 S Q L D M L
 
Corso Di Basi Di Dati 02 S Q L Query
Corso Di  Basi Di  Dati 02  S Q L   QueryCorso Di  Basi Di  Dati 02  S Q L   Query
Corso Di Basi Di Dati 02 S Q L Query
 
Algebra
AlgebraAlgebra
Algebra
 
Esercitazioni 03 Algebra + S Q L
Esercitazioni 03  Algebra +  S Q LEsercitazioni 03  Algebra +  S Q L
Esercitazioni 03 Algebra + S Q L
 
S Q L
S Q LS Q L
S Q L
 
Laboratorio Di Basi Di Dati 05 Architettura Del Web
Laboratorio Di  Basi Di  Dati 05  Architettura Del  WebLaboratorio Di  Basi Di  Dati 05  Architettura Del  Web
Laboratorio Di Basi Di Dati 05 Architettura Del Web
 
Corso Di Basi Di Dati 08 Protezione Dei Dati
Corso Di  Basi Di  Dati 08  Protezione Dei DatiCorso Di  Basi Di  Dati 08  Protezione Dei Dati
Corso Di Basi Di Dati 08 Protezione Dei Dati
 
Laboratorio Di Basi Di Dati 02 Il D B M S My S Q L
Laboratorio Di  Basi Di  Dati 02  Il  D B M S  My S Q LLaboratorio Di  Basi Di  Dati 02  Il  D B M S  My S Q L
Laboratorio Di Basi Di Dati 02 Il D B M S My S Q L
 

Corso Di Basi Di Dati 04 Progettazione Logica

  • 1. Corso di Basi di Dati e Laboratorio PROGETTAZIONE LOGICA Prof. Silvana Castano A.A. 2005/2006 Basi di Dati e Laboratorio 1 PROGETTAZIONE LOGICA SCHEMA CONCETTUALE (i.e., E-R) SCHEMA LOGICO (specifico del DBMS, i.e., relazionale) A.A. 2005/2006 Basi di Dati e Laboratorio 2
  • 2. ATTIVITA’ • Ristrutturazione dello schema concettuale (generale, indipendente dallo specifico modello logico) • Traduzione nello schema logico (si fa riferimento ad uno specifico modello logico, per noi sarà il modello relazionale) • Verifica di ‘normalizzazione’ sullo schema logico ottenuto A.A. 2005/2006 Basi di Dati e Laboratorio 3 RISTRUTTURAZIONE DI SCHEMI ER • Modifiche apportate allo schema ER sulla base di valutazioni legate ai parametri di carico della BD • Classi di modifiche: • Analisi dei dati derivati (ridondanza) • Eliminazione delle gerarchie di generalizzazione • Scelta degli identificatori primari A.A. 2005/2006 Basi di Dati e Laboratorio 4
  • 3. INPUT • Schema Concettuale (ER) dei dati • Dati quantitativi sul carico applicativo della BD • Modello logico obiettivo (i.e., relazionale) A.A. 2005/2006 Basi di Dati e Laboratorio 5 CARICO APPLICATIVO DELLA BD • Carico: insieme di applicazioni che la BD dovrà supportare • Per valutare il carico operativo della BD è necessario conoscere informazioni circa: – Volume dei dati (nr. medio di occorrenze di ogni entità/associazione, nr. medio di partecipazioni delle entità alle associazioni) – Operazioni più frequenti • Tipologia: interattiva o batch • Frequenza: nr. Medio di esecuzioni in un certo intervallo di tempo • Dati coinvolti negli accessi: entità e/o associazioni A.A. 2005/2006 Basi di Dati e Laboratorio 6
  • 4. ANALISI DEI DATI DERIVATI • Presenza di attributi il cui valore è derivato (es., valore aggregato) ovvero può essere calcolato mediante algoritmi a partire da altri valori memorizzati nella BD • VANTAGGIO: Efficienza, si evita di ricalcolare il valore derivato ogni volta • SVANTAGGI: Overhead di elaborazione ==> necessità di mantenere la consistenza tra i dati derivati ed i dati costituenti. Occupazione di memoria A.A. 2005/2006 Basi di Dati e Laboratorio 7 DATI DERIVATI Attributi derivabili da altri attributi della stessa entità netto lordo Fattura IVA Attributi derivabili da altri attributi di altre entità (1,N) (1,N) Imp. totale Acquisto composizione Prodotto prezzo A.A. 2005/2006 Basi di Dati e Laboratorio 8
  • 5. DATI DERIVATI (1,1) (1,N) Persona residenza Città Nr. abitanti Attributi derivabili da operazioni di conteggio di occorrenze docenza Professore (0,N) (1,N) (1,1) (0,N) (1,N) (1,1) Studente frequenza Corso insegnamento Associazioni derivabili dalla composizione di altre associazioni (cicli) A.A. 2005/2006 Basi di Dati e Laboratorio 9 ANALISI DEI DATI DERIVATI • La convenienza del mantenimento degli dati derivati va valutata confrontando: – Nr. di operazioni necessarie per calcolare il dato derivato VS. – Nr. di operazioni di aggiornamento extra necessarie per mantenere la consistenza della BD in presenza del dato derivato – Memoria addizionale utilizzata A.A. 2005/2006 Basi di Dati e Laboratorio 10
  • 6. ELIMINAZIONE GERARCHIE DI GENERALIZZAZIONE • I modelli logici come il relazionale non rappresentano esplicitamente le gerarchie di generalizzazione • Occorre rappresentarle attraverso tipi di entità e associazioni • 3 opzioni: – 1: Mantenimento della sola entità superclasse – 2: Mantenimento delle sole entità sottoclassi – 3: Mantenimento di tutti i tipi di entità A.A. 2005/2006 Basi di Dati e Laboratorio 11 Opzione 1 • Si mantiene solo la superclasse e si eliminano le sottoclassi • Ristrutturazioni sullo schema – Aggiunta di un nuovo attributo TIPO sull’entità generica per mantenere la distinzione tra le varie occorrenze dell’entità generica – Revisione delle cardinalità di associazioni/attributi definiti sulle entità sottoclasse (la cardinalità minima diventa zero) • Applicabilità: tutti i tipi di gerarchie A.A. 2005/2006 Basi di Dati e Laboratorio 12
  • 7. ESEMPIO CF (1,1) (0,N) Impiegato afferisce Dipartimento Nome (t,e) Segretario Ingegnere Direttore Nr. Subalterni Skill (0,N) Specializzazione Usa (0,N) WordProc. A.A. 2005/2006 Basi di Dati e Laboratorio 13 ESEMPIO opzione 1 Tipo (S/I/D) CF (1,1) (0,N) Impiegato afferisce Dipartimento Nome Skill (0,1) (0,1) (0,1) Nr.Subalterni Specializzazione (0,N) Usa (0,N) WordProc. A.A. 2005/2006 Basi di Dati e Laboratorio 14
  • 8. Opzione 2 • Si mantengono solo le sottoclassi e si elimina la superclasse • Ristrutturazioni sullo schema – Ereditarietà esplicita di tutti gli attributi e associazioni della superclasse sulle sottoclassi – Non si alterano le cardinalità delle associazioni definite sulle sottoclassi • Applicabilità: gerarchie di tipo TE A.A. 2005/2006 Basi di Dati e Laboratorio 15 ESEMPIO opzione 2 (0,N) (0,N) Dipartimento (0,N) afferisce afferisce afferisce (1,1) (1,1) (1,1) CF CF Skill Segretario Ingegnere Direttore Nr.Subalterni Nome Nome (0,N) CF Nome Usa Specializzazione (0,N) WordProc. A.A. 2005/2006 Basi di Dati e Laboratorio 16
  • 9. Opzione 3 • Si mantengono sia la superclasse sia le sottoclassi • Ristrutturazioni sullo schema – Si definiscono associazioni ‘1:1’ esplicite tra la superclasse ed ogni sottoclasse per la rappresentazione dei legami ‘is-a’ della gerarchia. – Le sottoclassi sono identificate esternamente dalla superclasse – Non si alterano le cardinalità delle associazioni preesistenti • Applicabilità: tutti i tipi di gerarchie A.A. 2005/2006 Basi di Dati e Laboratorio 17 ESEMPIO opzione 3 CF (1,1) (0,N) Impiegato afferisce Dipartimento Nome (0,1) (0,1) (0,1) è è è (1,1) (1,1) (1,1) Skill Segretario Ingegnere Direttore Nr.Subalterni (0,N) Specializzazione Usa (0,N) WordProc. A.A. 2005/2006 Basi di Dati e Laboratorio 18
  • 10. MANTENIMENTO DI TUTTE LE ENTITA’ • Dopo gli aggiornamenti, occorre verificare che per ogni istanza delle specializzazioni esista una istanza dell’entità generica • Per le generalizzazioni totali, occorre verificare che ad ogni istanza della generalizzazione corrisponda un’istanza di qualche specializzazione A.A. 2005/2006 Basi di Dati e Laboratorio 19 ANALISI DELLE GERARCHIE • Le scelte tra le alternative sono guidate dalla tipologia di operazioni che sono eseguite sulle entità della gerarchia. • La maggioranza delle operazioni usa attributi di gerarchia, senza distinzione tra le istanze delle specializzazioni Alternativa 1 assicura un numero minore di accessi rispetto alle altre due alternative A.A. 2005/2006 Basi di Dati e Laboratorio 20
  • 11. ANALISI DELLE GERARCHIE • La maggioranza delle operazioni usa contemporaneamente attributi dell’entità generica ed attributi di singole specializzazioni e la gerarchia è di tipo ‘(t,e)’ Alternativa 2 assicura un risparmio di memoria rispetto ad ‘1’, per assenza di valori nulli e riduzione di accessi rispetto a ‘3’ perché non si visita l’entità generica per accedere ad alcuni attributi A.A. 2005/2006 Basi di Dati e Laboratorio 21 ANALISI DELLE GERARCHIE • La maggioranza delle operazioni usa attributi dell’entità generica e di sue specializzazioni, anche non contemporaneamente Alternativa 3 assicura un risparmio di memoria rispetto ad ‘1’, per assenza di valori nulli e riduzione dei tempi di accesso rispetto a ‘2’ per un numero minore di attributi • N.B. Gerarchie a più livelli sono trattate ricorsivamente, partendo dal basso A.A. 2005/2006 Basi di Dati e Laboratorio 22
  • 12. SCELTA DEGLI IDENTIFICATORI PRIMARI • Identificazione della chiave primaria per il relazionale CRITERI DI SCELTA IN ER • Identificatori con possibili valori nulli non possono essere scelti come primari • Un identificatore semplice è da preferire ad identificatori composti (e.g., uso di identificatori surrogati) • Identificatore usato da molte operazioni è da preferire A.A. 2005/2006 Basi di Dati e Laboratorio 23 ELIMINAZIONE DI ATTRIBUTI MULTIVALORE • Un attributo multivalore ‘a’ di un’entità E è rappresentato mediante una nuova entità E’ e una associazione R tra E’ con E (caso particolare di partizionamento) Card(E, R) = Card(a) • Alcuni DBMS consentono la rappresentazione di attributi multivalore A.A. 2005/2006 Basi di Dati e Laboratorio 24
  • 13. ESEMPIO Nome Indirizzo Agenzia Telefono Città (1,N) Nome Numero Indirizzo Agenzia (1,N) (1,1) Telefono Città Recapito A.A. 2005/2006 Basi di Dati e Laboratorio 25 ELIMINAZIONE DI ATTRIBUTI COMPOSTI • Alternativa 1: si considerano tutti gli attributi componenti come attributi dell’entità CF CF Nome Persona Persona Nome Età Età Indirizzo CAP Città Via Via Città CAP A.A. 2005/2006 Basi di Dati e Laboratorio 26
  • 14. ELIMINAZIONE DI ATTRIBUTI COMPOSTI • Alternativa 2: si considera l’attributo composto come un unico attributo (con dominio stringa di caratteri), unione di tutti i componenti. CF CF Nome Persona Persona Nome Età Età Indirizzo Indirizzo Via Città CAP A.A. 2005/2006 Basi di Dati e Laboratorio 27 PROGETTAZIONE LOGICA DI BD RELAZIONALI • Generazione dello schema relazionale a partire dallo schema dati ER (Regole di Trasformazione) • Verifica di Normalizzazione sullo schema relazionale generato (verifiche di normalizzazione possono essere svolte anche sullo schema concettuale integrato) A.A. 2005/2006 Basi di Dati e Laboratorio 28
  • 15. TRADUZIONE DA ER A RELAZIONALE • Traduzione di tipi di entità Un tipo di entità E={K, W}, con - K={a1, a2, …, at} identificatore di E - W={a(t+1), …, am} attributi descrittivi di E è tradotto in una relazione con schema E(a1,a2, …, at, a(t+1), …, am) = E(K, W) con chiave primaria K A.A. 2005/2006 Basi di Dati e Laboratorio 29 ESEMPIO CF Nome Persona Età Indirizzo Persona(CF, Nome, Indirizzo, Età) • Si applica a tutte le entità dello schema (le generalizzazioni sono già state ristrutturate) A.A. 2005/2006 Basi di Dati e Laboratorio 30
  • 16. GENERAZIONE DELLO SCHEMA RELAZIONALE - ASSOCIAZIONI • Per la trasformazione di associazioni occorre considerare: – Tipo di associazione (binaria, N-aria) – Vincoli di integrità: • cardinalità massime (‘1:1’, ‘1:N’, ‘N:M’) • cardinalità minime (partecipazione opzionale/obbligatoria) A.A. 2005/2006 Basi di Dati e Laboratorio 31 ASSOCIAZIONI ‘N:M’ • R tra E1={K1, W} e E2={K2, X} e Max-Card(E1, R)= n e Max-Card(E2, R)= n, con – K1 identificatore di E1 – W insieme di attributi descrittivi di E1 – K2 identificatore di E2 – X insieme di attributi descrittivi di E2 – C={c1, …, cq} attributi descrittivi di R (se definiti) A.A. 2005/2006 Basi di Dati e Laboratorio 32
  • 17. ASSOCIAZIONI ‘N:M’ • E’ trasformata in una relazione con schema: R(K1, K2, C) con chiave primaria K1 ∪ K2 • Valutare se C può diventare parte della chiave primaria, (es.: Serie storiche) • Se C = ∅, lo schema di relazione R possiede solo gli attributi chiave delle entità partecipanti A.A. 2005/2006 Basi di Dati e Laboratorio 33 ESEMPIO Matricola (1, N) (1,N) Nome Nome Studente Frequenza Corso Indirizzo Voto Codice-Corso Studente (Matricola, Nome, Indirizzo) Corso (Codice-Corso, Nome) Frequenza (Matricola, Codice-Corso, Voto) A.A. 2005/2006 Basi di Dati e Laboratorio 34
  • 18. ASSOCIAZIONI ‘1:1’ • R tra E1={K1, W} e E2={K2, X} e Max-Card(E1, R)= 1 e Max-Card(E2, R)= 1, con – K1 identificatore di E1 – W insieme di attributi descrittivi di E1 – K2 identificatore di E2 – X insieme di attributi descrittivi di E2 – C attributi descrittivi di R (se definiti) A.A. 2005/2006 Basi di Dati e Laboratorio 35 ASSOCIAZIONI ‘1:1’ • R è rappresentata mediante chiave esterna in uno dei due schemi di relazione definiti per E1 ed E2: – E1(K1, W, K2, C) E2(K2, X) oppure – E1(K1, W) – E2(K2, X, K1, C) A.A. 2005/2006 Basi di Dati e Laboratorio 36
  • 19. ESEMPIO Partecipazione Obbligatoria Codice-Cli Cod-Carta Tipo (1, 1) (1,1) Carta Cliente Possiede Credito Nome Indirizzo Scadenza Cliente (Codice-Cli, Nome, Indirizzo, Cod-Carta, Tipo) CartaCredito (Cod-Carta, Tipo, Scadenza) A.A. 2005/2006 Basi di Dati e Laboratorio 37 ESEMPIO Partecipazione Opzionale Codice-Cli Cod-Carta Tipo (0, 1) (1,1) Carta Cliente Possiede Credito Nome Indirizzo Scadenza Cliente (Codice-Cli, Nome, Indirizzo) CartaCredito (Cod-Carta, Tipo, Scadenza, Codice-Cli) A.A. 2005/2006 Basi di Dati e Laboratorio 38
  • 20. ASSOCIAZIONI ‘1:N’ • R tra E1={K1, W} e E2={K2, X} e Max-Card(E1,R)=1 e Max-Card(E2,R)= N (o viceversa) con – K1 identificatore di E1 – W insieme di attributi descrittivi di E1 – K2 identificatore di E2 – X insieme di attributi descrittivi di E2 – C attributi descrittivi di R (se definiti) A.A. 2005/2006 Basi di Dati e Laboratorio 39 ASSOCIAZIONI ‘1:N’ (‘N:1’) • R è rappresentata aggiungendo la chiave esterna K2 nello schema di relazione definito per E1, dove si aggiunge anche l’insieme C • E1(K1, W, K2, C) • E2 (K2, X) • Se C = ∅, si aggiunge solamente K2 A.A. 2005/2006 Basi di Dati e Laboratorio 40
  • 21. ESEMPIO Governatore (1, 1) (1,N) Nome Città Locazione Stato Nome Nr.Abitanti Popolazione Città (Nome, Nr.Abitanti, NomeStato) Stato (Nome, Governatore, Popolazione) A.A. 2005/2006 Basi di Dati e Laboratorio 41 ESEMPIO - Partecipazione Opzionale Data Nr.Ordine Sconto (0, 1) (1,N) Ordine Emissione Venditore Telefono Nome Ordine (Nr.Ordine, Data) Venditore (Nome, Telefono) Emissione (Nr.Ordine, Nome, Sconto) Soluzione consigliata in presenza di un numero elevato di ordini emessi senza venditore A.A. 2005/2006 Basi di Dati e Laboratorio 42
  • 22. ENTITA’ CON IDENTIFICATORE ESTERNO • E1={K1, W} entità debole E2={K2, X} entità forte, con R tra E1 e E2, Max-Card(E1, R)= 1, con • K1 ∪ K2 identificatore esterno di E1 • W insieme di attributi descrittivi di E1 • K2 identificatore di E2 • X insieme di attributi descrittivi di E2 • La chiave dell’entità debole contiene l’identificatore dell’entità forte: • E1={K1, K2, W} • E2={K2, X} A.A. 2005/2006 Basi di Dati e Laboratorio 43 GENERAZIONE SCHEMA RELAZIONALE ESEMPIO Identificatore Esterno Codice-Rep Codice-Imp (0, N) Reparto Afferenza Impiegato Locazione Nome (1,1) Impiegato (Codice-Imp, Codice-Rep, Nome) Reparto (Codice-Rep, Locazione) A.A. 2005/2006 Basi di Dati e Laboratorio 44
  • 23. ASSOCIAZIONI N-arie • R associazione N-aria tra E1, E2, …, Ep con E1={K1, W}, E2={K2, X}, …, Ep={Kp, Z}, con C (eventuale) insieme di attributi descrittivi di R • Si procede in maniera analoga alle associazioni binarie ‘N:M’ • R è trasformata in una relazione con schema: E(K, C) • con chiave primaria K = K1 ∪ K2 ∪ … ∪ Kp o un suo sottoinsieme (necessaria verifica di minimalità) • Se C = ∅, lo schema di relazione R possiede solo gli attributi chiave delle entità partecipanti A.A. 2005/2006 Basi di Dati e Laboratorio 45 GENERAZIONE SCHEMA RELAZIONALE ASSOCIAZIONI RICORSIVE • R ricorsiva su E={K, W} ‘N:M’ • R è di tipo ‘N:M’, è trasformata in una relazione con schema: R(K’, K’’) dove K’ e K” coincidono con K, ma sono opportunamente ridenominati per evidenziare il ruolo di E nei due rami di R A.A. 2005/2006 Basi di Dati e Laboratorio 46
  • 24. GENERAZIONE SCHEMA RELAZIONALE RELAZIONI RICORSIVE ‘1:N’ • R è di tipo ‘1:N’, due alternative: • Come sopra R(K’, K’’) con chiave primaria K’, ridenominata da K per il ramo con Max-Card = 1 in R • Si segue la regola delle ‘1:N’ R(K, W, K’’) con K’’ chiave ridenominata secondo il ramo con Max-Card = N in R A.A. 2005/2006 Basi di Dati e Laboratorio 47 ESEMPIO Età Nome Impiegato Subalterno Direttore Direzione N:M Impiegato (Nome, Età) Direzione (NomeDirettore, NomeSubalterno) 1:N Impiegato (Nome, Età, NomeDirettore) A.A. 2005/2006 Basi di Dati e Laboratorio 48