Progettazione di una base di dati relazionale

Slides:



Advertisements
Presentazioni simili
Progettazione di una base di dati relazionale Problemi.
Advertisements

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.
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
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
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di dati, Mc-Graw Hill
Secondo Compito: PROGETTAZIONE DI UN DATABASE Claudia Angione
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
Rielaborato da Atzeni et al., Basi di dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Rielaborato da Atzeni et al., Basi di dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
di Basi di Dati: Overview
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Strutture 1 Gli array permettono di raccogliere sotto un unico nome più variabili omogenee e sono solitamente utilizzati quando bisogna operare su più.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
COME SI CREA UNA TABELLA CON UNA CHIAVE ESTERNA
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
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
File heap.
Integrità referenziale
File con indice (sparso)
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
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
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
Si vuole organizzare un database che archivi le opere d’arte presenti nei musei italiani. Tali opere sono identificate tramite un codice identificativo,
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
Introduzione alla normalizzazione
Partizionamento/accorpamento di concetti
Dino Pedreschi Dipartimento di Informatica a.a. 2011– 2012
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
SQL per la modifica di basi di dati
Modello Relazionale Proposto agli inizi degli anni ‘70 da Codd
Dipendenze funzionali
Progettazione concettuale
Join, una difficoltà Impiegato Reparto Rossi A Neri B Bianchi Reparto
ER Primo esonero Basi DATI 2015
Il modello relazionale
Progettazione di una base di dati
Selezione e Proiezione
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999
STUDENTE(Matr,Nome,Cognome)
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 Problemi

Supponiamo di voler creare una base di dati contenente i seguenti dati di studenti universitari: dati anagrafici e identificativi nome e cognome, data, comune e provincia di nascita, matricola, codice fiscale dati curriculari per ogni esame sostenuto: voto, data, codice, titolo e docente del corso

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

Ipotesi 1 (problemi) Ridondanza Curriculum Matr CF Cogn Nome DataN ComN ProvN C# TitC DocC DataE Voto 01 … Rossi Mario Tolfa Roma 10 Fisica Pippo 02 Bianchi Paolo 20 Chimica Pluto Ridondanza I dati anagrafici di uno studente sono memorizzati per ogni esame sostenuto dallo studente I dati di un corso sono memorizzati per ogni esame sostenuto per quel corso

Ipotesi 1 (problemi) La ridondanza da luogo a: spreco di spazio in memoria anomalie di aggiornamento, inserimento e cancellazione

Ipotesi 1 (problemi) Anomalia di aggiornamento Curriculum Matr CF Cogn Nome DataN ComN ProvN C# TitC DocC DataE Voto 01 … Rossi Mario Tolfa Roma 10 Fisica Pippo 02 Bianchi Paolo 20 Chimica Pluto Anomalia di aggiornamento se cambia il docente del corso il dato deve essere mofificato per ogni esame sostenuto per quel corso Curriculum Matr CF Cogn Nome DataN ComN ProvN C# TitC DocC DataE Voto 01 … Rossi Mario Tolfa Roma 10 Fisica Minni 02 Bianchi Paolo 20 Chimica Pluto

Ipotesi 1 (problemi) Anomalia di inserimento Curriculum Matr CF Cogn Nome DataN ComN ProvN C# TitC DocC DataE Voto 01 … Rossi Mario Tolfa Roma 10 Fisica Pippo 02 Bianchi Paolo 20 Chimica Pluto Anomalia di inserimento non posso inserire i dati anagrafici di uno studente finchè non ha sostenuto almeno un esame a meno di non usare valori nulli (spreco di spazio!) Curriculum Matr CF Cogn Nome DataN ComN ProvN C# TitC DocC DataE Voto 01 … Rossi Mario Tolfa Roma 10 Fisica Minni 02 Bianchi Paolo 20 Chimica Pluto 03 Neri Giulio Nepi -

