Progettazione di una base di dati relazionale

Slides:



Advertisements
Presentazioni simili
Progettazione di una base di dati Progettazione logica (modello relazionale)
Advertisements

Progettazione di una base di dati relazionale Problemi.
Progettazione di una base di dati relazionale Vincoli.
Progettazione di una base di dati relazionale Terza forma normale.
OSSERVAZIONE: Ci sono schemi di relazione che non sono “buoni” (quelli in cui sono rappresentati più concetti come lo schema Curriculum) in quanto presentano.
07/03/2014Basi di dati II , presentazione1 Basi di dati II Docente: Paolo Atzeni
29/02/2016Basi di dati II , presentazione1 Basi di dati II Docente: Paolo Atzeni
Basi di dati - Fondamenti
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rileaborato da M. Lenzerini - Basi di dati
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Crediti totali riconosciuti
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
PROGETTAZIONE DATABASE SECONDO COMPITO CAROLINA CASIELLO
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Progettazione di una base di dati relazionale
La circonferenza nel piano cartesiano
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Registrazione on line degli esami
Progettazione di una base di dati relazionale
La circonferenza nel piano cartesiano
Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C
Progettazione di una base di dati relazionale
Drupal tipi di contenuto
La normalizzazione delle relazioni
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Interrogazione di una base di dati relazionale
Interrogazione di una base di dati relazionale
Un’università vuole raccogliere ed organizzare in un database
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Progettazione di una base di dati relazionale
I vincoli di integrità Alcuni aspetti della realtà NON possono essere modellati solamente con entità, attributi e relazioni, per esempio i vincoli di integrità.
Normalizzazione di uno schema relazionale.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Il modello relazionale
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Progettazione logica: Il modello relazionale
L’indagine statistica
Introduzione alla normalizzazione
Basi di dati - Fondamenti
Progettazione concettuale
I numeri relativi DEFINIZIONE. Si dicono numeri relativi tutti i numeri interi, razionali e irrazionali dotati di segno (positivo o negativo). ESEMPI Numeri.
Partizionamento/accorpamento di concetti
Dino Pedreschi Dipartimento di Informatica a.a. 2011– 2012
Basi di dati II , presentazione
Modello Relazionale Proposto agli inizi degli anni ‘70 da Codd
Dipendenze funzionali
Basi di dati II , presentazione
Progettazione concettuale
APPUNTI SUL LINGUAGGIO C Esercizi su File e Alberi Binari
Rette e segmenti.
Il modello relazionale
Selezione e Proiezione
Crediti totali riconosciuti
I sistemi di equazioni di I grado
Presentazione del corso di Impianti chimici (2° modulo)
Vincoli di Integrità Non tutte le combinazioni possibili di valori dei domini su cui è definita una relazione sono accettabili. Alcuni attributi possono.
Transcript della presentazione:

Progettazione di una base di dati relazionale Terza forma normale

