Il raffinamento dello schema e la normalizzazione nei database relazionali Eugenio Di Sciascio.

Slides:



Advertisements
Presentazioni simili
Informatica II – Basi di Dati (08/09) – Parte 1
Advertisements

Algebra Relazionale 3 Università degli Studi del Sannio
Calcolo Relazionale.
2. Introduzione alla probabilità
DB - Modello relazionale dei dati
Normalizzazione Forme Normali.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
La normalizzazione delle relazioni. Cosa vedremo continueremo a risolvere i problemi legati alla costruzione di schemi relazionali, vedremo, in particolare,
Biglietti e Ritardi: schema E/R
Biglietti: schema E/R.
1 Biglietti: schema E/R. 2 Biglietti: albero degli attributi.
Progettazione Concettuale: Il modello Entità-Relazioni
1 Progettazione logica: Il modello relazionale Eugenio Di Sciascio.
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
4 – Progettazione – Introduzione e Modello E-R
Lez. 91 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Alberi di ricerca.
Basi di Dati prof. A. Longheu 4 – Progettazione – Introduzione e Modello E-R Cap. 5 Basi di dati Atzeni – Ceri – Paraboschi - Torlone.
Relazioni Relazione: Associazione o legame logico esistente tra due o più entità Socio Prenota Campo.
(se a = 0 l’equazione bx + c = 0 è di primo grado)
Alberi binari di ricerca
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
3. Processi Stocastici Un processo stocastico è una funzione del tempo i cui valori x(t) ad ogni istante di tempo t sono v.a. Notazione: X : insieme di.
La Normalizzazione. 27 January, slide 2 Le nuove tecnologie Software Tabelle, unicità e chiavi Ciascuna riga di una tabella deve esere unica Ci.
Processi Aleatori : Introduzione – Parte I
Corso di Informatica (Basi di Dati)
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
Seminario su clustering dei dati – Parte II
Corrado Aaron Visaggio
Basi di dati 2002 EER Vogliamo aumentare lespressività degli Entity Model EER: Entity Model Esteso.
Algoritmo di Query Optimization
Corso di Matematica Discreta cont. 2
Modello E-R Generalizzazioni
Progettazione di una base di dati
Normalizzazione Le forme normali certificano che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti.
Strategia bottom-up Nella strategia bottom-up le specifiche iniziali sono suddivise in componenti via via sempre più piccole, fino a descrivere frammenti.
Modello E-R Generalizzazioni
Informazione incompleta Le tuple che compongono la base di dati devono essere omogenee. Quindi ad ogni attributo deve essere associato un valore in ogni.
Basi di dati Claudia Raibulet
Forme normali.
TECNOLOGIE DELLINFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE Materiale di supporto alla didattica.
MODELLO LOGICO DEI DATI
Progettare un database
Teoria della Normalizzazione
Introduzione a Oracle 9i
Sistemi di Elaborazione delle Informazioni Mod.I.
La Normalizzazione. 2 May, slide 2 Le nuove tecnologie Software Normalizzazione Normalizzazione è il processo di semplificazione di un data base.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Forma normale di Boyce e Codd
Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.
S. Costantini 06/05/2006 (parte del materiale è tratto da slide del 2001 di Ceri-Atzeni) Normalizzazione di Schemi.
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
Basi di dati e Relazioni Uno schema di relazione R(X) è costituito da un simbolo (nome della relazione) R e da una serie di attributi X={A 1, A 2, …, A.
Query languages per Basi di Dati Relazionali  Algebra Relazionale:  basato sulla teoria degli insiemi  procedurale  usato per l’implementazione di.
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
Progettazione di una base di dati relazionale Vincoli.
Progettazione di una base di dati relazionale Terza forma normale.
Join Se ciascuna tupla di ciascun operando contribuisce ad almeno una tupla del risultato il join si dice completo. Se per alcune tuple non è verificata.
Teoria della Normalizzazione Basi di Dati 2010/11
S. Costantini 06/05/2006 (parte del materiale è tratto da slide del 2001 di Ceri-Atzeni) Normalizzazione di Schemi.
Eprogram informatica V anno.
Cloud informatica V anno.
NORMALIZZAZIONE ESERCIZI. INTRODUZIONE La modellazione E-R ci ha consentito di descrivere schemi relazionali Lo strumento base per la modellizzazione.
ICT e Sistemi informativi Aziendali Materiale di supporto alla didattica.
Normalizzazione. Introduzione Nell’organizzazione tradizionale degli archivi, si verificano alcuni problemi, quali: Ridondanza dei dati (gli stessi dati.
1 “ Le Basi di Dati ”. 2 Parte 5: Tabelle –Creazione di una tabella –Indici e chiavi primarie –Relazioni e integrità referenziale Basi di Dati Struttura.
BASI DATI: modello relazionale BIOINGEGNERIA ELETTRONICA ED INFORMATICA Lezione IIIb - AA 2014/20151.
I DONEITÀ DI C ONOSCENZE E C OMPETENZE I NFORMATICHE ( A – D ) Un database è un insieme di record (registrazioni) e di file (archivi) organizzati per uno.
Basi di dati - 09Marco Maggini1 Forme normali forme normali  Le forme normali verificano la qualità di uno schema di una base di dati relazionale  Presenza.
Normalizzazione. Forme normali Evitare la ripetizione e la ridondanza Evitare alcuni problemi in modifiche/cancellazioni Obiettivo: Normalizzazione =>
Transcript della presentazione:

Il raffinamento dello schema e la normalizzazione nei database relazionali Eugenio Di Sciascio

Introduzione La modellazione E-R ci ha consentito di descrivere schemi relazionali Lo strumento base per la modellizzazione è stato finora “la ragionevolezza” Esistono però metodi formali per assicurare la scelta di “buoni” schemi relazionali. Tali metodi verranno essenzialmente utilizzati per verificare e raffinare lo schema.

Linee guida informali Scelta degli attributi: Progettare lo schema in modo che sia semplice descrivere il suo significato, prestare cioè attenzione alla semantica degli attributi. Evitare di riunire in uno schema di relazione attributi propri di entità diverse del mondo reale.

Linee guida informali (2) Ridurre la ridondanza: Ha un duplice scopo: ridurre la “storage area” e evitare le anomalie da aggiornamento Anomalie da aggiornamento: Anomalie da inserimento Anomalie da modifica Anomalie da cancellazione

Linee guida informali (3) Nome Cognome Superio_id Id_dip Data_n indirizzo CF Stip_annuo Impiegato_dipartimento DipNome Dir_dip Data_ino Anomalie da inserzione: Inserimento di un nuovo impiegato -> inserimento dati dipartimento oppure nulls. Inserimento dati nuovo dipartimento -> almeno 1 impiegato (Id_imp è PK, non null) Anomalie da cancellazione: Eliminazione dell’ultimo dipendente di un dipartimento -> perdita delle informazioni sul dipartimento Anomalie da modifica: Nuovo direttore dipartimento -> modifica di tutte le tuple relative a impiegati di quel dipartimento.

Linee guida informali (4) Ridurre il numero di valori null nelle tuple: Valori null possono essere variamente interpretati: non applicabile, sconosciuto, non inserito In molti casi conviene creare nuove relazioni per ridurre i null. Esempio: Se solo il 5% degli impiegati ha un fax personale avremo il 95% di null. Nome Cognome Superio_id Id_dip Data_n indirizzo CF Stip_annuo Impiegato_fax Tel. Fax. Nome Cognome Superio_id Id_dip Data_n indirizzo CF Stip_annuo Impiegato Tel. Fax. Id_dip Fax_imp

Linee guida informali (5) Evitare le tuple spurie: Una tupla spuria (cioè con informazioni non corrette) può essere generata a seguito di un join naturale E’ necessario realizzare schemi che consentano di effettuare join con condizioni di uguaglianza su attributi che siano o chiavi primarie o chiavi esterne, così da garantire l’assenza di tuple spurie.

Dipendenze funzionali Una dipendenza funzionale è un vincolo tra due insiemi di attributi di una base di dati e dipende dalla semantica dello schema. Data uno schema relazionale R e due sottoinsiemi non vuoti di attributi X e Y esiste una dipendenza funzionale XY se per ogni istanza r di R: t1 r,t2  r, x(t1) = x(t2)  y(t1) = y(t2) i.e., date due tuple in r se i valori su X coincidono, anche i valori su Y coincidono.

Dipendenze funzionali (2) Notare che: Se un vincolo su uno schema R indica che X sia una chiave candidata di R ciò implica che X Y per ogni sottoinsieme Y di attributi di R. Non vale la proprietà : X Y Y X.

Dipendenze funzionali (3) Sia F l’insieme delle FD che sono specificate su uno schema R. In generale ci saranno comunque altre FD non specificate esplicitamente. Chiamiamo F+ , chiusura di F, l’insieme delle FD implicate da F. Esistono regole, corrette e complete, per determinare le FD, detti assiomi di Armstrong.

Dipendenze funzionali (4) Assiomi di Armstrong: Riflessività: X Y  X Y Incremento: X Y  XZ YZ Transitività: X Y , Y Z  X Z Possono essere anche determinate altre utili regole: Unione: X Y , X Z  X YZ Decomposizione: X YZ  X Y

Dipendenze funzionali (5) Un insieme F di dipendenze funzionale è minimo se: Ogni FD ha 1 solo attributo alla sua destra Non è possibile rimuovere alcuna FD da F ed avere ancora un insieme equivalente ad F. La parte sinistra di ogni dipendenza funzionale è minima. In tal modo otterremmo sicuramente schemi privi di ridondanza Problemi: il calcolo della F+ è pesante e in genere va accettata una certa quantità di ridondanza per motivi di efficienza.

Forme normali Un metodo formale per analizzare le relazioni Consente una eventuale decomposizione di relazioni in schemi che godono di migliori proprietà. E’ in generale necessario che anche altre proprietà siano verificate per garantire un buon progetto: Lossless join (join non additivo) Conservazione delle dipendenze

1 Forma normale Coincide in pratica con la definizione di relazione: Il dominio di ciascun attributo deve consistere di valori atomici e il valore di un attributo in una tupla deve essere un valore singolo del dominio Il metodo di decomposizione è quello già descritto per il mapping ER relazionale

2 Forma Normale Uno schema R è in questa forma se ogni attributo non primo ha una FD piena dalla PK di R. Impiegato_prog Nome Cognome CF N_prog indirizzo Stip_annuo Superio_id Nome_prog Sede Ore_lav Impiegato_prog CF N_prog Ore_lav Progetto Impiegato Nome Cognome indirizzo Stip_annuo Superio_id CF N_prog Nome_prog Sede

3 Forma Normale Uno schema R è in questa forma se per ogni FD X Y, X è una superchiave di R oppure Y è un attributo primo. Nome Cognome Superio_id Id_dip Data_n indirizzo CF Stip_annuo Impiegato_dipartimento DipNome Dir_dip Data_ino Nome Cognome Superio_id Id_dip Data_n indirizzo CF Stip_annuo Impiegato Dipartimento Id_Dip DipNome Dir_dip Data_ino

Forma Normale di Boyce-Codd Uno schema R è in questa forma se per ogni FD X Y, X è una superchiave di R In altre parole R è in BCNF se le uniche FD non ovvie sono vincoli di chiave. Se R è in BCNF è ovviamente anche in 3NF. Se una R è in 3NF, ma non in BCNF è ancora possibile ridondanza. 3NF è comunque accettabile ed è sempre possibile decomporre una R in 3NF relazioni che godano anche del lossless-join e preservino le dipendenze.

Problemi delle decomposizioni Interrogazioni più costose a causa dei join Perdita di informazione (tuple spurie) dovuta a join. Controllo delle dipendenze può richiedere l’effettuazione di join.

Decomposizione senza perdite La decomposizione di uno schema R(X) in due sottoinsiemi di attributi X1 e X2 tali che X1X2=X e X1X2=X0 è lossless join se è soddisfatta la FD X0  X1 oppure X0  X2 La decomposizione è lossless se l’insieme degli attributi comuni alle due relazioni risultanti è chiave per almeno 1 delle 2 relazioni. La condizione è sufficiente, non necessaria Data R con FD F, se XY viola la BCNF possiamo sempre decomporre in R-Y e XY ottenendo relazioni BCNF e lossless join, ma non è assicurata la conservazione delle dipendenze.

Conservazione delle dipendenze E’ in generale importante mantenere i vincoli espressi nelle FD in singole relazioni, così da poterli verificare. Qs. Può essere in contrasto con la normalizzazione Esiste un algoritmo che garantisce il lossless join e la conservazione delle dipendenze con decomposizione in 3NF (non in BCNF)

Conservazione delle dipendenze (2) Esempio: R(impiegato, progetto,sede) FD: impiegato  sede (un impiegato lavora in una sede); progetto-sede  impiegato (ogni progetto ha più impiegati, in sedi diverse, ogni impiegato può gestire più progetti, ma in ciascuna sede un progetto ha un responsabile) Non in BCNF: impiegato  sede e impiegato non è superchiave, ma non è decomponibile xchè progetto-sede  impiegato include tutti gli attributi e quindi non è decomponibile.

Riassumendo.. Relazioni in BCNF sono prive di ridondanza Se non è possibile ottenere una decomposizione BCNF, lossless join e con conservazione delle dipendenze possiamo accontentarci di una 3NF. Soprattutto considerare ciò che desideriamo, cioè tenere comunque in conto le prestazioni e le interrogazioni probabili.