La normalizzazione delle relazioni

Slides:



Advertisements
Presentazioni simili
Normalizzazione Forme Normali.
Advertisements

MODELLO RELAZIONALE La relazione su n insiemi A1, A2….,An è un sottoinsieme dell’ insieme di tutte le n-uple a1, a2,….,an che si possono costruire.
Sistemi di Elaborazione delle Informazioni Mod.I.
Progettazione di una base di dati relazionale Terza forma normale.
Normalizzazione. Introduzione Nell’organizzazione tradizionale degli archivi, si verificano alcuni problemi, quali: Ridondanza dei dati (gli stessi dati.
OSSERVAZIONE: Ci sono schemi di relazione che non sono “buoni” (quelli in cui sono rappresentati più concetti come lo schema Curriculum) in quanto presentano.
CORSO elementare su DATABASE Applicativo utilizzato OpenOffice 3.0.
Fondamenti di Informatica A - Massimo Bertozzi LE RAPPRESENTAZIONI CONCATENATE.
Basi di dati - Fondamenti
Il modello logico Il modello logico.
La progettazione concettuale
Il trattamento statistico dei dati
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
© 2007 SEI-Società Editrice Internazionale, Apogeo
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Le operazioni relazionali
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Le Basi di dati: progettazione concettuale.
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
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
Il trattamento statistico dei dati
Le operazioni relazionali (continua)
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
Progettazione di una base di dati relazionale
Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C
Definizione e caratteristiche
Progettazione di una base di dati relazionale
Integrità referenziale
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
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
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.
Il modello relazionale
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Progettazione logica: Il modello relazionale
Introduzione alla normalizzazione
Basi di dati - Fondamenti
Progettazione concettuale
Partizionamento/accorpamento di concetti
SQL per la modifica di basi di dati
Le basi di dati: progettazione concettuale.
OGGETTO E TIPO DI OGGETTO
I fogli elettronici Microsoft Excel.
Dipendenze funzionali
APPUNTI SUL LINGUAGGIO C Esercizi su File e Alberi Binari
Il modello relazionale
Progettazione di una base di dati
Fogli di Calcolo Elettronici
Strategie di progetto Si possono utilizzare le strategie tipiche dello sviluppo di un processo di ingegnerizzazione (es. ingegneria del software). Strategie.
Selezione e Proiezione
I sistemi di equazioni di I grado
Il questionario: progettazione e redazione II Modulo
Definizione e caratteristiche
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:

La normalizzazione delle relazioni

Cosa significa normalizzare una relazione La tabella Inventario contiene informazioni su merci esistenti in diversi magazzini. La tabella NON è bene organizzata Prodotto Magazzino Quantità IndirizzoMagazzino 545 CA1 800 Via Tonale 12 PA2 700 Via Mazzini 25 VE1 356 Calle Corta 5 100 245 200 230 PA1 370 Via Garibaldi 38 350 720 

Problema da risolvere La tabella Inventario non è bene organizzata perché l’indirizzo del magazzino è ripetuto più volte. La ridondanza va evitata, non solo per lo spreco di spazio di memoria, ma soprattutto per le anomalie che si possono presentare nel trattamento dei dati 

Anomalie per la ridondanza Anomalia di aggiornamento: se si aggiorna l’indirizzo di un magazzino, si devono aggiornare tutte le righe Anomalia di cancellazione: se si svuota il magazzino si perde l’indirizzo Anomalia di inserimento: all’apertura di un magazzino, mancando merci, non si ha l’indirizzo 

Risolvere il problema Per evitare la ridondanza, sostituiamo la tabella Inventario con una coppia di tabelle Inventario(Prodotto, Magazzino, Quantità) Negozi(CodiceMagazzino, IndirizzoMagazzino) La chiave di Inventario è costituita da gli attributi Prodotto e Magazzino. La scomposizione non provoca perdita di informazioni

La normalizzazione Sono stati definiti dei criteri per evitare la ridondanza dei dati e le possibili anomalie Tali criteri prendono il nome di forme normali e devono essere soddisfatti dalle tabelle. Il processo di trasformazione delle tabelle prende il nome di normalizzazione. La normalizzazione completa il processo di progettazione di un database relazionale

Termini da conoscere per normalizzare una tabella Chiave candidata: è un attributo o un insieme di attributi che identifica in modo univoco una n-upla Chiave o chiave primaria: è la chiave candidata scelta dal progettista Chiave alternativa: è una chiave candidata non scelta come chiave primaria Attributo non-chiave: è un attributo che non fa parte della chiave

Esempio Consideriamo la tabella Inventario a cui è stato aggiunto l’attributo NumeroInventario che identifica univocamente ogni riga Inventario(NumeroInventario, Prodotto, Magazzino, Quantità, IndirizzoMagazzino) Numero Inventario Prodotto Magazzino Quantità IndirizzoMagazzino 00021 545 CA1 800 Via Tonale 12 00035 PA2 700 Via Mazzini 25 00042 VE1 356 Calle Corta 5 00124 100 245 00135 200 230 00136 PA1 370 Via Garibaldi 38 00138 350 00140 720 

Esempio (continua) NumeroInventario è una chiave candidata Prodotto non è chiave candidata e nemmeno Magazzino L’insieme {Prodotto, Magazzino} è una chiave candidata L’insieme {Prodotto, Magazzino, Quantità} non è una chiave candidata perché contiene {Prodotto, Magazzino} che è chiave candidata Se il progettista sceglie NumeroInventario allora {Prodotto, Magazzino} è una chiave alternativa

Dipendenza funzionale Si ha una dipendenza funzionale tra attributi quando il valore di un insieme di attributi A determina un singolo valore dell’attributo B e si indica con A  B. Si dice anche che B dipende funzionalmente da A, o che A è un determinante per B. Se un attributo è chiave candidata di una relazione, allora è un determinante per ogni attributo per la relazione e, viceversa, un attributo che sia determinante per ogni attributo di una relazione è chiave candidata per la stessa.

Esempio Nel caso della relazione Inventario NumeroInventario  (Prodotto, Magazzino, Quantità, IndirizzoMagazzino) {Prodotto, Magazzino}  (NumeroInventario, Quantità, IndirizzoMagazzino) Magazzino  IndirizzoMagazzino Nei primi due casi la dipendenza funzionale è dovuta al fatto che NumeroInventario e {Prodotto, Magazzino} sono chiavi candidate, nel terzo caso Magazzino è determinante per IndirizzoMagazzino senza che sia chiave.

Dipendenza funzionale transitiva Si ha dipendenza funzionale transitiva tra attributi quando un attributo A determina B e B determina C; si dice allora che C dipende transitivamente da A Se AB e BC, allora AC transitivamente

Prima forma normale (1FN) Una relazione è in prima forma normale (1FN) quando rispetta i requisiti fondamentali del modello relazionale che, come abbiamo visto, sono: tutte le righe della tabella hanno lo stesso numero di colonne gli attributi rappresentano informazioni elementari i valori di una colonna sono dello stesso tipo ogni riga è diversa da tutte le altre l’ordine delle righe non è rilevante

Esempio 1FN Dipendenti(Matricola, Cognome, Nome, Città, FamiliariACarico) L’attributo familiari a carico non è elementare. La relazione NON è in 1FN La relazione può essere convertita in Dipendenti(Matricola, Cognome, Nome, Città) Familiari(CodiceFam, CognomeFam, NomeFam, MatricolaDip) 

Esempio 1FN (continua) Dipendenti Matricola Cognome Nome Città FamiliariACarico 12001 Rossi Antonio Roma Rossi Alice Rossi Marco Verdi Maria 14007 18009 Dipendenti Familiari CodiceFam CognomeFam NomeFam MatricolaDip 50001 Rossi Alice 12001 50002 Marco 50003 Verdi Maria Matricola Cognome Nome Città 12001 Rossi Antonio Roma 14007 18009

Altre forme normali Le forme normali superiori alla prima vengono introdotte per eliminare problemi durante le operazioni di aggiornamento e di cancellazione, evitando l’inconsistenza o la perdita indesiderata di dati

Seconda forma normale (2FN) Una relazione è in seconda forma normale (2FN) quando è in prima forma normale e tutti i suoi attributi non-chiave dipendono dall’intera chiave, cioè non possiede attributi che dipendono soltanto da una parte della chiave. La 2FN elimina la dipendenza parziale degli attributi dalla chiave e riguarda il caso di relazioni con chiave composte, cioè formate da più attributi.

Esempio 2FN  Consideriamo la tabella Inventario iniziale Inventario(Prodotto, Magazzino, Quantità, IndirizzoMagazzino) Non è in 2FN in quanto IndirizzoMagazzino dipende solo da Magazzino che è una parte della chiave. MagazzinoIndirizzoMagazzino La scomposizione inizia prendendo tutti gli attributi presenti nella dipendenza funzionale e costruendo una nuova relazione con il determinante come chiave R1(Magazzino, IndirizzoMagazzino) Il passo successivo consiste nel costruire una seconda relazione R2 che comprende gli attributi dello schema di partenza privati degli attributi che dipendono parzialmente dalla chiave. R2(Prodotto, Magazzino, Quantità) 

Esempio 2FN (continua) Prodotto Magazzino Quantità 545 CA1 800 PA2 700 VE1 356 100 245 200 230 PA1 370 350 720 Magazzino IndirizzoMagazzino CA1 Via Tonale 12 PA2 Via Mazzini 25 VE1 Calle Corta 5 PA1 Via Garibaldi 38

Algoritmo di scomposizione di una relazione T Si identificano tutte le dipendenze funzionali e le chiavi candidate in T Se una dipendenza funzionale viola le regole di normalizzazione: Si costruisce una nuova relazione con tutti gli attributi della dipendenza funzionale considerata Il determinante della dipendenza funzionale è la chiave primaria della tabella definita in a) Si costruisce una nuova relazione rimuovendo da T tutti gli attributi della dipendenza funzionale Si ripete il passo 2 finché non ci sono più dipendenze funzionali che violano le regole di normalizzazione.

