SlideShare a Scribd company logo
Progettazione dei DATABASE 08/01/11 Autore: Antonino BARTOLONE
Introduzione Realizzare una base di dati che bene o male funzioni può essere relativamente  facile , ma progettare una base dati robusta e a prova di errori (detti anomalie) è molto,  molto meno facile .  08/01/11 Autore: Antonino BARTOLONE
Le  anomalie  possono essere distinte in 3 tipi: Anomalia di inserimento . Se nell'inserire un nuovo record in una tabella si è costretti a inserire informazioni già presenti nel DB.  Anomalia di cancellazione . Se nel cancellare un record si è costretti a cancellare informazioni che possono essere ancora utili nel DB.  Anomalia di aggiornamento . Se dovendo aggiornare un record si è costretti ad aggiornarne molti altri. 08/01/11 Autore: Antonino BARTOLONE
Un errore di progettazione molto comune che dà quasi sempre luogo ad anomalie è quello di voler realizzare il Database con un'unica grande tabella che contenga tutte le informazioni possibili ( tabella grassa ).  ESEMPIO:………….  08/01/11 Autore: Antonino BARTOLONE
08/01/11 PERSONA  (nome della tabella) Autore: Antonino BARTOLONE Nome Cognome Comune di nascita Regione di nascita Stato di nascita Giuseppe Rossi Vallo della Lucania Campania Italia Adolfo Rossi Vallo della Lucania Campania Italia Antonio Bianchi Lauria Basilicata Italia Daniele Verdi Lagonegro Basilicata Italia Adolfo Rossi Milano Lombardia Italia Francesco Verdi Vallo della Lucania Campania Italia Giulio Verdi Salerno Campania Italia
Se si inserisce una nuova persona nata a Salerno, si è costretti a inserire anche le informazioni “Campania” e “Italia”, informazioni che sono già presenti in tabella. Questo è causa di ridondanza e può anche portare a contraddizioni interne nel DB (cosa accade se un operatore si sbaglia e scrive Salerno, Basilicata?).  08/01/11 Anomalia di inserimento Autore: Antonino BARTOLONE
Se si cancella Antonio Bianchi dalla tabella si cancella anche l'informazione che Lauria è in Basilicata. Chi esegue la cancellazione può non rendersi conto di questo aspetto.  08/01/11 Anomalia di cancellazione Autore: Antonino BARTOLONE
Se, per ipotesi, il comune di Vallo della Lucania passasse dalla Campania alla Basilicata, per aggiornare il DB si sarebbe costretti ad aggiornare tutti i record delle persone residenti in quel comune. Il rischio è qui di  dimenticare  di aggiornare qualche record. 08/01/11 Anomalia di aggiornamento Autore: Antonino BARTOLONE
Conclusione: la tabella è stata progettata male. Esaminandola in dettaglio appare evidente il motivo di fondo delle anomalie; nella tabella abbiamo preteso di inserire insieme, informazioni di natura diversa: anagrafiche (la tal persona è nata nel tal comune) e geografiche (il tale comune si trova nella tale regione). La soluzione più naturale è allora quella di  spezzare  la tabella in due o più tabelle ognuna limitata a  un solo tipo di informazione .   08/01/11 Autore: Antonino BARTOLONE
Fasi di progettazione descrizione dell’organizzazione dei dati ad un alto livello di astrazione (individuazione di tutti i dati, delle relazioni tra i dati, dei vincoli esistenti…), effettuabile con l’ausilio di un “modello concettuale” 08/01/11 Progettazione concettuale Progettazione logica Progettazione fisica Progettazione concettuale: Il modello concettuale di dati più affermato è il “modello Entità-Relazione” (E-R) Autore: Antonino BARTOLONE
traduzione del diagramma E/R verso il modello di rappresentazione dei dati relativo al DBMS che intendiamo utilizzare. Fasi di progettazione 08/01/11 Progettazione concettuale Progettazione logica Progettazione fisica Progettazione logica: Tra i modelli logici di Database utilizzati (gerarchico, reticolare, relazionale) quello più utilizzato è il  relazionale .   In questa fase si fa uso di tecniche per l’ottimizzazione del DB ( ristrutturazione ) e per la verifica della qualità dello schema logico ottenuto ( normalizzazione ) Autore: Antonino BARTOLONE
completamento dello schema logico con le specifiche di parametri strettamente legati all’hardware e al software utilizzato. Fasi di progettazione 08/01/11 Progettazione concettuale Progettazione logica Progettazione fisica Progettazione fisica: Autore: Antonino BARTOLONE
Progettazione concettuale Individuaiamo gli oggetti (o  entità ) e le relazioni (o  associazioni ) tra un oggetto e l'altro, che dovranno costituire il DB. Rappresentiamo le entità e le associazioni individuate con il modello dei diagrammi Entità-Relazione ( Diagramma E-R ) 08/01/11 Progettazione concettuale Autore: Antonino BARTOLONE
Le  entità  o oggetti sono i componenti principali di un Database; rappresentano “fatti”, “cose”, “persone” con  proprietà comuni  ed esistenza “ autonoma ”.  Esempi classici di entità sono PERSONA, COMUNE, LIBRO ...  08/01/11 Progettazione concettuale Autore: Antonino BARTOLONE
Nei diagrammi E-R l' entità  è rappresentata con un rettangolo, all'interno del quale scriveremo il nome dell'entità stessa. Attorno al rettangolo si scrivono gli  attributi  (o  campi ). L'entità è quindi rappresentata come aggregazione di attributi.  08/01/11 LIBRO ISBN Titolo Prezzo N_pagine Progettazione concettuale Autore: Antonino BARTOLONE
Le  associazioni  rappresentano “legami logici” tra due o più entità; Esempio di associazione che può sussistere tra le entità PERSONA e COMUNE è: NASCITA Le  associazioni  vengono rappresentate nel modello E-R con il simbolo grafico del  rombo  (dentro il quale si scrive il nome) e da  linee  che collegano le entità  (e i vari altri componenti del diagramma). 08/01/11 Progettazione concettuale PERSONA COMUNE Autore: Antonino BARTOLONE NASCITA
Individuazione di una prima entità coinvolta che sembri essere quella più importante:  LIBRO Un libro è  scritto  da uno o più autori    seconda entità:  AUTORI Un libro è  pubblicato  da una casa editrice    terza entità:  EDITORE Associazioni individuate:  SCRITTURA  (tra LIBRO e AUTORE);  PUBBLICAZIONE  (tra EDITORE  e LIBRO) 08/01/11 Esempio Gestione semplice di una BIBLIOTECA Possiamo quindi generare il relativo diagramma E-R   Progettazione concettuale Autore: Antonino BARTOLONE
08/01/11 AUTORE LIBRO EDITORE ISBN Titolo Prezzo N_pagine Nome ID Nome ID Cognome Progettazione concettuale Anno Autore: Antonino BARTOLONE PUBBLICAZIONE SCRITTURA
Per ogni associazione va individuata la  cardinalità  di ogni entità collegata. Per ogni occorrenza della I ª  entità, la  cardinalità  esprime il min e Max di associazioni possibili sulla II ª  entità. Le cardinalità Max delle entità coinvolte, determinano il tipo di associazione (o relazione) risultante: 1:1 – associazione uno a uno 1:N – associazione uno a molti N:N – associazione molti a molti 08/01/11 Progettazione concettuale Autore: Antonino BARTOLONE
Per ogni ordine ,  può essere associata nessuna (min = 0) o al massimo una (Max = 1) fattura di vendita 08/01/11 Progettazione concettuale Esempio – associazione 1:1 ORDINE FATTURA VENDITA ( 0 , 1 ) ( 1 , 1 ) cardinalità minime cardinalità massime Per ogni fattura ,  può essere associato uno (min = 1) ed uno solo (Max = 1) ordine di vendita Considerando le  cardinalità massime , ne deduciamo che l’associazione VENDITA è di tipo  uno a uno  (1:1) Autore: Antonino BARTOLONE
Per ogni persona ,  può essere associato uno (min = 1) ed uno solo (Max = 1) comune di nascita 08/01/11 Considerando le  cardinalità massime , ne deduciamo che l’associazione NASCITA è di tipo  uno a molti  (1:N) Progettazione concettuale Esempio – associazione 1:N PERSONA COMUNE NASCITA ( 1 , 1 ) ( 0 , N ) cardinalità minime cardinalità massime Per ogni comune ,  può essere associato nessuno (min = 0) o tante (Max = N) nascite di persone Autore: Antonino BARTOLONE
08/01/11 Considerando le  cardinalità massime , ne deduciamo che l’associazione PRENOTAZIONE è di tipo  molti a molti  (N:N) Per ogni turista ,  può essere associato nessuna (min = 0) o tante (Max = N) prenotazioni di viaggi Progettazione concettuale Esempio – associazione N:N TURISTA VIAGGIO PRENOTAZIONE ( 0 , N ) ( 0 , N ) cardinalità minime cardinalità massime Per ogni viaggio ,  può essere associato nessuno (min = 0) o tanti (Max = N) prenotazioni di turisti Autore: Antonino BARTOLONE
08/01/11 Progettazione concettuale Esempio completo della BIBLIOTECA AUTORE LIBRO EDITORE ISBN Titolo Prezzo N_pagine Nome ID Nome ID Cognome Anno (1,N) (1,N) (1,1) (0,N) Autore: Antonino BARTOLONE PUBBLICAZIONE SCRITTURA
Esercizi Una ASL deve gestire i dati anagrafici (Cognome, Nome, DataNascita, ecc..) dei pazienti e dei medici assegnati ad ognuno di essi. Un amministratore di condomini deve gestire i dati dei suoi condomini (Nome, Indirizzo, ecc..) e dei relativi appartamenti (NumeroInterno, QuotaMill, ecc..) 08/01/11 Effettuare un diagramma E-R sui seguenti DB Progettazione concettuale Autore: Antonino BARTOLONE
Progettazione logica Consiste in: Ristrutturazione  dello schema concettuale E-R: si procede ad una ottimizzazione dello schema con metodi ben precisi (che qui non tratteremo) Traduzione  dello schema E-R verso un modello logico dei dati (nel nostro caso il modello relazionale e cioè quello che fa uso di tabelle) 08/01/11 Progettazione logica Autore: Antonino BARTOLONE
Le entità vanno tradotte in tabelle; gli attributi delle entità corrisponderanno ai campi delle relative tabelle. 08/01/11 Progettazione logica Traduzione delle entità LIBRO ISBN Titolo Prezzo N_pagine LIBRO(  ISBN , Titolo, Prezzo, N_pagine ) Autore: Antonino BARTOLONE
L’associazione N:N si traduce in una tabella contenente gli attributi ( campi ) dell’associazione stessa (se ve ne sono) e gli attributi chiave delle entità coinvolte. 08/01/11 Progettazione logica Traduzione delle associazioni N:N IMPIEGATO PROGETTO PARTECIPAZIONE ( 0 , N ) ( 0 , N ) DataInizio PARTECIPAZIONE(  CF , Codice , DataInizio ) Codice CF Nominativo Stipendio Sono necessari 2 vincoli di integrità referenziale ( collegamenti ) tra gli attributi CF e Codice di PARTECIPAZIONE e gli omonimi di IMPIEGATO e PROGETTO Autore: Antonino BARTOLONE
Le associazioni 1:N si possono inglobare nella tabella relativa all'entità dalla parte dell' 1. Inoltre la chiave della tabella dalla parte dell' N deve essere duplicata (non come chiave) nella tabella dalla parte dell' 1. 08/01/11 Progettazione logica Traduzione delle associazioni 1:N GIOCATORE SQUADRA CONTRATTO ( 1 , 1 ) ( 0 , N ) DataIngaggio Nome CF Città Ruolo Nominativo GIOCATORE(  CF , Ruolo, Nominativo, DataIngaggio, NomeSquadra ) SQUADRA(  Nome , Città ) E’ necessario un vincolo di integrità referenziale ( collegamento ) tra l’attributo NomeSquadra di GIOCATORE e l’attributo Nome di SQUADRA Autore: Antonino BARTOLONE
Le associazioni 1:1 si possono inglobare a scelta in una delle tabelle relative alle 2 entità. Inoltre la chiave dell’altra tabella deve essere duplicata (non come chiave) nella tabella scelta. 08/01/11 Traduzione delle associazioni 1:1 Progettazione logica DIRETTORE DIPARTIMENTO DIREZIONE ( 1 , 1 ) ( 1 , 1 ) DataInizio Nome CF Telefono Stipendio Nominativo DIRETTORE(  CF , Nominativo, Stipendio ) DIPARTIMENTO(  Nome , Telefono, DataInizio, CFDirettore ) E’ necessario un vincolo di integrità referenziale ( collegamento ) tra l’attributo CFDirettore di DIPARTIMENTO e l’attributo CF di DIRETTORE Autore: Antonino BARTOLONE
08/01/11 Progettazione logica AUTORE(  ID , Nome, Cognome ) SCRITTURA(  IDAutore ,  ISBNLibro  ) LIBRO(  ISBN , Titolo, Prezzo, N_Pagine, AnnoPub, IDEditore ) EDITORE(  ID , Nome ) L’esempio della BIBLIOTECA… … viene quindi tradotto in… Autore: Antonino BARTOLONE AUTORE LIBRO EDITORE PUBBLICAZIONE SCRITTURA ISBN Titolo Prezzo N_pagine Nome ID Nome ID Cognome Anno (1,N) (1,N) (1,1) (0,N)
08/01/11 Progettazione logica Possibile schematizzazione finale della BIBLIOTECA comprendente i vincoli di integrità referenziale (collegamenti) ID  Nome  Cognome IDAutore   ISBNLibro ISBN  Titolo  Prezzo  N_Pagine  AnnoPub  IDEditore AUTORE SCRITTURA LIBRO EDITORE ID  Nome 1 N N 1 1 N Autore: Antonino BARTOLONE

