Obiettivi della normalizzazione: In pratica:

Documenti analoghi
Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo.

Vincoli di integrità Normalizzazione

PIL Percorsi di Inserimento Lavorativo

DATABASE NORMALIZZAZIONE TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL 2, HOEPLI. Informatica

Normalizzazione di Basi di Dati. Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto San Giovanni

Sistemi di Elaborazione delle Informazioni. DB ed SQL

Soluzione proposta dal Prof. Rio Chierego dell ISIS Guido Tassinari di Pozzuoli

PROGETTAZIONE DI DATABASE

Normalizzazione Delle Relazioni

Unità 3. Modello Relazionale

Forme normali 1NF,2NF,3NF,BCNF

Il Modello Relazionale e le operazioni

Elementi di Normalizzazione

4. Forma normale di Boyce-Codd

Corso di Informatica. Prerequisiti. Modulo T2 D2.1 - La normalizzazione 1

La progettazione concettuale

Tecniche di normalizzazione

Normalizzazione di Basi di Dati

Basi di dati. La normalizzazione

Normalizzazione (cenni)

Forme normali. Le forme normali sono di solito definite sul modello relazionale, ma hanno senso in altri contesti, ad esempio il modello E-R

Corso di Informatica. Prerequisiti. Modulo T2 D2.2 - La normalizzazione 2. Elementi di algebra relazionale Requisiti di una base di dati

Progettare Basi di Dati

Forme normali. Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill. La normalizzazione. Normalizzazione. Una relazione con anomalie.

LA NORMALIZZAZIONE. Prima parte

Forme normali. Prima forma normale (1NF) Seconda forma normale(2nf) Relazione non in 1NF

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, La normalizzazione

Schema Concettuale. Gli elementi essenziali 05/12/2012. I dati devono essere organizzati seguendo le regole di un modello concettuale ENTITA

Perché questi fenomeni indesiderabili?

Decomposizione senza perdita

Modello relazionale. ing. Alfredo Cozzi 1

BASE DI DATI. (accezione specifica) collezione di dati gestita da un DBMS. Università degli Studi di Cassino

TECNOLOGIE DELL INFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE

COS E UN SISTEMA INFORMATIVO?

TEORIA sulle BASI DI DATI

Tornando all esempio..

Corso sulla Normalizzazione. Prime 3 forme normali

Atzeni, Ceri, Paraboschi, Torlone Basi di dati. La normalizzazione. Concetti che descriveremo

BASE DI DATI. collezione di dati, utilizzati per rappresentare le. (accezione specifica) collezione di dati gestita da un DBMS. (accezione generica)

Corso di Basi di Dati

Normalizzazione. Le forme normali. La normalizzazione. Applicazione forme normali

Informatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 20 ottobre Corso di laurea in Economia

Normalizzazione Progettazione di basi di dati Normalizzazione Normalizzazione Normalizzazione e modello ER Esempio Esame Superato

Progettazione di basi di dati D B M G

Progettazione di basi di dati

Modello Relazionale. Chiavi

D B M G D B M G 2. Progettazione di basi di dati. Normalizzazione

Corso di Basi di Dati A.A. 2013/2014

Il modello Relazionale.

Basi di dati. Concetti introduttivi

Database Modulo 4 RELAZIONI TRA TABELLE

Database. Modulo 5. C. Marrocco. Università degli Studi di Cassino

Introduzione alla normalizzazione dei dati

PRINCIPI DI INFORMATICA CORSO DI LAUREA IN SCIENZE BIOLOGICHE

Database. Modulo 5. C. Marrocco. Università degli Studi di Cassino

Normalizzazione. Università degli Studi del Sannio Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica

LE BASI DI DATI. Seconda parte La progettazione di database Relazionali SCHEMA LOGICO e SCHEMA FISICO Costruzione delle tabelle

Normalizzazione. Lezione 7. Normalizzazione e integrità referenziale. Consideriamo la seguente tabella. Anomalie di inserimento

Basi di Dati e Sistemi Informativi. Raffinamento dello schema e Normalizzazione nei database relazionali

Corso di. Basi di Dati I. 2. Il modello relazionale

Esempio di progettazione di un database con elencazione delle fasi progettuali

Il modello logico dei dati

Normalizzazione. Definizione

BASI DI DATI. Titolo Prof. Cognome Nome Indirizzo Numero Telefono

NORMALIZZAZIONE. Fino ad ora. Dipendenze funzionali e Normalizzazione per basi di dati relazionali

Sommario. Introduzione... 13

Una relazione con anomalie

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

CAPITOLO IV. DATABASE: definizione e progettazione. Definizioni

Informatica di Base 1 Linea 1

Modello Relazionale. Sistemi di Elaborazione delle Informazioni. DB ed SQL. Modello relazionale: concetti di base