Terza forma normale (3FN) Una relazione è in terza forma normale (3FN) quando è in seconda forma normale e tutti gli attributi non-chiave dipendono direttamente dalla chiave, cioè non possiede attributi non-chiave che dipendono da altri attributi non-chiave. La 3FN elimina la dipendenza transitiva degli attributi dalla chiave

Esempio 3FN Studenti(Cognome, Scuola, TelefonoScuola) Cognome(Scuola, TelefonoScuola) ScuolaTelefonoScuola Cognome Scuola TelefonoScuola Bianchi ITC Paleari 02-2538469 Leoni Liceo Dante 06-3845287 Galli ITIS Leonardo 01-123456 Negri Rossi Lorenzini ITIS Galvani 081-543215 Verdi Bedoni Liceo Fermi 06-456987 

Esempio 3FN (continua) Istituti(Scuola, TelefonoScuola) Studenti(Cognome, Scuola) Studenti Istituti Cognome Scuola Bianchi ITC Paleari Leoni Liceo Dante Galli ITIS Leonardo Negri Rossi Lorenzini ITIS Galvani Verdi Bedoni Liceo Fermi Scuola TelefonoScuola ITC Paleari 02-2538469 Liceo Dante 06-3845287 ITIS Leonardo 01-123456 ITIS Galvani 081-543215 Liceo Fermi 06-456987