More Related Content

PPTX
Database introduzione
PDF
corso web - Introduzione ai Database
PPT
Basi di dati
PPT
1.Tipos de Datos.ppt
PPTX
DATABASE (Basi di dati)
PPT
Fundamentals of Database ppt ch01
PDF
5.1 ejemplos uml
PPT
Distributed Database Management System
Database introduzione
corso web - Introduzione ai Database
Basi di dati
1.Tipos de Datos.ppt
DATABASE (Basi di dati)
Fundamentals of Database ppt ch01
5.1 ejemplos uml
Distributed Database Management System

What's hot (20)

PPT
Data integrity
PPTX
Creación Indices y Constraints en bases de datos de SQL Server.pptx
PPT
Elmasri Navathe DBMS Unit-1 ppt
PPTX
Introduction to ms access database
PPTX
Crear base de datos mysql command
PDF
Data models
PPT
ENTRADA Y SALIDA DE DATOS EN JAVA
PPTX
Database Concepts and Terminologies
PPTX
Power bi
PPTX
Power BI
PPTX
Introduction to PolyBase
PPTX
Base de datos.
PDF
chapter 2-DATABASE SYSTEM CONCEPTS AND architecture [Autosaved].pdf
PDF
2 database system concepts and architecture
PPT
Diagrammi Entità/Relazioni (ER)
PDF
Integridad en las bases de datos
PDF
Clases y objetos de java
PPTX
Base de datos
PPTX
Database systems - Chapter 2
Data integrity
Creación Indices y Constraints en bases de datos de SQL Server.pptx
Elmasri Navathe DBMS Unit-1 ppt
Introduction to ms access database
Crear base de datos mysql command
Data models
ENTRADA Y SALIDA DE DATOS EN JAVA
Database Concepts and Terminologies
Power bi
Power BI
Introduction to PolyBase
Base de datos.
chapter 2-DATABASE SYSTEM CONCEPTS AND architecture [Autosaved].pdf
2 database system concepts and architecture
Diagrammi Entità/Relazioni (ER)
Integridad en las bases de datos
Clases y objetos de java
Base de datos
Database systems - Chapter 2
Ad