Angelo Chianese, Vincenzo Moscato, Antonio Picariello, Lucio Sansone. Basi di dati per la gestione dell'informazione 2/ed McGraw-Hill Capitolo 6

Basi di Dati 1 Esercitazione 5 08/01/2013. Matteo Picozzi

Il modello relazionale

RELAZIONI E BASI DI DATI

TEORIA sulle BASI DI DATI Percorso di istruzione per adulti II livello

Progettazione di Basi di Dati

Corso di Informatica

La strutturazione dei database: Il modello relazionale (3/3)

Capitolo 9. Esercizio 9.1. Esercizio 9.2

CAPITOLO V. DATABASE: Il modello relazionale

La normalizzazione. CdL Informatica Applicata UNIURB - Dott. Maurizio Maffi

Lezione 1 Concetti generali

Modello relazionale e algebra relazionale

Strategie top-down. Primitive di trasformazione top-down. Primitive di trasformazione top-down

La normalizzazione. In fase di progettazione occorre verificare che ogni tabella abbia una chiave primaria.

La strutturazione dei database: la normalizzazione

Elena Baralis 2007 Politecnico di Torino 1

Le Basi di Dati per i Beni culturali

Introduzione. Il Modello Relazionale. Relazioni e Tabelle. Relazioni Matematiche - 1. Relazioni Matematiche - 2. Relazioni Matematiche - 3

PROGETTO LOGICO RELAZIONALE. progetto logico relazionale 1

Esercizi svolti. risolvere, se possibile, l equazione xa + B = O, essendo x un incognita reale

Elena baralis 2007 Politecnico di Torino 1

Elena baralis 2007 Politecnico di Torino 1

Transcript:

La normalizzazione Obiettivi della normalizzazione: evitare la ripetizione e la ridondanza dei dati, durante la fase di definizione della struttura di una tabella, al fine di evitare futuri problemi nelle successive fasi di trattamento della tabella stessa, tramite operazioni di modifica o cancellazione di record in essa contenuti. In pratica: Si tratta di un insieme di operazioni, tramite le quali, a partire da una data tabella (non normalizzata), vengono create nuove tabelle, seguendo opportune regole, che trasformano la tabella originaria, in altre tabelle. In ogni caso deve essere garantito che la trasformazione di una tabella in altre tabelle di forma normale superiore non provochi la perdita di informazioni.

Dipendenza Funzionale: Data una Relazione (o Tabella) R denominati X e Y due sottoinsiemi di attributi di R, si dice che Y dipende funzionalmente da X e si scrive X -> Y Se e solo se i valori degli attributi di X determinano univocamente i valori degli attributi di Y. Esempio: Data la relazione Magazzino(CodCli, Indirizzo, Città, Cap, CodArt, Descr, Prezzo, qta) Risultano le dipendenze funzionali : CodCli -> Città Codart -> Prezzo Codcli,Codart - > Qta

Dipendenza Funzionale: In generale tutti gli attributi che non appartengono alla chiave primaria dipendono funzionalmente da essa. Se Y dipende da un sottoinsieme di X parleremo di dipendenza funzionale parziale.

Concetti chiave: chiave o chiave primaria : è un insieme di uno o più attributi che identificano in modo univoco un record della tabella. Chiave candidata : è un in insieme di uno o più attributi che possono svolgere la funzione di chiave (ci possono essere diverse chiavi candidate, ma una sola chiave primaria). Attributo non chiave : è un campo della tabella che non fa parte della chiave primaria. Dipendenza funzionale : indica il fatto che il valore di un attributo A1 determina il valore di un altro attributo A2, e si indica con A1 A2 (A1è un determinante per A2) Dipendenza transitiva : si ha quando un attributo A2 dipende da un attributo A1, e l attributo A3 dipende da A2, cioè: se A1 A2 e A2 A3 allora A1 A3 in modo transitivo.

Prima forma normale Una tabella è in 1FN se rispetta i requisiti fondamentali del modello relazionale cioè: Tutte le righe della tabella contengono lo stesso numero di colonne Gli attributi rappresentano informazioni elementari I valori che compaiono in una colonna sono dello stesso tipo, cioè appartengono allo stesso dominio Non ci devono essere due righe con gli stessi valori nelle colonne

Esempio di entità non normalizzata Dipendenti Matricola Nome Indirizzo Familiari a carico L attributo Familiari a carico non è elementare in quanto è costituito da un gruppo di attributi ripetuti dello stesso tipo

Tabelle normalizzate in 1FN Soluzione: la tabella precedente viene scissa nella seguenti due tabelle Dipendenti Familiari Matricola Nome Indirizzo CodiceFam NomeFam MatricolaDip Vantaggi: * Abbiamo 2 elementi distinti che rappresentano meglio la realtà. Inoltre è più facile aggiungere nuovi attributi. * Risultano semplificate le operazioni di inserimento, cancellazione e modifica.

