Newest Viewed Downloaded

Basi di Dati Progettazione e Forme Normaliversione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Basi di Dati Progettazione e Forme Normali

versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Sommario

Progettazione e Forme Normali >> Sommario Introduzione Una Tabella non in Forma Normale Forma Normale di Boyce-Codd Dipendenza Funzionale Definizione Formale Tecniche per la Verifica di Qualità

Introduzione

Progettazione e Forme Normali >> Introduzione Idealmente se lo schema concettuale è di qualità (corretto, completo e non ridondante) se la progettazione logica è condotta applicando correttamente l’algoritmo la base di dati risultante dovrebbe essere di qualità in particolare: dovrebbe essere in forma “normale”

Introduzione

Progettazione e Forme Normali >> Introduzione In realtà è possibile commettere errori nella fase di analisi e in quella di progettazione logica è necessario effettuare verifiche di qualità continue, per accertarsi che il risultato sia corretto E’ necessario quindi approfondire il concetto di forma normale

Introduzione

Progettazione e Forme Normali >> Introduzione Intuitivamente una base di dati è in forma normale se i concetti sono opportunamente rappresentati nelle tabelle non ci sono ridondanze non si producono anomalie di aggiornamento, di inserimento e di cancellazione

Una Tabella Non in Forma Normale

Progettazione e Forme Normali >> Introduzione F. Totti 21 Programmazione 1 Bruno Pasquale A. Del Piero 27 Tecnologie Web 1 Pinco Palla 25 30 24 27 voto Basi di Dati Basi di Dati Programmazione Programmazione corso C. Vieri 2 Rossi Paolo C. Vieri 1 Bruno Pasquale F. Totti 2 Pinco Pietro F. Totti 1 Pinco Palla docente annoCorso studente PK corso CHAR(20) docente VARCHAR(20) voto INTEGER annoCorso INTEGER studente CHAR(20) StudentiCorsiEsami PK T

Una Tabella Non in Forma Normale

Progettazione e Forme Normali >> Introduzione <> corso <> studente docente voto annoCorso StudentiCorsiEsami Ogni studente è identificato dal suo nome ed è iscritto ad un anno di corso. Ogni corso è identificato dal suo nome ed ha un docente. Gli studenti sostengono esami per i corsi, riportando voti tra 18 e 30. Ogni studente deve sostenere più esami. La specifica Lo Schema Concettuale Da dove nascono i problemi errori in fase di modello concettuale

Una Tabella Non in Forma Normale

Progettazione e Forme Normali >> Intoduzione annoCorso <> nome Studente <> nome docente Corso sostiene esame di > 0..* 0..* voto Uno schema più corretto

Una Tabella Non in Forma Normale

Progettazione e Forme Normali >> Introduzione 2 Rossi Paolo 1 Bruno Pasquale 2 Pinco Pietro 1 Pinco Palla annoCorso nome A. Del Piero Tecnologie Web C. Vieri Basi di Dati F. Totti Programmazione docente nome 21 Programmazione Bruno Pasquale 27 Tecnologie Web Pinco Palla 25 30 24 27 voto Basi di Dati Basi di Dati Programmazione Programmazione esame Rossi Paolo Bruno Pasquale Pinco Pietro Pinco Palla studente PK, FK corso CHAR(20) voto INTEGER studente CHAR(20) Esami PK, FK T PK nome CHAR(20) docente VARCHAR(20) Corso T annoCorso INTEGER nome CHAR(20) Studente PK T La base di dati risultante

Una Tabella Non in Forma Normale

Progettazione e Forme Normali >> Introduzione Intuitivamente l’errore nasce dalla scelta del modello concettuale una classe che descrive più di un concetto in generale, invece, ogni classe dovrebbe descrivere un unico concetto Attenzione l’errore potrebbe non essere percepibile guardando il modello concettuale

Una Tabella Non in Forma Normale

Progettazione e Forme Normali >> Introduzione Per evitare questi problemi è necessario effettuare verifiche ripetute sui risultati della progettazione logica ed, in caso di errori, correggere lo schema concettuale Oggetto delle verifiche che le tabelle prodotte rispettino una “forma normale”

Forma Normale