Database - progettazione

  • 1. Progettazione dei DATABASE 08/01/11 Autore: Antonino BARTOLONE
  • 2. Introduzione Realizzare una base di dati che bene o male funzioni può essere relativamente facile , ma progettare una base dati robusta e a prova di errori (detti anomalie) è molto, molto meno facile . 08/01/11 Autore: Antonino BARTOLONE
  • 3. Le anomalie possono essere distinte in 3 tipi: Anomalia di inserimento . Se nell'inserire un nuovo record in una tabella si è costretti a inserire informazioni già presenti nel DB. Anomalia di cancellazione . Se nel cancellare un record si è costretti a cancellare informazioni che possono essere ancora utili nel DB. Anomalia di aggiornamento . Se dovendo aggiornare un record si è costretti ad aggiornarne molti altri. 08/01/11 Autore: Antonino BARTOLONE
  • 4. Un errore di progettazione molto comune che dà quasi sempre luogo ad anomalie è quello di voler realizzare il Database con un'unica grande tabella che contenga tutte le informazioni possibili ( tabella grassa ). ESEMPIO:………….  08/01/11 Autore: Antonino BARTOLONE
  • 5. 08/01/11 PERSONA (nome della tabella) Autore: Antonino BARTOLONE Nome Cognome Comune di nascita Regione di nascita Stato di nascita Giuseppe Rossi Vallo della Lucania Campania Italia Adolfo Rossi Vallo della Lucania Campania Italia Antonio Bianchi Lauria Basilicata Italia Daniele Verdi Lagonegro Basilicata Italia Adolfo Rossi Milano Lombardia Italia Francesco Verdi Vallo della Lucania Campania Italia Giulio Verdi Salerno Campania Italia
  • 6. Se si inserisce una nuova persona nata a Salerno, si è costretti a inserire anche le informazioni “Campania” e “Italia”, informazioni che sono già presenti in tabella. Questo è causa di ridondanza e può anche portare a contraddizioni interne nel DB (cosa accade se un operatore si sbaglia e scrive Salerno, Basilicata?). 08/01/11 Anomalia di inserimento Autore: Antonino BARTOLONE
  • 7. Se si cancella Antonio Bianchi dalla tabella si cancella anche l'informazione che Lauria è in Basilicata. Chi esegue la cancellazione può non rendersi conto di questo aspetto. 08/01/11 Anomalia di cancellazione Autore: Antonino BARTOLONE
  • 8. Se, per ipotesi, il comune di Vallo della Lucania passasse dalla Campania alla Basilicata, per aggiornare il DB si sarebbe costretti ad aggiornare tutti i record delle persone residenti in quel comune. Il rischio è qui di dimenticare di aggiornare qualche record. 08/01/11 Anomalia di aggiornamento Autore: Antonino BARTOLONE
  • 9. Conclusione: la tabella è stata progettata male. Esaminandola in dettaglio appare evidente il motivo di fondo delle anomalie; nella tabella abbiamo preteso di inserire insieme, informazioni di natura diversa: anagrafiche (la tal persona è nata nel tal comune) e geografiche (il tale comune si trova nella tale regione). La soluzione più naturale è allora quella di spezzare la tabella in due o più tabelle ognuna limitata a un solo tipo di informazione . 08/01/11 Autore: Antonino BARTOLONE
  • 10. Fasi di progettazione descrizione dell’organizzazione dei dati ad un alto livello di astrazione (individuazione di tutti i dati, delle relazioni tra i dati, dei vincoli esistenti…), effettuabile con l’ausilio di un “modello concettuale” 08/01/11 Progettazione concettuale Progettazione logica Progettazione fisica Progettazione concettuale: Il modello concettuale di dati più affermato è il “modello Entità-Relazione” (E-R) Autore: Antonino BARTOLONE
  • 11. traduzione del diagramma E/R verso il modello di rappresentazione dei dati relativo al DBMS che intendiamo utilizzare. Fasi di progettazione 08/01/11 Progettazione concettuale Progettazione logica Progettazione fisica Progettazione logica: Tra i modelli logici di Database utilizzati (gerarchico, reticolare, relazionale) quello più utilizzato è il relazionale . In questa fase si fa uso di tecniche per l’ottimizzazione del DB ( ristrutturazione ) e per la verifica della qualità dello schema logico ottenuto ( normalizzazione ) Autore: Antonino BARTOLONE
  • 12. completamento dello schema logico con le specifiche di parametri strettamente legati all’hardware e al software utilizzato. Fasi di progettazione 08/01/11 Progettazione concettuale Progettazione logica Progettazione fisica Progettazione fisica: Autore: Antonino BARTOLONE
  • 13. Progettazione concettuale Individuaiamo gli oggetti (o entità ) e le relazioni (o associazioni ) tra un oggetto e l'altro, che dovranno costituire il DB. Rappresentiamo le entità e le associazioni individuate con il modello dei diagrammi Entità-Relazione ( Diagramma E-R ) 08/01/11 Progettazione concettuale Autore: Antonino BARTOLONE
  • 14. Le entità o oggetti sono i componenti principali di un Database; rappresentano “fatti”, “cose”, “persone” con proprietà comuni ed esistenza “ autonoma ”. Esempi classici di entità sono PERSONA, COMUNE, LIBRO ... 08/01/11 Progettazione concettuale Autore: Antonino BARTOLONE
  • 15. Nei diagrammi E-R l' entità è rappresentata con un rettangolo, all'interno del quale scriveremo il nome dell'entità stessa. Attorno al rettangolo si scrivono gli attributi (o campi ). L'entità è quindi rappresentata come aggregazione di attributi. 08/01/11 LIBRO ISBN Titolo Prezzo N_pagine Progettazione concettuale Autore: Antonino BARTOLONE
  • 16. Le associazioni rappresentano “legami logici” tra due o più entità; Esempio di associazione che può sussistere tra le entità PERSONA e COMUNE è: NASCITA Le associazioni vengono rappresentate nel modello E-R con il simbolo grafico del rombo (dentro il quale si scrive il nome) e da linee che collegano le entità (e i vari altri componenti del diagramma). 08/01/11 Progettazione concettuale PERSONA COMUNE Autore: Antonino BARTOLONE NASCITA
  • 17. Individuazione di una prima entità coinvolta che sembri essere quella più importante: LIBRO Un libro è scritto da uno o più autori  seconda entità: AUTORI Un libro è pubblicato da una casa editrice  terza entità: EDITORE Associazioni individuate: SCRITTURA (tra LIBRO e AUTORE); PUBBLICAZIONE (tra EDITORE e LIBRO) 08/01/11 Esempio Gestione semplice di una BIBLIOTECA Possiamo quindi generare il relativo diagramma E-R  Progettazione concettuale Autore: Antonino BARTOLONE
  • 18. 08/01/11 AUTORE LIBRO EDITORE ISBN Titolo Prezzo N_pagine Nome ID Nome ID Cognome Progettazione concettuale Anno Autore: Antonino BARTOLONE PUBBLICAZIONE SCRITTURA
  • 19. Per ogni associazione va individuata la cardinalità di ogni entità collegata. Per ogni occorrenza della I ª entità, la cardinalità esprime il min e Max di associazioni possibili sulla II ª entità. Le cardinalità Max delle entità coinvolte, determinano il tipo di associazione (o relazione) risultante: 1:1 – associazione uno a uno 1:N – associazione uno a molti N:N – associazione molti a molti 08/01/11 Progettazione concettuale Autore: Antonino BARTOLONE
  • 20. Per ogni ordine , può essere associata nessuna (min = 0) o al massimo una (Max = 1) fattura di vendita 08/01/11 Progettazione concettuale Esempio – associazione 1:1 ORDINE FATTURA VENDITA ( 0 , 1 ) ( 1 , 1 ) cardinalità minime cardinalità massime Per ogni fattura , può essere associato uno (min = 1) ed uno solo (Max = 1) ordine di vendita Considerando le cardinalità massime , ne deduciamo che l’associazione VENDITA è di tipo uno a uno (1:1) Autore: Antonino BARTOLONE
  • 21. Per ogni persona , può essere associato uno (min = 1) ed uno solo (Max = 1) comune di nascita 08/01/11 Considerando le cardinalità massime , ne deduciamo che l’associazione NASCITA è di tipo uno a molti (1:N) Progettazione concettuale Esempio – associazione 1:N PERSONA COMUNE NASCITA ( 1 , 1 ) ( 0 , N ) cardinalità minime cardinalità massime Per ogni comune , può essere associato nessuno (min = 0) o tante (Max = N) nascite di persone Autore: Antonino BARTOLONE
  • 22. 08/01/11 Considerando le cardinalità massime , ne deduciamo che l’associazione PRENOTAZIONE è di tipo molti a molti (N:N) Per ogni turista , può essere associato nessuna (min = 0) o tante (Max = N) prenotazioni di viaggi Progettazione concettuale Esempio – associazione N:N TURISTA VIAGGIO PRENOTAZIONE ( 0 , N ) ( 0 , N ) cardinalità minime cardinalità massime Per ogni viaggio , può essere associato nessuno (min = 0) o tanti (Max = N) prenotazioni di turisti Autore: Antonino BARTOLONE
  • 23. 08/01/11 Progettazione concettuale Esempio completo della BIBLIOTECA AUTORE LIBRO EDITORE ISBN Titolo Prezzo N_pagine Nome ID Nome ID Cognome Anno (1,N) (1,N) (1,1) (0,N) Autore: Antonino BARTOLONE PUBBLICAZIONE SCRITTURA
  • 24. Esercizi Una ASL deve gestire i dati anagrafici (Cognome, Nome, DataNascita, ecc..) dei pazienti e dei medici assegnati ad ognuno di essi. Un amministratore di condomini deve gestire i dati dei suoi condomini (Nome, Indirizzo, ecc..) e dei relativi appartamenti (NumeroInterno, QuotaMill, ecc..) 08/01/11 Effettuare un diagramma E-R sui seguenti DB Progettazione concettuale Autore: Antonino BARTOLONE
  • 25. Progettazione logica Consiste in: Ristrutturazione dello schema concettuale E-R: si procede ad una ottimizzazione dello schema con metodi ben precisi (che qui non tratteremo) Traduzione dello schema E-R verso un modello logico dei dati (nel nostro caso il modello relazionale e cioè quello che fa uso di tabelle) 08/01/11 Progettazione logica Autore: Antonino BARTOLONE
  • 26. Le entità vanno tradotte in tabelle; gli attributi delle entità corrisponderanno ai campi delle relative tabelle. 08/01/11 Progettazione logica Traduzione delle entità LIBRO ISBN Titolo Prezzo N_pagine LIBRO( ISBN , Titolo, Prezzo, N_pagine ) Autore: Antonino BARTOLONE
  • 27. L’associazione N:N si traduce in una tabella contenente gli attributi ( campi ) dell’associazione stessa (se ve ne sono) e gli attributi chiave delle entità coinvolte. 08/01/11 Progettazione logica Traduzione delle associazioni N:N IMPIEGATO PROGETTO PARTECIPAZIONE ( 0 , N ) ( 0 , N ) DataInizio PARTECIPAZIONE( CF , Codice , DataInizio ) Codice CF Nominativo Stipendio Sono necessari 2 vincoli di integrità referenziale ( collegamenti ) tra gli attributi CF e Codice di PARTECIPAZIONE e gli omonimi di IMPIEGATO e PROGETTO Autore: Antonino BARTOLONE
  • 28. Le associazioni 1:N si possono inglobare nella tabella relativa all'entità dalla parte dell' 1. Inoltre la chiave della tabella dalla parte dell' N deve essere duplicata (non come chiave) nella tabella dalla parte dell' 1. 08/01/11 Progettazione logica Traduzione delle associazioni 1:N GIOCATORE SQUADRA CONTRATTO ( 1 , 1 ) ( 0 , N ) DataIngaggio Nome CF Città Ruolo Nominativo GIOCATORE( CF , Ruolo, Nominativo, DataIngaggio, NomeSquadra ) SQUADRA( Nome , Città ) E’ necessario un vincolo di integrità referenziale ( collegamento ) tra l’attributo NomeSquadra di GIOCATORE e l’attributo Nome di SQUADRA Autore: Antonino BARTOLONE
  • 29. Le associazioni 1:1 si possono inglobare a scelta in una delle tabelle relative alle 2 entità. Inoltre la chiave dell’altra tabella deve essere duplicata (non come chiave) nella tabella scelta. 08/01/11 Traduzione delle associazioni 1:1 Progettazione logica DIRETTORE DIPARTIMENTO DIREZIONE ( 1 , 1 ) ( 1 , 1 ) DataInizio Nome CF Telefono Stipendio Nominativo DIRETTORE( CF , Nominativo, Stipendio ) DIPARTIMENTO( Nome , Telefono, DataInizio, CFDirettore ) E’ necessario un vincolo di integrità referenziale ( collegamento ) tra l’attributo CFDirettore di DIPARTIMENTO e l’attributo CF di DIRETTORE Autore: Antonino BARTOLONE
  • 30. 08/01/11 Progettazione logica AUTORE( ID , Nome, Cognome ) SCRITTURA( IDAutore , ISBNLibro ) LIBRO( ISBN , Titolo, Prezzo, N_Pagine, AnnoPub, IDEditore ) EDITORE( ID , Nome ) L’esempio della BIBLIOTECA… … viene quindi tradotto in… Autore: Antonino BARTOLONE AUTORE LIBRO EDITORE PUBBLICAZIONE SCRITTURA ISBN Titolo Prezzo N_pagine Nome ID Nome ID Cognome Anno (1,N) (1,N) (1,1) (0,N)
  • 31. 08/01/11 Progettazione logica Possibile schematizzazione finale della BIBLIOTECA comprendente i vincoli di integrità referenziale (collegamenti) ID Nome Cognome IDAutore ISBNLibro ISBN Titolo Prezzo N_Pagine AnnoPub IDEditore AUTORE SCRITTURA LIBRO EDITORE ID Nome 1 N N 1 1 N Autore: Antonino BARTOLONE