Ipotesi 1 (problemi) Anomalia di cancellazione Curriculum Matr CF Cogn Nome DataN ComN ProvN C# TitC DocC DataE Voto 01 … Rossi Mario Tolfa Roma 10 Fisica Pippo 02 Bianchi Paolo 20 Chimica Pluto Anomalia di cancellazione eliminando i dati anagrafici di uno studente potrebbero essere eliminati i dati di un corso (se lo studente è l’unico ad aver sostenuto l’esame di quel corso) Curriculum Matr CF Cogn Nome DataN ComN ProvN C# TitC DocC DataE Voto 02 … Bianchi Paolo Tolfa Roma 10 Fisica Minni

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 I dati nella relazione: Curriculum Matr CF Cogn Nome DataN Com Prov C# Tit Doc DataE Voto 01 … Rossi Mario Tolfa Roma 10 Fisica Pippo 02 Bianchi Paolo 20 Chimica Pluto possono essere memorizzati nelle tre relazioni Studente Matr CF Cogn Nome Data Com Prov 01 … Rossi Mario Tolfa Roma 02 Bianchi Paolo Corso C# Tit Doc 10 Fisica Pippo 20 Chimica Pluto Esame Matr C# Data Voto 01 10 … 02 20

Ipotesi 2 NON abbiamo più i problemi di ridondanza e le anomalie di aggiornamento, inserimento e cancellazione esaminati in precedenza però …

Ipotesi 2 Studente Matr CF Cogn Nome Data Com Prov 01 … Rossi Mario Tolfa Roma 02 Bianchi Paolo Ridondanza Il fatto che un comune si trova in una certa provincia è ripetuto per ogni studente nato in quel comune Anomalia di aggiornamento Se un comune cambia provincia (in seguito alla creazione di una nuova Provincia) devono essere modificate più tuple Anomalia di inserimento Non è possibile memorizzare il fatto che un certo comune si trova in una certa provincia se non c’è almeno uno studente nato in quel comune Anomalia di cancellazione - Se vengono eliminati i dati anagrafici di uno studente potrebbe perdersi l’informazione che un certo comune si trova in una certa provincia (se è l’unico studente nato in quel comune

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)

NON ho più ridondanza né anomalie! Ipotesi 3 Studente Matr CF Cogn Nome Data Com 01 … Rossi Mario Tolfa 02 Bianchi Paolo Comune Com Prov Tolfa Roma Esame Matr C# Data Voto 01 10 … 02 20 Corso C# Tit Doc 10 Fisica Pippo 20 Chimica Pluto NON ho più ridondanza né anomalie!

Uno schema di basi di dati è “buono” se non presenta - ridondanze e - anomalie di aggiornamento, inserimento e cancellazione Quindi …

… lo schema … è uno schema “buono” Studente (Matr, CF, Cogn, Nome, Data, Com) Corso (C#, Tit, Doc) Esame (Matr, C#, Data, Voto) Comune (Com, Prov) … è uno schema “buono”

Problema Come progettare uno schema “buono”?

Osservazione I problemi esaminati in relazione allo schema Curriculum (Matr, CF, Cogn, Nome, DataN, Com, Prov, C#, Tit, Doc, DataE, Voto) derivano dal fatto che sono rappresentati in un’unica relazione tre concetti distinti (studente, corso, esame) e …

Osservazione … vengono superati quando i tre concetti vengono rappresentati nelle tre relazioni distinte Studente (Matr, CF, Cogn, Nome, Data, Com, Prov) Corso (C#, Tit, Doc) Esame (Matr, C#, Data, Voto)

Osservazione Analogamente i problemi esaminati in relazione allo schema Studente (Matr, CF, Cogn, Nome, Data, Com, Prov) derivano dal fatto che sono rappresentati in un’unica relazione due concetti distinti (studente, comune) e …

Osservazione … vengono superati quando i due concetti vengono rappresentati nelle due relazioni distinte Studente (Matr, CF, Cogn, Nome, Data, Com) Comune (Com, Prov)

Soluzione Per progettare uno schema “buono” occorre rappresentare separatamente ogni concetto in una relazione

Problema Come possono essere individuati i concetti rappresentati in una relazione?

dipendenza funzionale Il concetto che ci permette di individuare i concetti rappresentati in una relazione è quello di chiave che è basato su quello di dipendenza funzionale che è un particolare tipo di vincolo