Progettazione e Forme Normali >> Forma Normale Vincolo sulla struttura di una base di dati garantisce che non si generano anomalie Discuteremo la F. N. di Boyce-Codd è quella più forte normalmente ottenibile (tranne casi strani) Terza Forma Normale è più debole di quella di Boyce-Codd è sempre ottenibile (ma non ne parleremo)

Forma Normale

Progettazione e Forme Normali >> Forma Normale Forma Normale di Boyce-Codd (FNBC) vincolo sull’organizzazione delle tabelle della base di dati una tabella che rispetta il vincolo si dice “normalizzata” altrimenti si dice “non normalizzata” Approccio daremo prima l’intuizione, poi la formalizzazione

Forma Normale

Progettazione e Forme Normali >> Forma Normale Intuizione R si dice in FNBC se non esiste nessuna “sottotabella” con una “chiave propria” Sottotabella qualsiasi proiezione di R Sottotabella con chiave propria proiezione per cui è possibile trovare una chiave primaria non banale che non è chiave per R

Forma Normale

Progettazione e Forme Normali >> Forma Normale Studenti = p studente, annoCorso (StudentiCorsiEsami) annoCorso INTEGER studente CHAR(20) Studenti T la specifica mi dice che “studente” è una chiave per la tabella PK corso CHAR(20) docente VARCHAR(20) voto INTEGER annoCorso INTEGER studente CHAR(20) StudentiCorsiEsami PK T Nel nostro esempio: esistono varie sottotabelle con chiavi proprie

Forma Normale

Progettazione e Forme Normali >> Forma Normale Corsi = p corso, docente (StudentiEsamiCorsi) docente VARCHAR(20) corso CHAR(20) Corsi T la specifica mi dice che “corso” è una chiave per la tabella PK corso CHAR(20) docente VARCHAR(20) voto INTEGER annoCorso INTEGER studente CHAR(20) StudentiCorsiEsami PK T In modo simile:

Forma Normale

Progettazione e Forme Normali >> Forma Normale PK corso CHAR(20) voto INTEGER studente CHAR(20) Esami PK T Esempio = p studente, voto (Esami) voto INTEGER studente CHAR(20) Esempio T NON ci sono chiavi proprie Viceversa, in questa tabella non esistono sottotabelle con chiavi proprie

Forma Normale

Progettazione e Forme Normali >> Forma Normale voto INTEGER studente CHAR(20) Esempio T lo stesso discorso vale per tutte le altre possibili proiezioni 21 Bruno Pasquale 27 Pinco Palla 25 30 24 27 voto Rossi Paolo Bruno Pasquale Pinco Pietro Pinco Palla studente Infatti, guardando l’istanza non esiste nessuna chiave (vedi specifica)

Forma Normale

Progettazione e Forme Normali >> Forma Normale tipo CHAR(10) qualifica CHAR(15) facolta CHAR(10) nome CHAR(20) cognome CHAR(20) codice CHAR(4) Docente PK T PK numero CHAR(15) tipo CHAR(10) qualifica CHAR(15) facolta CHAR(10) nome CHAR(20) cognome CHAR(20) codice CHAR(4) DocenteNumero T Es = p codice, cognome (DocenteNumero) questa tabella è normalizzata questa tabella non è normalizzata “codice” è una chiave propria Un altro esempio

Forma Normale

Progettazione e Forme Normali >> Forma Normale Per formalizzare abbiamo bisogno di una nozione ulteriore Concetto di Dipendenza Funzionale vincolo di integrità aggiuntivo sulle tabelle è una generalizzazione del vincolo di chiave In sostanza serve a dire che valori uguali di un attributo in una tabella implicano valori uguali di altri attributi

Showing 1 - 20 of 40 items Details

Name: 
Mecca-bd11-1-FormeNorm...
Author: 
G. Mecca - mecca@unibas.it
Company: 
Università di Roma Tre
Description: 
Basi di Dati Progettazione e Forme Normaliversione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
Tags: 
char | progettazione | forma | normale | normali | forme | studente | corso
Created: 
5/20/2002 3:54:55 PM
Slides: 
40
Views: 
23
Downloads: 
0
Rating: 
0


> Comment



Share this presentation
|

Comments

Share this presentation:

|
Sitemap