Ipotesi 3 La base di dati consiste di quattro schemi di relazione: Studente (Matr, CF, Cogn, Nome, Data, Com) Corso (C#, Tit, Doc) Esame (Matr, C#, Data, Voto) Comune (Com, Prov)

Ipotesi 3 (considerazioni) Studente (Matr, CF, Cogn, Nome, Data, Com) Poiché il numero di matricola identifica univocamente uno studente, ad ogni numero di matricola corrisponde: un solo codice fiscale ( Matr  CF ) un solo cognome ( Matr  Cogn ) un solo nome ( Matr  Nome ) una sola data di nascita ( Matr  Data ) un solo comune di nascita ( Matr  Com ) Quindi un’istanza di Studente per essere legale deve soddisfare la dipendenza funzionale Matr  Matr CF Cogn Nome Data Com

Ipotesi 3 (considerazioni) Con considerazioni analoghe abbiamo che un’istanza di Studente per essere legale deve soddisfare la dipendenza funzionale CF  Matr CF Cogn Nome Data Com Pertanto sia Matr che CF sono chiavi di Studente.

Ipotesi 3 (considerazioni) D’altra parte possiamo osservare che ci possono essere due studenti con lo stesso cognome e nomi differenti quindi possiamo avere istanze di Studente che non soddisfano la dipendenza funzionale Cogn Nome

Matr CF Cogn Nome Data Com … Studente Matr CF Cogn Nome Data Com 01 … Rossi Mario 1/1/1989 Roma 02 Bianchi Paolo 03 30/11/1988 Marino 04 Neri 25/10/1988 possiamo avere istanze di Studente che non soddisfano la dipendenza funzionale Cogn Nome Cogn Data Cogn Com NomeCogn … ecc.

Ipotesi 3 (considerazioni) Con considerazioni analoghe possiamo concludere che le uniche dipendenze funzionali non banali che devono essere soddisfatte da un’istanza legale di Studente sono del tipo K  X dove K contiene una chiave (Matr o CF)

Ipotesi 3 (considerazioni) Esame (Matr, C#, Data, Voto) Uno studente può sostenere l’esame relativo ad un corso una sola volta; pertanto per ogni esame esiste una sola data (in cui è stato sostenuto) un solo voto Quindi ogni istanza legale di Esame deve soddisfare la dipendenza funzionale Matr C#  Data Voto

Ipotesi 3 (considerazioni) Esame (Matr, C#, Data, Voto) D’altra parte uno studente può sostenere esami in date differenti e riportare voti diversi nei vari esami. Pertanto esistono istanze di Esame che non soddisfano una o entrambe le dipendenze funzionali Matr  Data Matr  Voto

Ipotesi 3 (considerazioni) Esame (Matr, C#, Data, Voto) Inoltre l’esame relativo ad un certo corso può essere superato da diversi studenti in date diverse e con diversi voti. Pertanto esistono istanze di Esame che non soddisfano una o entrambe le dipendenze funzionali C#  Data C#  Voto Pertanto Matr C# è una chiave per Esame (si vede facilmente che è anche l’unica chiave)

Ipotesi 3 (conclusioni) Per ciascun schema di relazione Studente (Matr, CF, Cogn, Nome, Data, Com) Corso (C#, Tit, Doc) Esame (Matr, C#, Data, Voto) Comune (Com, Prov) le uniche dipendenze funzionali non banali che devono essere soddisfatte da ogni istanza legale sono del tipo K  X dove K contiene una chiave

Terza forma normale Uno schema di relazione è in 3NF se le uniche dipendenze funzionali non banali che devono essere soddisfatte da ogni istanza legale sono del tipo K  X dove K contiene una chiave oppure X è contenuto in una chiave

Terza forma normale Definizione Dati uno schema di relazione R e un insieme di dipendenze funzionali F su R, R è in 3NF se  X  A F+, AX A appartiene ad una chiave (è primo) oppure X contiene una chiave (è una superchiave)

Terza forma normale (esempio: Ipotesi 3) Ciascuno schema di relazione Studente (Matr, CF, Cogn, Nome, Data, Com) Matr  Matr CF Cogn Nome Data Com Corso (C#, Tit, Doc) C#  C# Tit Doc Esame (Matr, C#, Data, Voto) Matr C#  Matr C# Data Voto Comune (Com, Prov) Com  Com Prov è in 3NF

Ipotesi 2 La base di dati consiste di tre schemi di relazione: Studente (Matr, CF, Cogn, Nome, Data, Com, Prov) Corso (C#, Tit, Doc) Esame (Matr, C#, Data, Voto)

Ipotesi 2 (considerazioni) Studente (Matr, CF, Cogn, Nome, Data, Com, Prov) Un’istanza di Studente per essere legale deve soddisfare le dipendenze funzionali: Matr  Matr CF Cogn Nome Data Com Prov CF  Matr CF Cogn Nome Data Com Prov Inoltre poiché ogni comune si trova in una sola provincia deve soddisfare la dipendenza funzionale Com  Prov

Ipotesi 2 (considerazioni) Studente (Matr, CF, Cogn, Nome, Data, Com, Prov) Consideriamo la dipendenza funzionale Com  Prov è facile vedere che: Com non è una chiave per Studente (ci possono essere più studenti che sono nati nello stesso comune Prov non appartiene ad alcuna chiave di Studente (le uniche chiavi sono Matr e CF)

Ipotesi 2 (conclusioni) Lo schema Studente (Matr, CF, Cogn, Nome, Data, Com, Prov) non è in 3NF

Ipotesi 1 La base di dati consiste di un solo schema di relazione: Curriculum (Matr, CF, Cogn, Nome, DataN, Com, Prov, C#, Tit, Doc, DataE, Voto)

Ipotesi 1 (considerazioni) Curriculum (Matr, CF, Cogn, Nome, DataN, Com, Prov, C#, Tit, Doc, DataE, Voto) Un’istanza di Curriculum per essere legale deve soddisfare le dipendenze funzionali: Matr  Matr CF Cogn Nome DataN Com Prov CF  Matr CF Cogn Nome DataN Com Prov Com  Prov C#  C# Tit Doc Matr C#  DataE Voto CF C#  DataE Voto

Ipotesi 1 (considerazioni) Pertanto le (uniche) chiavi di Curriculum (Matr, CF, Cogn, Nome, DataN, Com, Prov, C#, Tit, Doc, DataE, Voto) sono: Matr C# CF C# Infatti ogni istanza legale di Curriculum soddisfa le dipendenze funzionali: Matr C#  Matr CF Cogn Nome Data Com Prov C# Tit Doc DataE Voto CF C#  Matr CF Cogn Nome Data Com Prov C# Tit Doc DataE Voto

Ipotesi 1 (conclusioni) Curriculum (Matr, CF, Cogn, Nome, DataN, Com, Prov, C#, Tit, Doc, DataE, Voto) Consideriamo la dipendenza funzionale Matr  Cogn poichè: Matr non è una chiave per Curriculum (uno studente può aver sostenuto più esami) Cogn non appartiene ad alcuna chiave di Curriculum (le uniche chiavi sono Matr C# e CF C#) Curriculum non è in 3NF

Considerazioni finali: dipendenze transitive Studente (Matr, CF, Cogn, Nome, Data, Com, Prov) Ad un numero di matricola corrisponde una sola data di nascita (quella dello studente con quel numero di matricola): Matr  Com Un comune si trova in una sola provincia: Com  Prov Conclusione: ad un numero di matricola corrisponde una sola provincia: Matr  Prov La dipendenza funzionale Matr  Prov che è una conseguenza delle due dipendenze funzionali Matr  Com e Com  Prov viene detta dipendenza transitiva

Considerazioni finali: dipendenze parziali Curriculum (Matr, CF, Cogn, Nome, DataN, Com, Prov, C#, Tit, Doc, DataE, Voto) Ad un numero di matricola corrisponde un solo cognome (il cognome dello studente con quel numero di matricola): Matr  Cogn Quindi: ad una coppia costituita da un numero di matricola e da un codice di corso corrisponde un solo cognome: Matr C#  Cogn La dipendenza funzionale Matr C#  Cogn è una conseguenza della dipendenza funzionale Matr  Cogn che viene detta dipendenza parziale

Definizione alternativa Dato uno schema R e un insieme di dipendenze funzionali F, R è in 3NF se e solo se in F non ci sono né dipendenze parziali né dipendenze transitive.