Your SlideShare is downloading. ×
Database - progettazione
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Database - progettazione

5,387
views

Published on

Published in: Education

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

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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