Normalizzazione (Codd, 1972)



Documenti analoghi
Decomposizione senza perdita. Decomposizione senza perdita. Conservazione delle dipendenze. Conservazione delle dipendenze

Normalizzazione. Normalizzazione. Normalizzazione e modello ER. Esempio. Normalizzazione

Normalizzazione. Relazionali

FORME NORMALI E DIPENDENZE

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Attributi e domini. A per {A}; XY per X Y (pertanto A 1 A 2 A 3 denota

LA NORMALIZZAZIONE. Introduzione

Raffinamento dello schema e forme normali. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

BASI DI DATI DIPENDENZE FUNZIONALI E FORME NORMALI

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Organizzazione degli archivi

Introduzione alla teoria dei database relazionali. Come progettare un database

DIP. FUNZIONALI E FORME NORMALI esempi cfr. Albano Ghelli Orsini Basi di dati relazionali e a oggetti Zanichelli, 1997, cap.6 RIDONDANZE E ANOMALIE

Secondo Compitino di Basi di Dati

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro

Operazioni sui database

b) Costruire direttamente le relazioni e poi correggere quelle che presentano anomalie

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

MODELLO RELAZIONALE. Introduzione

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.

Il Modello Relazionale

Vincoli di integrità

BASE DI DATI: sicurezza. Informatica febbraio ASA

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

DATABASE RELAZIONALI

Access. P a r t e p r i m a

( x) ( x) 0. Equazioni irrazionali

Basi di dati. Concetti Introduttivi ESEMPIO. Fisica, Analisi, Informatica. Entità Relazioni Interrogazioni. Database 2

Progettazione di Database. Un Esempio

Basi di Dati e Sistemi Informativi. Progettazione logica: Il modello relazionale

Definizione di normalizzazione

Informatica Industriale Modello funzionale: Informazione Progettazione concettuale

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

Progettazione dei Dati

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

Database. Si ringrazia Marco Bertini per le slides

Modello relazionale. ing. Alfredo Cozzi 1

database: modello entityrelationship

Progettazione concettuale

Basi di Dati II. Qualità di schemi relazionali (2) Qualità di schemi relazionali. 1) Semantica degli attributi di una relazione

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

TEORIA sulle BASI DI DATI

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

N ORE LEZIONI FRONTALI: STUDIO INDIVIDUALE ( ) N ORE ESERCITAZIONI/LABORATORIO: STUDIO INDIVIDUALE ( )

Definizione di domini

Progettazione di Basi di Dati

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Rappresentazione grafica di entità e attributi

Progettaz. e sviluppo Data Base

MODELLO RELAZIONALE. cesarini-bdsi mod relazionale 1 MODELLO RELAZIONALE

Politica del WHOIS relativa al nome a dominio.eu

NORMALIZZAZIONE DI SCHEMI RELAZIONALI. Prof.ssa Rosalba Giugno

Normalizzazione di Basi di Dati

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

Progettazione di Database

Basi di Dati. Conversione Modello ER in Modello Relazionale. K. Donno - Conversione Modello ER in Modello Relazionale

Lorenzo Braidi. Database design. Libro_datadesign.indb :06:17

Basi di dati 30 settembre 2010 Compito A

Introduzione alle Basi di Dati

Modello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi

Corso di Amministrazione di Reti A.A. 2002/2003

Basi di dati 9 febbraio 2010 Compito A

Ci sono molti vantaggi nel mettere in relazione le

DBMS (Data Base Management System)

Il Modello Relazionale

Archivi e Basi di Dati

Il Modello Relazionale

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

5.2.1 RELAZIONI TRA TABELLE Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9

Operazioni sulla Retta Algebrica e riflessione sulla loro definizione nell insieme dei Naturali

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

Lezione 8. Motori di Ricerca

Corrispondenze e funzioni

Lezione 2. Il modello entità relazione

(anno accademico )

Il database management system Access

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

I DATABASE Database relazionale

Il seguente esempio ha lo scopo di illustrare i 3 tipi di relazione 1:1,1:N,N:N. Tabella Conto: Tabella Conto:

1 CARICAMENTO LOTTI ED ESISTENZE AD INIZIO ESERCIZIO

DB - Modello relazionale dei dati. DB - Modello Relazionale 1

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

CMS ERMES INFORMATICA

Basi di Dati e Microsoft Access

Alessandra Raffaetà. Basi di Dati

Rappresentare i nessi logici con gli insiemi

Artifact Centric Business Processes (I)

Basi di dati. La normalizzazione

Modulo 2 Data Base 2

B+Trees. Introduzione

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

BASI DI DATI - : I modelli di database

IDENTIFICAZIONE DEI BISOGNI DEL CLIENTE

Informatica. Basi di dati. Basi di dati (Database, DB) Basi di dati parte 1: Introduzione

