Progettazione di una base di dati relazionale

Slides:



Advertisements
Presentazioni simili
1 Microsoft Access 1. 2 Contenuto Dovete progettare e realizzare, usando Access, una base di dati che riguarda gli esami sostenuti dagli studenti iscritti.
Advertisements

Progettazione di una base di dati Progettazione logica (modello relazionale)
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.
POTENZE
Basi di dati - Fondamenti
Il modello logico Il modello logico.
La progettazione concettuale
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Progettazione di una base di dati relazionale
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rileaborato da M. Lenzerini - Basi di dati
Stefania Basili & Bruno Moncharmont
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
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
Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Esercitazione Modello ER 1
Progettazione di una base di dati relazionale
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
Raccolta ed Analisi dei Requisiti nella Progettazione
Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C
Progettazione di una base di dati relazionale
La normalizzazione delle relazioni
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Interrogazione di una base di dati relazionale
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
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
Gli schemi concettuali
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
SQL per la modifica di basi di dati
I due schemi sono equivalenti (descrivono la stessa
OGGETTO E TIPO DI OGGETTO
Modello Relazionale Proposto agli inizi degli anni ‘70 da Codd
Dipendenze funzionali
Il modello relazionale
LABORATORIO SUI PROCESSI E LA CULTURA ORGANIZZATIVA D`IMPRESA - Introduzione al corso Patrizio Di Nicola A.A /09/2017.
Progettazione di una base di dati
Selezione e Proiezione
Crediti totali riconosciuti
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. Scegliamo Matr come chiave primaria.

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

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 (con un solo attributo nella parte destra) che devono essere soddisfatte da ogni istanza legale sono del tipo X  A dove X contiene una chiave oppure A appartiene ad una chiave

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 un solo comune di nascita (quello 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 L’attributo Prov dipendende transitivamente dalla chiave Matr (Matr  Prov è una conseguenza di Matr  Com e Com  Prov)

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 L’attributo Cogn dipende parzialmente dalla chiave Matr C# (Matr C#  Cogn è una conseguenza di Matr  Cogn)

Definizione alternativa Dato uno schema R e un insieme di dipendenze funzionali F, R è in 3NF se e solo se non ci sono attributi che dipendono parzialmente o transitivamente da una chiave.