La progettazione di un database La progettazione di un database
Sommario
! Approccio preliminare al disegno: strumenti disponibili
! Modello Entità/Relazioni (E/R)
! Modello relazionale
! Traduzione dello schema E/R in schema relazionale
! Disegno di un database
! Normalizzazione
2 Sommario
Livelli di astrazione per la rappresentazione di un DB
3 Sommario
manifatturiera e sw applicativi
4 Definizione dello scopo del database – A.1.1
Approvvigionamento
applicazioni
5 Definizione dello scopo del database – A.1.1
Approvvigionamento
dell’entità studente
6 Entità – A.2.1
relazioni fra entità
7 Relazioni – A.2.2
rappresentazione entità/relazioni
8 Relazioni – A.2.2
Esempio di relazione 1 : 1
9 Relazioni – A.2.2
Esempio di relazione 1 : molti
10 Relazioni – A.2.2
Esempio di entità associativa
11 Modello relazionale – A.3
Dati rappresentati in tabella
12 Modello relazionale – A.3
Orario ferroviario
13 Terminologia modello relazionale – A.3.1
Clienti/Ordini
14 Traduzione dello schema E/R in schema relazionale – A.4
Entità studente
15 Da entità a tabelle – A.4.1
chiave
Studente
16 Da entità a tabelle – A.4.1
Relazione “possiede” fra entità
“studente” e “tessera”
17 Da relazioni tra entità a relazioni fra tabelle– A.4.2
Studente
18 Da relazioni tra entità a relazioni fra tabelle– A.4.2
Tessera
19 Da relazioni tra entità a relazioni fra tabelle– A.4.2
“studente”
20 Da relazioni tra entità a relazioni fra tabelle– A.4.2
Professore
21 Da relazioni tra entità a relazioni fra tabelle– A.4.2
Studente
22 Da relazioni tra entità a relazioni fra tabelle– A.4.2
Professore
23 Da relazioni tra entità a relazioni fra tabelle– A.4.2
Studente
24 Da relazioni tra entità a relazioni fra tabelle– A.4.2
25 Vincoli di integrità referenziale– A.4.3
chiave esterna (FK)
26 Vincoli di integrità referenziale– A.4.3
chiave esterna (FK)
compagnia aerea
27 Semplificazione di una relazione di cardinalità molti-a-molti – A.4.4
Passeggeri
28 Semplificazione di una relazione di cardinalità molti-a-molti – A.4.4
Voli
29 Semplificazione di una relazione di cardinalità molti-a-molti – A.4.4
con chiave primaria composta
30 Semplificazione di una relazione di cardinalità molti-a-molti – A.4.4
Prenotazione
31 Semplificazione di una relazione di cardinalità molti-a-molti – A.4.4
Studenti/Esami
32 Conseguenze di un disegno superficiale – A.5.1
02
Studenti/Esami: anomalia di cancellazione
33 Conseguenze di un disegno superficiale – A.5.1
02
25
Studenti/Esami
34 Conseguenze di un disegno superficiale – A.5.1
02
25
Studenti/Esami
35 Conseguenze di un disegno superficiale – A.5.1
02
25
Esempio di soluzione inefficiente
36 Normalizzazione – A.6
Prima forma normale
Eliminare i gruppi ripetitivi di dati Eliminare i gruppi ripetitivi di dati
Passaggi da seguire:
1. Individuare gli attributi (campi) che si ripetono
2. Creare la prima tabella utilizzando tutti gli altri campi
3. Creare la seconda tabella utilizzando gli attributi che si ripetono
37 Normalizzazione – A.6
si ripetono
38 Normalizzazione – A.6
Tabella con informazioni dipendenti
39 Normalizzazione – A.6
Verificare che i campi
Verificare che i campi ““non chiave primarianon chiave primaria”” dipendano dipendano dall’dall’intera “intera “chiave primaria”chiave primaria” e non da una parte di essa e non da una parte di essa
40 Normalizzazione – A.6
Passaggi da seguire:
1. Identificare le dipendenze parziali
2. Creare la prima tabella utilizzando questi campi 3. Creare la seconda tabella togliendo dalla tabella di
partenza i campi che dipendevano in modo parziale 4. Individuare i campi interessati dalla dipendenza
parziale
5. Creare la prima tabella utilizzando questi campi 6. Creare la seconda tabella partendo da quella di
partenza e togliere da questa i campi che risultavano dipendenti in modo parziale
Campi interessati da dipendenza parziale
41 Normalizzazione – A.6
42 Normalizzazione – A.6
Terza forma normale
43 Normalizzazione – A.6
Verificare che i campi
Verificare che i campi ““non chiave primarianon chiave primaria”” dipendano dipendano direttamente dalla
direttamente dalla “chiave primaria“chiave primaria”” e non da qualche e non da qualche altro campo all
altro campo all’’interno della tabellainterno della tabella
Passaggi da seguire:
1. Identificare le dipendenze transitive
2. Creare la prima tabella utilizzando questi campi
3. Creare la seconda tabella togliendo dalla
tabella di partenza i campi che dipendevano in modo transitivo
Tabella giornalisti
44 Normalizzazione – A.6
Tabella specializzazioni
45 Normalizzazione – A.6
Tabella giornalisti
46 Normalizzazione – A.6
Schema E/R database giornalisti
47 Normalizzazione – A.6