Transcript:

Normalizzazione (Codd, 1972) La normalizzazione non è una tecnica, nè una metodologia di progettazione Le forme normali costituiscono uno dei criteri per ottenere basi di dati relazionali ben progettate Non necessariamente uno schema normalizzato è ben progettato Intuitivamente, cosa significa ben progettato? eliminazione o limitazione delle ridondanze ortogonalità e indipendenza assenza di anomalie

Esempio: biblioteca Biblioteca{Utente, Indirizzo, Telefono, Codice Materiale, Autore, Titolo, DataPrestito} Utente Rossi Paolicchi Poli Paolicchi Paolicchi Bianchi Indirizz o Venezia Pisa Udine Pisa Pisa Udine Tel. 75444 25346 59729 25346 25346 66123 Codice Mat. XY188A XX256B XY090C KK101A HJ700A XY008B Autore Boccacci o Verga Petrarca Dante Manzoni Moravia Titolo Decameron e Novelle Canzoniere Vita Nova Adelchi La Noia Data Prestit o 07/07 07/08 17/09 20/09 21/09 03/10

Problemi Ripetizioni L indirizzo viene ripetuto Ridondanza Probabile inconsistenza Anomalie di inserzione Indirizzo e n. di telefono non possono essere inseriti se l utente non ha prestiti Anomalie di eliminazione Indirizzo e n. di telefono spariscono se si eliminano i prestiti

Cosa non deve succedere Ridondanza non dovrebbero esistere informazioni ripetute Anomalie di aggiornamento se varia un dato non deve essere necessario andare a cercare tutte le ennuple che devono essere aggiornate Anomalie di cancellazione la cancellazione di una ennupla non deve lasciare altre ennuple non integre, né eliminare qualunque traccia di sé Anomalie di inserimento l'inserimento di una nuova ennupla non deve causare problemi di relazione

Altro esempio Lo stipendio dipenderebbe solo dall'impiegato... Il bilancio dipenderebbe solo dal progetto...

Cosa non deve succedere Ridondanza lo stipendio è inutilmente ripetuto Anomalie di aggiornamento una variazioni di stipendio comporta una variazione di numerose ennuple Anomalie di cancellazione se un impiegato non partecipa ad alcun progetto cosa succede? Anomalie di inserimento non è possibile gestire informazioni relative ad un impiegato se esso non è assegnato ad almeno un progetto

Dipendenza funzionale si parla di dipendenza funzionale X Y se t 1,t 2 / t 1 [X]=t 2 [X] t 1 [Y]=t 2 [Y] se X Y è soddisfatta, si può dire che X determina Y ad ogni chiave K, corrisponde una dipendenza funzionale da K verso altri attributi della relazione di cui K è chiave Dipendenza e anomalie le anomalie si verificano di solito in corrispondenza di dipendenze funzionali dipendenti da chiavi le anomalie si verificano in relazioni che considerano collezioni eterogenee di oggetti

Dipendenza funzionale Esempio Biblioteca Codice Autore, Titolo Il codice determina l autore e il titolo L autore e il titolo dipendono funzionalmente dal codice X Y quando per ogni valore di X c è un solo valore possibile di Y Y è chiave primaria se X è chiave determina tutti gli altri attributi nella relazione

Chiavi Chiave candidata insieme di attributi che identifica univocamente una ennupla in una relazione Chiave primaria una delle chiavi candidate, generalmente quella con meno attributi (idealmente un solo attributo) Chiave esterna attributo che è chiave primaria in un altra relazione

L obiettivo Attr 1 Chiave Attr 2 Attr k

Decomposizione Comunemente, una relazione non è in forma normale quando comprende concetti eterogenei La soluzione consiste nella separazione di tali concetti in due (o più) nuove relazioni, decomponendo la relazione originale in nuove relazioni che soddisfino i criteri di dipendenza funzionale Sono accettabili solo e soltanto le decomposizioni senza perdita

Decomposizione senza perdita si ha decomposizione senza perdita su due insiemi di attributi A 1 e A 2 qualora un operazione di join delle proiezioni A 1 A 2 della relazione è identico alla relazione originaria (cioè, ricomponendo non si generano ennuple spurie) sia A0 = A 1 A 2. Si ha decomposizione senza perdita se la relazione soddisfa A 0 A 1 o A 0 A 2 o entrambe si ha decomposizione senza perdita se gli attributi in comune tra A 1 e A 2 costituiscono una chiave per almeno una delle due nuove relazioni una decomposizione conserva le dipendenze se ciascuna delle dipendenze originarie è presente nelle nuove relazioni

Uso della decomposizione A partire da uno schema denormalizzato, lo si porta in forma normale applicando decomposizioni successive tali che non vi sia perdita d'informazione le dipendenze funzionali siano preservate il nuovo schema sia in forma normale

