Progettazione
                 Concettuale




Preliminari
 La progettazione di una base di dati è uno dei
 compiti maggio...
Fasi della progettazione
                       Raccolta ed analisi
                       dei requisiti

        Specific...
Raccolta ed analisi dei requisiti
 Vengono definite informalmente le
 caratteristiche della base di dati
 Tale fase è prin...
Progettazione concettuale
 A partire dal documento di specifica viene creato
 uno schema concettuale della base di dati, c...
Progettazione logica
 Traduzione dello schema concettuale nel
 modello dei dati del DBMS target
 L’output è lo schema logi...
Progettazione fisica
 In questa fase vengono effettuate alcune scelte
 circa la memorizzazione fisica dei dati (ad esempio...
Modello Entità-Relazione
 Uno dei modelli più utilizzati nell'ambito della
 progettazione concettuale
 Dotato di rappresen...
Costrutti di base
 Associazione (o relazione): legame logico tra
 entità
 Istanze di associazione: combinazioni di
 istanz...
Grado di un’associazione
 Numero di entità che partecipano ad
 un'associazione
 Associazione unaria: grado 1
             ...
Associazioni
 Ruolo: funzione che un'istanza di entità esercita
 nell'ambito di un'associazione
                          ...
Attributi
 Anche le associazioni possono avere attributi
 Esempio:
                                   giudizio

          ...
Attributo composto
 Possiede dei sotto-attributi
 Es. residenza con sotto-attributi città, via, no
 e cap
 Graficamente:
 ...
Domini composti
 L’insieme dei valori è dato dal prodotto
 cartesiano degli insiemi di valori associati ai
 domini compone...
Dominio di un attributo
 Le informazioni sui domini di un attributo non
 sono direttamente rappresentabili in un
 diagramm...
Vincoli di cardinalità per associazioni
 Cardinalità minima:
    Numero minimo di istanze di un’associazione a cui le
    ...
Vincoli di cardinalità per associazioni

 Valori più comuni:
    c_min: 0, 1
    c_max: n, ovvero qualunque intero > 1
 Da...
Vincoli di cardinalità per associazioni
 Esempio:
                                        (0,n)
                   (1,1)
 ...
Vincoli di cardinalità per attributi
   Numero minimo (c_min) e massimo (c_max) di
   valori dell'attributo che possono es...
Vincoli di identificazione
 Identificatori per un’entità: insieme di attributi e/o
 entità che identificano univocamente l...
Tipologie di identificatori
      Interni: uno o più attributi dell'entità
      Esterni: uno o più entità collegate da un...
Tipologie di identificatori
         Identificatore misto (composto):

                                                   ...
Gerarchie di generalizzazione
     Ulteriore costrutto del modello ER, non presente
     nella formulazione originaria
   ...
Gerarchie di generalizzazione
 Vincoli impliciti:
   Se una entità E1 è definita come generalizzazione di una
   entità E2...
Gerarchie di generalizzazione
 La generalizzazione può essere inoltre:
   Esclusiva: ogni istanza di E è istanza di al
   ...
Associazione di sottoinsieme
 Caso particolare di generalizzazione (parziale ed
 esclusiva)
 Definire una relazione di sot...
Metodologie di progettazione
 Il modello ER è lo strumento tramite cui è possibile
 definire lo schema concettuale di una ...
Raccolta ed analisi dei requisiti
 Operazioni sul documento di specifica:
   Leggerlo attentamente evidenziando tutte le p...
Scelta dei costrutti
 Leggere attentamente il documento di
 specifica e per ogni concetto individuato,
 scegliere il costr...
Scelta dei costrutti
 Se un concetto è un caso particolare di un altro:
   Gerarchia di generalizzazione
 Es. clienti, cli...
Esempio
      Residenza dei clienti della videoteca:
       Via, numero civico, città, cap
      Alternative:
       Attri...
Scelta dei costrutti
      Non sempre è facile decidere se modellare un
      concetto tramite un’entità o una associazion...
Strategia top-down




            Schemainiziale
             Schema finale
          Schema intermedio
              Spe...
Strategia mista
 Si individuano i concetti principali e si
 realizza uno schema scheletro
 Sulla base di questo si può dec...
Verifiche di qualità
 Frequenti verifiche di completezza e
 correttezza sugli schemi intermedi
 Verifiche sullo schema ER ...
Specifiche
Vogliamo realizzare una base di dati per una videoteca. La videoteca consente il noleggio di
circa 1000 film. P...
Specifiche ristrutturate
Vogliamo realizzare una base di dati per una videoteca. La videoteca consente il noleggio di
circ...
Sotto-schema cliente
                                                           città
                                    ...
Sotto-schema noleggio
            dataRest (0,1) dataNol



                   Noleggio

                  (1,1)



      ...
Sotto-schema film


                                               anno
 valutaz (0,1)
         titolo              Film  ...
Integrazione                           dataRest (0,1) dataNol
    codCli …..


                                        (1,...
Integrazione
                                                                               dataRest (0,1) dataNol
       ...
Documentazione
Vincoli:

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

      V2: Un video n...
Dizionario delle entità
Nome         Descrizione                    Attributi                   Identificatori
Cliente    ...
Upcoming SlideShare
Loading in...5
×

03 Progettazione Concettuale

2,510

Published on

Published in: Travel, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,510
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
87
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

03 Progettazione Concettuale

  1. 1. Progettazione Concettuale Preliminari La progettazione di una base di dati è uno dei compiti maggiormente strategici e delicati del progetto di un sistema informativo Progettare una base di dati: definirne il contenuto e la struttura Le basi di dati sono sempre più complesse e di dimensioni elevate ⇒ è necessario un approccio sistematico alla progettazione Metodologia di progettazione basata sulla suddivisione dell’attività in una serie di sotto-fasi 1
  2. 2. Fasi della progettazione Raccolta ed analisi dei requisiti Specifica dei requisiti Schema concettuale Progettazione concettuale Documentazione Schema logico Progettazione logica Documentazione Schema logico normalizzato Normalizzazione Documentazione Progettazione fisica 2 Schema fisico Fasi della progettazione Ogni fase si basa su un modello, che permette di generare una rappresentazione formale della base di dati ad un dato livello di astrazione L’utilizzo del modello appropriato permette di: Verificare le caratteristiche della base di dati Comunicare con i futuri utenti della base di dati Ogni fase prevede opportune verifiche di qualità 3
  3. 3. Raccolta ed analisi dei requisiti Vengono definite informalmente le caratteristiche della base di dati Tale fase è principalmente condotta in maniera informale (interviste con gli utenti, analisi basi di dati esistenti, normativa, ambiente operativo) L’output è un documento in linguaggio naturale di specifica dei requisiti 4 Raccolta ed analisi dei requisiti Tipologie di requisiti: Requisiti informativi: caratteristiche e tipologie dei dati Requisiti sulle operazioni: esplicitati nel carico di lavoro Requisiti sui vincoli di integrità ed autorizzazione: proprietà da assicurare ai dati, in termini di correttezza e protezione Requisiti sulla popolosità della base di dati: volume dei dati 5
  4. 4. Progettazione concettuale A partire dal documento di specifica viene creato uno schema concettuale della base di dati, cioè una descrizione formale ed ad alto livello del suo contenuto Lo schema concettuale è del tutto indipendente dall'implementazione della base di dati (indipendente anche dal tipo di DBMS che sarà utilizzato - relazionale, object-relational, ecc.) Lo schema concettuale è definito tramite un opportuno modello concettuale Durante la progettazione concettuale vengono effettuate verifiche di qualità che possono portare ad un ridisegno dello schema generato 6 Progettazione concettuale L’output di questa fase è: Lo schema concettuale della base di dati sviluppato utilizzando il modello concettuale prescelto Una documentazione a corredo dello schema, contenente: Vincoli d’integrità non rappresentabili nello schema Scelte progettuali Altre informazioni che vedremo in seguito 7
  5. 5. Progettazione logica Traduzione dello schema concettuale nel modello dei dati del DBMS target L’output è lo schema logico nel DDL del DBMS target Aspetti considerati durante la progettazione logica: Integrità e consistenza Sicurezza Efficienza 8 Normalizzazione Verifica di qualità dello schema logico prodotto, effettuata tramite opportuni strumenti formali Prende il nome di normalizzazione nel caso di basi di dati relazionali Tale attività può portare ad una ristrutturazione dello schema logico prodotto 9
  6. 6. Progettazione fisica In questa fase vengono effettuate alcune scelte circa la memorizzazione fisica dei dati (ad esempio, indici) L’output è lo schema fisico che descrive le strutture di memorizzazione ed accesso ai dati 10 …. Nel seguito, ci concentreremo sulla progettazione concettuale…. 11
  7. 7. Modello Entità-Relazione Uno dei modelli più utilizzati nell'ambito della progettazione concettuale Dotato di rappresentazione grafica: diagramma (o schema) ER Costrutti di base: Entità Associazioni Attributi 12 Costrutti di base Entità: collezione di oggetti della realtà che vogliamo modellare, che possiedono caratteristiche comuni (es. clienti, film, …) Istanze di entità: specifici oggetti appartenenti ad una certa entità (es. il cliente Marco Verdi, il film La fabbrica di cioccolato, …) Graficamente: Film Cliente 13
  8. 8. Costrutti di base Associazione (o relazione): legame logico tra entità Istanze di associazione: combinazioni di istanze delle entità che prendono parte ad una associazione Graficamente: Film Cliente Consiglia c istanza di Cliente, f istanza di Film (c,f) istanza di Consiglia 14 Associazioni L'insieme delle istanze di un'associazione è un sottoinsieme del prodotto Cartesiano degli insiemi delle istanze delle entità che partecipano all'associazione Quindi, l’insieme delle istanze di un’associazione non può contenere duplicati Ciò ha conseguenza sulle scelte progettuali (si veda il seguito) 15
  9. 9. Grado di un’associazione Numero di entità che partecipano ad un'associazione Associazione unaria: grado 1 SeguitoDi Film Associazione binaria: grado 2 Film Cliente Consiglia 16 Grado di un’associazione Associazione n-aria: grado n > 2 Film CasaProd Prodotto Studio 17
  10. 10. Associazioni Ruolo: funzione che un'istanza di entità esercita nell'ambito di un'associazione SeguitoDi Film prequel sequel Nel caso di associazione unaria il ruolo è sempre necessario 18 Attributi Proprietà posseduta da un'entità o da un'associazio- ne Graficamente: residenza nome Cliente cognome telefono dataN codCli nome, cognome, codCli, residenza, telefono, dataN sono attributi di Cliente 19
  11. 11. Attributi Anche le associazioni possono avere attributi Esempio: giudizio Film Cliente Consiglia Il giudizio non è specifico né di un cliente né di un film, ma del legame Cliente-Film che si crea quando un cliente consiglia un certo film 20 Attributi Mono-valore: possono assumere un solo valore Multi-valore: possono assumere più di un valore Esempio: residenza nome Cliente cognome telefono dataN codCli dataN: mono-valore in quanto un cliente ha una sola data di nascita telefono: multi-valore in quanto un cliente può avere più recapiti telefonici 21
  12. 12. Attributo composto Possiede dei sotto-attributi Es. residenza con sotto-attributi città, via, no e cap Graficamente: città via residenza no cap 22 Dominio di un attributo Insieme dei valori che un attributo può assumere Domini semplici: Domini standard: interi, reali, booleani, date, caratteri,stringhe di caratteri, ecc. Intervalli di valori: ad esempio di interi o di caratteri Insiemi di valori (per attributi multi-valore) Domini definiti per enumerazione dall'utente Notazione: [vi,vj]: intervallo compreso fra vi e vj set_of(d): insiemi di valori nel dominio d {vi, ... vj}: rappresenta uno tra i valori: vi, ..., vj 23
  13. 13. Domini composti L’insieme dei valori è dato dal prodotto cartesiano degli insiemi di valori associati ai domini componenti. se D = D1 × D2 × … × Dn allora < d1, ..., dn > t.c. di ∈ Di, i = 1, ..., n, è un possibile valore Servono per associare un dominio agli attributi composti 24 Dominio di un attributo Esempio: possibile dichiarazione per gli attributi dell’entità Cliente: codCli: int nome: string cognome: string dataN: date residenza: string × string × string × int dichiarazione per l’attributo giudizio dell’associazione Consiglia: giudizio: dom_giudizio dom_giudizio: [0,5] 25
  14. 14. Dominio di un attributo Le informazioni sui domini di un attributo non sono direttamente rappresentabili in un diagramma ER Sono però fondamentali per una corretta progettazione logica Devono quindi essere inserite nella documentazione a corredo del diagramma ER 26 Vincoli di integrità Il modello ER fornisce costrutti per definire: 1. Vincoli di cardinalità, sia per associazioni che per attributi 2. Vincoli di identificazione, per entità Anche i domini degli attributi sono dei vincoli di integrità 27
  15. 15. Vincoli di cardinalità per associazioni Cardinalità minima: Numero minimo di istanze di un’associazione a cui le istanze delle entità coinvolte nell’associazione possono partecipare Cardinalità massima: Numero massimo di istanze di un’associazione a cui le istanze delle entità coinvolte nell’associazione possono partecipare Graficamente, data un’entita E ed un’associazione A la cardinalità minima e massima di E rispetto ad A si indica tramite la coppia (c_min,c_max) sulla linea che congiunge E ad A 28 Esempio (0,3) (0,1) Video Cliente Noleggia Un cliente può: Non avere in noleggio video (c_min = 0) Averne contemporaneamente in noleggio non più di 3 (c_max = 3) Un video può: Non essere correntemente in noleggio (c_min = 0) Essere noleggiato da non più di un cliente contemporaneamente (c_max = 1) 29
  16. 16. Vincoli di cardinalità per associazioni Valori più comuni: c_min: 0, 1 c_max: n, ovvero qualunque intero > 1 Data un’entità E ed un'associazione A: c_min=0 ⇒ esistono istanze di E che non partecipano ad alcuna istanza di A, la partecipazione di E ad A è opzionale c_min=1 ⇒ ogni istanza di E partecipa almeno ad una istanza di A, la partecipazione di E ad A è obbligatoria 30 Vincoli di cardinalità per associazioni Data un’entità E ed un'associazione A: c_max=1 ⇒ ogni istanza di E può partecipare a non più di una istanza di A c_max=c_min=1 ⇒ ogni istanza di E partecipa ad una ed una sola istanza di A c_max=n ⇒ non esiste limite al numero massimo di istanze di A a cui ogni istanza di E può partecipare c_min=0, c_max=n ⇒ ogni istanza di E può partecipare ad un numero qualsiasi di istanze di A, anche nessuna Se in un diagramma ER si omettono i vincoli di cardinalità per le associazioni, si assume (0,n) come valore di default 31
  17. 17. Vincoli di cardinalità per associazioni Esempio: (0,n) (1,1) Video Contiene Film c_min di Video rispetto a Contiene è 1: ogni video contiene almeno un film c_min di Film rispetto a Contiene è 0: possono esistere film in catalogo per cui al momento non sono presenti video c_max di Video rispetto a Contiene è 1: ogni video contiene al più un film c_max di Film rispetto a Contiene è n: ogni film può essere contenuto in un numero arbitrario di video 32 Vincoli di cardinalità per associazioni Un'associazione binaria A tra due entità E1 ed E2 (o unaria con E1 = E2) si dice: uno a uno: se c_max di E1 ed E2 rispetto ad A è 1 uno a molti: se c_max di E1 rispetto ad A è n e c_max di E2 rispetto ad A è 1, oppure c_max di E1 rispetto ad A è 1 e c_max di E2 rispetto ad A è n molti a molti: se c_max di E1 ed E2 rispetto ad A èn 33
  18. 18. Vincoli di cardinalità per attributi Numero minimo (c_min) e massimo (c_max) di valori dell'attributo che possono essere associati ad un'istanza della corrispondente associazione od entità Nei diagrammi ER si indicano mediante la coppia (c_min,c_max) sulla linea che congiunge l'attributo all'associazione/entità Se vengono omessi, il valore di default è (1,1) 34 Vincoli di cardinalità per attributi Si parla di attributi: opzionali: se la cardinalità minima è 0 obbligatori: se la cardinalità minima è 1 mono-valore: se la cardinalità massima è 1 multi-valore: se la cardinalità massima è n Esempio: residenza nome (1,2) cognome (1,2) Cliente telefono (1,n) codCli dataN (0,1) 35
  19. 19. Vincoli di identificazione Identificatori per un’entità: insieme di attributi e/o entità che identificano univocamente le istanze dell'entità Un identificatore è minimale se qualsiasi sottoinsieme proprio non è un identificatore Durante la progettazione concettuale per ogni entità è bene identificare tutti gli identificatori minimali Si noti che gli identificatori hanno senso solo per le entità e non per le associazioni Nell'insieme di istanze di un'associazione si hanno tutte tuple distinte ⇒ non c'è bisogno di identificatori 36 Vincoli di identificazione A volte non è possibile identificare un'istanza di entità solo sulla base dei suoi attributi, cioè due istanze diverse possono coincidere su tutti gli attributi Si utilizza allora il fatto che tale istanza partecipi ad una particolare istanza di associazione con una data istanza di un'altra entità L'entità identificata in questo modo viene detta entità debole 37
  20. 20. Tipologie di identificatori Interni: uno o più attributi dell'entità Esterni: uno o più entità collegate da una associazione all'entità a cui si riferiscono (identificazione esterna da tale entità attraverso tale associazione) Misti: combinazioni delle due tipologie precedenti Semplici: un solo elemento Composti: più di un elemento 38 Tipologie di indentificatori Identificatore interno semplice: residenza nome cognome Cliente telefono codCli dataN Identificatore interno composto: anno valutaz titolo Film genere regista 39
  21. 21. Tipologie di identificatori Identificatore misto (composto): nome colloc (1,n) (1,1) Videoteca Video Posseduto città tipo Identificatore esterno (semplice): nome (0,1) Nazionale (1,1) capitale Nazione Gioca numAbitanti 40 Vincoli di identificazione Le entità deboli hanno sempre cardinalità (1,1) rispetto all'associazione attraverso cui avviene l'identificazione: Nel caso di identificazione esterna l'associazione sarà uno a uno Nel caso di identificazione mista l'associazione sarà uno a molti 41
  22. 22. Gerarchie di generalizzazione Ulteriore costrutto del modello ER, non presente nella formulazione originaria Una entità E è una generalizzazione delle entità E1, …, En se ogni istanza delle entità E1, …, En è anche un'istanza di E: E: entità padre E1, …, En: entità figlie Tutte le proprietà dell’entità padre (attributi, identificatori ed associazioni) vengono ereditate dalle entità figlie 42 Graficamente residenza nome cognome Cliente telefono codCli dataN bonus ptiMancanti Standard VIP 43
  23. 23. Gerarchie di generalizzazione Vincoli impliciti: Se una entità E1 è definita come generalizzazione di una entità E2: L'insieme delle istanze di E2 deve essere contenuto in quello delle istanze di E1 Ogni attributo di E1 è anche un attributo di E2 Ad ogni associazione cui partecipa E1 partecipa anche E2 44 Gerarchie di generalizzazione E generalizzazione di E1 … En: Totale: ogni istanza di E è istanza di almeno un'entità Ei es. Cliente - Standard, VIP, se standard e VIP sono le uniche tipologie di clienti previste dalla videoteca Parziale: esiste almeno un'istanza di E che non è istanza di alcuna entità Ei es. Cliente - Standard, VIP, se esistono clienti che possono effettuare un noleggio senza registrarsi al programma di fidelizzazione 45
  24. 24. Gerarchie di generalizzazione La generalizzazione può essere inoltre: Esclusiva: ogni istanza di E è istanza di al più un'entità Ei es. Cliente - Standard, VIP Condivisa: esiste almeno un'istanza di E che è istanza di più di un'entità Ei es. Film - FilmAnimazione, FilmEssay 46 Gerarchie di generalizzazione Le due classificazioni precedenti sono ortogonali Le generalizzazioni possono quindi essere di 4 tipi: Totali esclusive, totali condivise Parziali esclusive, parziali condivise Le informazioni sulle tipologie di gerarchie di generalizzazione presenti in uno schema ER vanno inserite nella documentazione a corredo dello schema 47
  25. 25. Associazione di sottoinsieme Caso particolare di generalizzazione (parziale ed esclusiva) Definire una relazione di sottoinsieme tra una entità E1 ed una entità E2 significa specificare che ogni istanza di E1 è anche istanza di E2 Esempio: Film FilmBn 48 Modello ER: Principali simboli grafici 49
  26. 26. Metodologie di progettazione Il modello ER è lo strumento tramite cui è possibile definire lo schema concettuale di una base di dati, ma… Come ottenere un “buon” schema concettuale partendo dal documento di specifica dei requisiti? Come si valuta la “bontà” di uno schema concettuale? Non esiste una metodologia totalmente standardizzabile … ma esistono alcune linee guida per condurre le varie fasi 50 Raccolta ed analisi dei requisiti E’ una attività difficilmente standardizzabile Di solito condotta da personale esperto, in stretta collaborazione con gli utenti finali Una volta ottenuto il documento di specifica, è però possibile effettuare alcune operazioni su di esso, che faciliteranno le successive fasi di progettazione 51
  27. 27. Raccolta ed analisi dei requisiti Operazioni sul documento di specifica: Leggerlo attentamente evidenziando tutte le possibili fonti di ambiguità ed imprecisione, cercando di chiarirle con i committenti del progetto Evidenziare i sinonimi, scegliere tra questi il termine che meglio modella il concetto da rappresentare, e sostituire gli altri con il termine scelto Separare le frasi che riguardano i dati (di maggiore rilevanza per la progettazione) da quelle che riguardano le operazioni Riorganizzare le frasi per concetti 52 Progettazione concettuale Ristrutturato il documento di specifica, come è possibile ottenere da questo un buon schema ER? Scelta dei costrutti Metodologie per la generazione di diagrammi ER Documentazione dei diagrammi Verifiche di qualità 53
  28. 28. Scelta dei costrutti Leggere attentamente il documento di specifica e per ogni concetto individuato, scegliere il costrutto del modello ER più idoneo alla sua rappresentazione Esistono alcune linee guida per effettuare questa scelta 54 Scelta dei costrutti Se un concetto descrive un insieme omogeneo di oggetti rilevanti per il dominio considerato e caraterizzati da un insieme di proprietà comuni: Entità Es. clienti della videoteca, film Sono buoni candidati a essere rappresentati come entità i nomi che compaiono frequentemente nel documento di specifica Leggendo il documento di specifica, si devono anche assegnare gli opportuni vincoli di identificazione alle entità 55
  29. 29. Scelta dei costrutti Se un concetto è un caso particolare di un altro: Gerarchia di generalizzazione Es. clienti, clienti standard e clienti VIP Questa soluzione è opportuna quando l’insieme delle proprietà delle entità figlie è diverso da quello delle entità padre Altrimenti, alternativa: inserire nell’entità che modella il concetto più generale un attributo che indentifica le varie tipologie di istanze (es. video con attributo tipo per indicare se DVD o VHS) 56 Scelta dei costrutti Se il concetto rappresenta una proprietà elementare, senza ulteriori sotto-proprietà: Attributo Es. nome di un cliente, titolo di un film, codice di un video Nel caso invece di proprietà con sotto-proprietà, bisogna decidere se modellarle tramite attributi composti oppure entità Leggendo il documento di specifica, si devono anche assegnare gli opportuni vincoli di cardinalità 57
  30. 30. Esempio Residenza dei clienti della videoteca: Via, numero civico, città, cap Alternative: Attributo composto dell’entità Cliente 1. Entità residenza collegata a Cliente da 2. un’associazione (1) è opportuna quando non esistono molti clienti 3. che condividono la stessa residenza 58 Scelta dei costrutti Se un concetto denota un legame logico tra concetti modellati come entità: Associazione Es. video consigliato da un cliente Una associazione può anche avere delle proprietà, modellate come attributi Sono buoni candidati a essere rappresentati come associazioni i verbi che mettono in relazione concetti modellati come entità Leggendo il documento di specifica, si devono anche assegnare gli opportuni vincoli di cardinalità alle associazioni 59
  31. 31. Scelta dei costrutti Non sempre è facile decidere se modellare un concetto tramite un’entità o una associazione: Es. Noleggio di un video da parte di un cliente: Associazione Noleggia tra Cliente e Video 1. Entità Noleggio legata a Cliente e Video tramite 2. opportune associazioni (1) non permette di rappresentare più noleggi dello stesso 3. video da parte dello stesso cliente. E’ appropriata se si vogliono mantenere informazioni solo sui noleggi in corso (2) permette di modellare più noleggi dello stesso video 4. da parte dello stesso cliente, mediante attributi dataNol e dataRest 60 Generazione diagrammi ER Il diagramma ER finale viene di solito generato mediante raffinamento e/o integrazione di un certo numero di schemi intermedi (dipendente dalla complessità delle specifiche) Strategie: Top-down Bottom-up Mista 61
  32. 32. Strategia top-down Schemainiziale Schema finale Schema intermedio Specifiche Schema intermedio 62 Strategia bottom-up Schema 2,1 Specifiche 2,1 Schema 1,1 Specifiche 1,1 Specifiche Specifiche 1 Specifiche 2 Schema finale Specifiche2,2 Schema 2,2 Specifiche 1,2 Schema 1,2 63
  33. 33. Strategia mista Si individuano i concetti principali e si realizza uno schema scheletro Sulla base di questo si può decomporre Poi si raffina, si espande, si integra per arrivare allo schema finale 64 Documentazione di supporto Deve contenere: Domini degli attributi Vincoli imposti dal dominio, non rappresentabili tramite vincoli di identificazione e cardinalità nel diagramma ER Vincoli di autorizzazione, se necessari Tipologie di gerarchie di generalizzazione Informazioni sulle principali scelte progettuali, soprattutto ove siano possibili più alternative Per basi di dati di dimensioni elevate:dizionario delle entità e delle associazioni 65
  34. 34. Verifiche di qualità Frequenti verifiche di completezza e correttezza sugli schemi intermedi Verifiche sullo schema ER finale: Correttezza sintattica e semantica Completezza Ridondanza 66 Un esempio di progettazione concettuale Videoteca 67
  35. 35. Specifiche Vogliamo realizzare una base di dati per una videoteca. La videoteca consente il noleggio di circa 1000 film. Per ogni film, vogliamo memorizzare il titolo, il regista, l'anno di produzione, il genere e la valutazione della critica, se presente. Ogni film è disponibile per il noleggio in un certo numero di video.Ogni videocassetta o dvd disponibile nella videoteca (circa 3000) è identificato da un codice di collocazione e dal tipo di supporto (videocassetta o dvd).La base di dati dovrà inoltre memorizzare informazioni sui clienti della videoteca (circa 2000) e sui video che hanno noleggiato.Il numero di noleggi giornalieri alla videoteca è circa 200. Per ogni utente della videoteca vogliamo mantenere il suo nome, cognome, data di nascita, residenza e telefono. Ogni cliente è identificato da un codice che corrisponde al numero della tessera rilasciatagli per usufruire dei servizi della videoteca. Ogni cliente può avere contemporaneamente in noleggio un certo numero di video (non più di tre). Per ogni noleg- gio, vogliamo memorizzare la data in cui il noleggio è stato effettuato e, per i noleggi con- clusi, la data di restituzione. Ogni cliente può inoltre consigliare dei film ad altri clienti, espri- mendo per essi un giudizio.La videoteca prevede un programma di fidelizzazione dei clienti. Ogni noleggio consente l'accumulo di un certo numero di punti. Quando i punti accumulati superano una certa soglia, i clienti vengono qualificati come clienti VIP e hanno diritto ad un bonus. La base di dati dovrà memorizzare, per ogni cliente VIP, il valore corrente del suo bonus. Per i clienti standard, ovvero quelli che non hanno ancora accumulato punti sufficien- ti per accedere alla categoria VIP, vogliamo memorizzare il numero di punti mancanti ad accedere a tale categoria 68 Specifiche Vogliamo realizzare una base di dati per una videoteca. La videoteca consente il noleggio di circa 1000 film. Per ogni film, vogliamo memorizzare il titolo, il regista, l'anno di produzione, il genere e la valutazione della critica, se presente. Ogni film è disponibile per il noleggio in un certo numero di video.Ogni videocassetta o dvd disponibile nella videoteca (circa 3000) è identificato da un codice di collocazione e dal tipo di supporto (videocassetta o dvd).La base di dati dovrà inoltre memorizzare informazioni sui clienti della videoteca (circa 2000) e sui video che hanno noleggiato.Il numero di noleggi giornalieri alla videoteca è circa 200. Per ogni utente della videoteca vogliamo mantenere il suo nome, cognome, data di nascita, residenza e telefono. Ogni cliente è identificato da un codice che corrisponde al numero della tessera rilasciatagli per usufruire dei servizi della videoteca. Ogni cliente può avere contemporaneamente in noleggio un certo numero di video (non più di tre). Per ogni noleg- gio, vogliamo memorizzare la data in cui il noleggio è stato effettuato e, per i noleggi con- clusi, la data di restituzione. Ogni cliente può inoltre consigliare dei film ad altri clienti, esprimendo per essi un giudizio.La videoteca prevede un programma di fidelizzazione dei clienti. Ogni noleggio consente l'accumulo di un certo numero di punti. Quando i punti accumulati superano una certa soglia, i clienti vengono qualificati come clienti VIP e hanno diritto ad un bonus. La base di dati dovrà memorizzare, per ogni cliente VIP, il valore corrente del suo bonus. Per i clienti standard, ovvero quelli che non hanno ancora accumulato punti sufficienti per accedere alla categoria VIP, vogliamo memorizzare il numero di punti mancanti ad accedere a tale categoria 69
  36. 36. Specifiche ristrutturate Vogliamo realizzare una base di dati per una videoteca. La videoteca consente il noleggio di circa 1000 film. Per ogni film, vogliamo memorizzareil titolo, il nome e cognome del regista, l'anno di produzione, il genere e la valutazione della critica (espressa in una scala di valori decimali da 0 a 5), se presente. Ogni film è disponibile per il noleggio in un certo numero di video (dove video sono sia videocassette che dvd). Ogni video disponibile nella videoteca (circa 3000) è identificato da un codice di collocazione e dal tipo di supporto(videocassetta o dvd).La base di dati dovrà inoltre memorizzare informazioni sui clienti della videoteca (circa 2000) e sui video che hanno correntemente in noleggio ed hanno noleggiato in passato. Il numero di noleggi giornalieri alla videoteca è circa 200. Per ogni cliente della videoteca vogliamo mantenere il suo nome, cognome, data di nascita, residenza (intesa come città, via, numero civico e cap) e un insieme di recapiti telefonici. Ogni cliente è identificato da un codice che corrisponde al numero della tessera rilasciatagli per usufruire dei servizi della videoteca. Ogni cliente può avere contemporaneamente in noleggio un certo numero di video (non più di tre).Per ogni noleggio vogliamo memorizzare il giorno, mese ed anno in cui il noleggio è stato effettuato e, per i noleggi conclusi, il giorno, mese ed anno della restituzione. Ogni cliente può inoltre consigliare dei film ad altri clienti, esprimendo per essi un giudizio in una scala di valori interi da 0 a 5. La videoteca prevede un programma di fidelizzazione dei clienti. Ogni noleggio consente l'accumulo di un certo numero di punti. Quando i punti accumulati superano una certa soglia, i clienti vengono qualificati come clienti VIP e hanno diritto ad un bonus di un certo importo espresso in euro. La base di dati dovrà memorizzare, per ogni cliente VIP, il valore corrente del suo bonus. Per i clienti standard, ovvero quelli che non hanno ancora accumulato punti sufficienti per accedere alla categoria VIP, vogliamo memorizzare 70 il numero di punti mancanti ad accedere a tale categoria Schema scheletro Video Cliente Noleggia Contiene Film 71
  37. 37. Sotto-schema cliente città via residenza no nome cap cognome Cliente telefono (1,n) dataN codCli bonus Standard VIP 72 Schema scheletro Video Cliente Noleggia Contiene Film 73
  38. 38. Sotto-schema noleggio dataRest (0,1) dataNol Noleggio (1,1) RelativoA (0,n) colloc Video DVD VHS 74 Schema scheletro Video Cliente Noleggia Contiene Film 75
  39. 39. Sotto-schema film anno valutaz (0,1) titolo Film genere regista 76 Integrazione Video Cliente Noleggia Contiene Film 77
  40. 40. Integrazione dataRest (0,1) dataNol codCli ….. (1,1) (0,n) Noleggio Cliente Effettua (1,1) RelativoA Standard VIP (0,n) ptiMancanti bonus colloc Video DVD VHS 78 Integrazione Video Cliente Noleggia Contiene Film 79
  41. 41. Integrazione dataRest (0,1) dataNol codCli ….. (1,1) (0,n) Noleggio Cliente Effettua (1,1) RelativoA bonus Standard VIP (0,n) ptiMancanti colloc (1,1) (0,n) Contiene Film Video …… DVD VHS 80 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 Contiene genere (0,n) valutaz (0,1) (0,n) Fi lm anno 81 ti tol o regi sta
  42. 42. Documentazione 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 82 Documentazione Gerarchie di generalizzazione: Entità padre Entità figlie Tipologia Cliente Standard, VIP Totale/esclusiva Video DVD, VHS Totale/esclusiva 83
  43. 43. Dizionario delle entità Nome Descrizione Attributi Identificatori Cliente Utenti che usufruiscono codCli,dataN, codCli, dei servizi della videoteca nome, cognome, {nome, cognome, dataN} telefono, residenza Standard Cliente comune della ptiMancanti gli stessi di Cliente videoteca VIP Cliente VIP della bonus gli stessi di Cliente videoteca Video Video offerti dalla colloc colloc videoteca Noleggio Noleggi correnti e conclusi dataNol, dataRest {video,dataNol} effettuati nella videoteca {video,dataRest} Film Film offerti dalla videoteca titolo, regista, valutaz, gli stessi di video anno, genere DVD DVD offerti dalla videoteca gli stessi di video VHS Videocassette offerte dalla gli stessi di video videoteca 84 Dizionario delle associazioni Nome Descrizione Attributi Entità collegate Effettuata Noleggi effettuati Cliente, Noleggio RelativoA Video noleggiati Noleggio, Video Contiene Film a disposizione Video, Film nella videoteca Consiglia Film consigliati dai giudizio Cliente, Film clienti della videoteca 85
  1. A particular slide catching your eye?

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

×