Seconda forma normale Una tabella è in 2FN quando è in 1FN e tutti i suoi attributi non chiave dipendono unicamente dall intera chiave, cioè non possiede attributi che dipendono soltanto da una parte della chiave. La seconda forma normale elimina la dipendenza parziale degli attributi dalla chiave e riguarda il caso di tabelle con chiavi composte, cioè formate da più attributi.

Es: si abbia un inventario di merci, le quali si trovano in alcuni magazzini dislocati in località diverse. Le informazioni essenziali possono essere rappresentate con la seguente tabella: Merci Codice Articolo Magazzino Quantità LocalitàMagazzino Osservazioni: la chiave è composta, in quanto il solo codice non basta per identificare la merce, la quale può essere presente in magazzini diversi. l indirizzo del magazzino riguarda solo l attributo Magazzino, quindi l attributo LocalitàMagazzino dipende solo da una parte della chiave. La tabella non è quindi in 2FN

La tabella vista prima non è in seconda forma normale e ciò può provocare problemi di questo genere: La località del magazzino è ripetuta per tutte le righe della tabella che si riferiscono a prodotti presenti in quel magazzino; se la località del magazzino cambia, ogni riga contenente merci presenti in quel magazzino dovrà essere aggiornata; La ridondanza può provocare l'inconsistenza delle informazioni perche la località potrebbe essere scritta in modo differente in righe diverse per lo stesso magazzino, oppure perché potrebbe accadere che alcuni record vengano aggiornati ed altri no; Se in un certo periodo non ci fossero merci presenti in un magazzino, non avremmo alcuna informazione sulla località del magazzino. La cancellazione di righe potrebbe quindi determinare una perdita complessiva di informazioni nella base di dati.

Risoluzione del problema: La soluzione consiste nel costruire nuove tabelle, a partire dalla tabella non normalizzata, togliendo dalla tabella di partenza gli attributi che dipendono solo parzialmente dalla chiave primaria. Es: nel caso precedente otterremo: Merci Codice Magazzino Quantità Depositi Magazzino LocalitàMagazzino Queste due tabelle sono in 2FN

Osservazioni: Il processo di normalizzazione diminuisce la ridondanza dei dati e la possibilità di inconsistenze, ma rende più complesse le operazioni di ritrovamento dei dati. Es: supponiamo di volere conoscere la località del magazzino dove è presente una merce di cui si conosce il codice. Nella tabella non normalizzata basterà esaminare solo le sue righe, mentre nella tabella in seconda forma normale occorre congiungere le righe delle due tabelle ottenute dal processo di normalizzazione, secondo l'attributo comune Magazzino (OCCORRE ESEGUIRE UNA JOIN). La normalizzazione quindi è importante nel modello di un database perché l'integrità e la consistenza dei dati sono prioritarie rispetto alla velocità di ritrovamento dei dati, che rimane comunque un fattore essenziale.

Terza forma normale 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 terza forma normale elimina quindi la dipendenza transitiva degli attributi dalla chiave.

Es: si consideri la gestione anagrafica di un'associazione di studenti di scuole diverse. Le informazioni più importanti siano rappresentate con la seguente tabella: Studenti Nome Scuola TelefonoScuola Osservazioni: Il nome è l'attributo chiave, e il telefono della scuola, pur essendo un informazione che riguarda lo studente, dipende però dalla scuola cui lo studente è iscritto. Nella tabella è quindi presente un attributo non-chiave (TelefonoScuola) che dipende da un altro attributo non-chiave (Scuola). La tabella, pertanto NON E IN TERZA FORMA NORMALE

Possibili anomalie il telefono di una scuola sarà ripetuto per ogni studente appartenente a quella scuola; se il telefono di una scuola cambia, occorrerà modificare tutte le righe contenenti studenti di quella scuola; la ridondanza può provocare inconsistenza, in quanto ci potrebbero essere numeri di telefono differenti, in righe diverse, per la stessa scuola, nel caso in cui questi siano stati scritti in modo diverso, oppure l'aggiornamento non sia stato fatto su tutte le righe; se una scuola non ha nessuno studente appartenente all'associazione, oppure gli studenti iscritti di una scuola escono tutti dall'associazione, non potremmo avere alcuna informazione sul telefono della scuola, con una conseguente perdita di informazioni.

Risoluzione del problema: La normalizzazione in 3FN si ottiene scomponendo la tabella di partenza in nuove tabelle, nelle quali tutti gli attributi dipendono unicamente e direttamente dalla chiave, togliendo gli attributi non-chiave che dipendono da un altro attributo non-chiave. Es: nel caso precedente otterremo: Studenti Istituti Nome Scuola Scuola TelefonoScuola Queste due tabelle sono in 3FN