Le forme normali Prima forma normale (1NF) Seconda forma normale (2NF) Terza forma normale (3NF) Forma normale di Boyce-Codd (BCNF)

Prima forma normale Sono ammissibili come attributi solo e soltanto valori atomici non è possibile definire attributi che abbiano più di un valore un attributo deve essere semplice e indivisibile un attributo deve consistere di un solo valore, tra tutti i valori possibili definiti a livello di dominio per quell'attributo non sono possibili relazioni entro relazioni non sono possibili ennuple di ennuple

Per portare in 1NF Decomporre l'attributo che viola 1NF in una nuova relazione comprendente anche la chiave primaria t 0 [K,A 1,A 2,A z,...a n ] t 1 [K,A 1,A 2...A n ] ; t 2 [K,A z ] si decompone una relazione non-1nf in due relazioni 1NF Espandere la chiave in modo da avere ennuple separate si genera ridondanza Se è noto a priori il numero massimo di ripetizioni possibili per un attributo A, decomporre A in più attributi si genera ridondanza si generano numerose istanze di schema con valori nulli

Esempio Sito contiene un attributo non atomico La seconda ennupla viene replicata, rendendo atomico l'attributo La relazione viene decomposta La migliore soluzione è la seconda

Seconda forma normale Gli attributi soddisfano 1NF Ogni attributo che non è chiave, dipende in maniera completa dalla chiave (FFD: Full Functional Dependency) ciascun attributo non-chiave deve essere funzionalmente dipendente dalla chiave primaria e solo da essa test: verificare l'esistenza di dipendenze funzionali il cui termine di sinistra sia parte della chiave primaria se la chiave primaria è atomica il test non è necessario

Per portare in 2NF Decomporre la relazione che viola 2NF in n nuove relazioni comprendenti sottoinsiemi di attributi omogenei per dipendenza funzionale dalla chiave primaria originale o da una parte di essa (se la chiave primaria è anche superchiave) t 0 [K,A 1,A 2,A x,a y,a z,...a n ] t 1 [K,A 1,A 2...A n ]; t 2 [K,A x ]; t 3 [K,A y ]; t 2 [K,A z ] si decompone una relazione non-2nf con n diverse dipendenze funzionali dalla chiave primaria K in n relazioni 2NF

Esempio sesso ID_animale età ID_animale peso ID_animale tarso ID_animale rilevatore, data e sito non dipendono da ID_animale gli attributi relativi a rilevatore, data e sito vengono decomposti

Eseminare le dipendenze Analizzando le dipendenze funzionali è possibile capire come decomporre la relazione NomeRilevatore Indirizzo, Telefono CodiceMateriale NomeMateriale, Descrizione NomeRilevatore, DataPrestito CodiceMateriale Schemi risultanti Rilevatore{NomeRilevatore, Indirizzo, Telefono} Materiale{CodiceMateriale, NomeMateriale, Descrizione} Prestito{NomeRilevatore, DataPrestito, CodiceMateriale}

Terza forma normale Gli attributi soddisfano 2NF Ogni attributo che non è chiave, non ha dipendenze funzionali da altri attributi non chiave Assenza di dipendenze transitive X Z in maniera transitiva se X Y e Y Z Indirizzo NomeUtente Telefono

3NF - Esempio Schema: Utenti{NomeUtente, Indirizzo, Telefono} 3NF: Utenti{NomeUtente, Indirizzo} Telefoni{Indirizzo, Telefono}

In sintesi 1NF: attributi atomici, relazioni non nidificate 2NF: in caso di chiave primaria multipla, nessun attributo non-chiave deve dipendere da una parte della chiave 3NF: non devono esistere attributi non-chiave determinati da altri attributi non-chiave Formare nuove relazioni per ogni attributo non atomico o nidificato Decomporre per ogni chiave parziale, mantenere le relazioni con la chiave primaria originale Decomporre creando relazioni che includono come chiave gli attributi non-chiave determinanti

Forma normale di Boyce-Codd La relazione soddisfa 1NF Ogni determinante è chiave candidata un determinante è un attributo che determina altri attributi 3NF, e tutti i determinanti sono chiavi determinante: attributo che determina altri attributi CIC{Capoluogo, Indirizzo, CAP} Capoluogo, Indirizzo CAP CAP Capoluogo CAP non è chiave, ma determina Capoluogo È una condizione più restrittiva rispetto a 3NF Non sempre è possibile arrivare a una relazione in BCNF

Forma normale di Boyce-Codd - Esempio IC(Indirizzo, CAP) CC(CAP, Capoluogo) Esistono altre forme normali Elmasri & Navathe (2004): 1NF, 2NF, 3NF, BCNF, 4NF, 5NF, DKNF