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



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

Lezione 2. Il modello entità relazione

Normalizzazione. Relazionali

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

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

NORMALIZZAZIONE DI SCHEMI RELAZIONALI. Prof.ssa Rosalba Giugno

BASI DI DATI DIPENDENZE FUNZIONALI E FORME NORMALI

FORME NORMALI E DIPENDENZE

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

LA NORMALIZZAZIONE. Introduzione

Normalizzazione (Codd, 1972)

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

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

Secondo Compitino di Basi di Dati

Il Modello Relazionale

Progettazione concettuale usando il modello Entità-Relazione (ER) e Progettazione Logica

Database. Si ringrazia Marco Bertini per le slides

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

Operazioni sui database

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

Basi di Dati. Progettazione del Modello ER. K. Donno - Progettazione del Modello ER

Introduzione alla teoria dei database relazionali. Come progettare un database

MODELLO RELAZIONALE. Introduzione

Algoritmi di progettazione di basi di dati relazionali e altre dipendenze

FORME NORMALI E NORMALIZZAZIONE

Decomposizioni di uno schema, Decomposizioni che preservano i dati (loss-less joins) Prof.ssa Rosalba Giugno

Organizzazione degli archivi

1. PRIME PROPRIETÀ 2

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

Progettaz. e sviluppo Data Base

Teoria degli insiemi

Convertitori numerici in Excel

Vincoli di integrità

Lezioni di Matematica 1 - I modulo

È fatta male? Perché? Come si può correggere?

19. Inclusioni tra spazi L p.

LABORATORIO di INFORMATICA

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

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

Progettazione concettuale

Corso di Calcolo Numerico

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

( x) ( x) 0. Equazioni irrazionali

Progettazione di Basi di Dati

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

Corrispondenze e funzioni

Traccia di soluzione dell esercizio del 25/1/2005

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

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse

Fasi del progetto ( 1 )

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Artifact Centric Business Processes (I)

Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Il modello relazionale dei dati e stato introdotto da Codd. nel 1970 (E.F. Codd, \A relational model of data for large

Introduzione ai database relazionali

BASE DI DATI: sicurezza. Informatica febbraio ASA

APPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1)

Esercizi sull Association Analysis

Gestione Voti Scolastici

IL MODELLO RELAZIONALE

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

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme

Ottimizzazione delle interrogazioni (parte I)

Il Modello Relazionale

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Esercitazione di Basi di Dati

REGOLAMENTO (UE) N. 1235/2011 DELLA COMMISSIONE

Progetto PI , passo A.1 versione del 14 febbraio 2007

Architettura MVC-2: i JavaBeans

Rappresentazione grafica di entità e attributi

Teoria dei Giochi. Anna Torre

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Approssimazione polinomiale di funzioni e dati

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

Sviluppata da: Lo Russo - Porcelli Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL.

Lezione 8. La macchina universale

I DATABASE Database relazionale

Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo

Gestione Turni. Introduzione

1 Applicazioni Lineari tra Spazi Vettoriali

INFORMATICA PER LE APPLICAZIONI ECONOMICHE PROF.SSA BICE CAVALLO

Parte 6. Applicazioni lineari

DIPARTIMENTO IMPIEGATO PROGETTO SEDE. (0,1) (1,1) DIREZIONE Cognome. Codice. Telefono (0,1) (1,N) AFFERENZA. Stipendio (0,N) Nome (1,1) Età

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

Lezione 1. Gli Insiemi. La nozione di insieme viene spesso utilizzata nella vita di tutti i giorni; si parla dell insieme:

Luigi Piroddi

Progettare una base di dati che permetta di gestire il problema descritto nel seguito, nei seguenti punti:

Esercizio 1 Dato il gioco ({1, 2, 3}, v) con v funzione caratteristica tale che:

Fasi di creazione di un programma

LE FUNZIONI A DUE VARIABILI

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

Basi di Dati e Microsoft Access

Algoritmi e Strutture Dati II: Parte B Anno Accademico Lezione 11

CALCOLO COMBINATORIO

Logaritmi ed esponenziali

Transcript:

Raffinamento dello schema e forme normali 1

Forme Normali Le forme normali consentono di valutare la qualità delle relazione Sono state proposte diverse forme normali che includono, in ordine di generalità: Prima forma normale Seconda forma normale Forma normale di Boyce-Codd Terza forma normale Il processo che consente di trasformare schemi in forma normale è detto di normalizzazione 2

I mali della ridondanza La ridondanza è alla base di diversi problemi associati agli schemi relazionali: memorizzazione ridondante, anomalie da inserimento/cancellazione/aggiornamento Vincoli di integrità, in particolare dipendenze funzionali, possono essere usate per identificare gli schemi con tali problemi e per suggerire raffinamenti Principale tecnica di raffinamento: decomposizione (sostituire ABCD con, diciamo, AB e BCD, oppure ACD e ABD) La decomposizione dovrebbe essere usata con giudizio: C è una ragione per decomporre una relazione? Che problemi causa (se ne causa) una decomposizione? 3

Dipendenze funzionali (DF) Una dipendenza funzionale X -> Y vale su una relazione R se, per ogni istanza ammissibile r di R: t1 r, t2 r, πx(t1) = πx (t2) implica πy(t1) = πy (t2) cioè, per ogni coppia di tuple in r, se i valori di X sono uguali, allora anche i valori di Y devono essere uguali (X e Y sono insiemi di attributi) Una DF è una affermazione su tutte le relazioni ammissibili Deve essere identificata in base alla semantica dell applicazione Data una istanza ammissibile r1 di R, possiamo controllare se essa viola qualche DF f, ma non possiamo dire se f vale su R! Dire che K è una chiave candidata per R significa che K -> E Però, K -> R non richiede che K sia minimale! 4

Dipendenze funzionali (DF) Se K è una chiave candidata per R, esiste una dipendenza funzionale tra K ed un qualunque altro attributo di R In altri termini le dipendenze funzionali generalizzano i vincoli di chiave Però, K -> R non richiede che K sia minimale! 5

Esempio: vincoli su un insieme di entità Consideriamo la relazione ottenuta da Imp_Ad_Ore Imp_Ad_Ore(cf, nome, parcheggio, esp, paga_oraria, ore_lavorate) Notazione: denoteremo questo schema di relazione elencandone gli attributi: CNPEOL Questo è realmente l insieme di attributi {C, N, P, E, O, L} A volte ci riferiremo a tutti gli attributi di una relazione usando il nome della relazione stessa (ad esempio, Imp_Ad_Ore per CNPEOL) Alcune DF su Imp_Ad_Ore: cf è la chiave: C -> CNPEOL esp determina paga_oraria: V -> O 6

Esempio (segue) Problemi dovuti a E -> O: Anomalia da aggiornamento: possiamo cambiare O solo nella prima tupla di CNPEOL? Anomalia da inserimento: che succede se vogliamo inserire un impiegato e non conosciamo la paga oraria per il suo livello? Anomalia da aggiornamento: se cancelliamo tutti gli impiegati di livello 5 perdiamo le informazioni sulla paga per il livello 5! Paghe Imp_A_Ore2 E O 8 10 5 7 C N P E L 123-22-3666 Attishoo 48 8 40 231-31-5368 Smiley 22 8 30 131-24-3650 Smethurst 35 5 30 434-26-3751 Guldu 35 5 32 612-67-4134 Madayan 35 8 40 C N P E O L 123-22-3666 Attishoo 48 8 10 40 231-31-5368 Smiley 22 8 10 30 131-24-3650 Smethurst 35 5 7 30 434-26-3751 Guldu 35 5 7 32 612-67-4134 Madayan 35 8 10 40 7

Ragionando sulle DF Date alcune DF, possiamo in genere inferire DF aggiuntive: Sia lo schema Lavoratori(cf,nome,pp,rid,dal) cf -> rid, rid -> pp implica cf -> pp Una DF f è implicata da un insieme di DF F se f vale ogni volta che valgono le DF in F F + = chiusura di F è l insieme di tutte le DF che sono implicate da F Assiomi di Armstrong (X, Y, Z sono insiemi di attributi): Riflessività: Se X Y, allora X-> Y Aumento: Se X -> Y, allora XZ -> YZ per ogni Z Transitività: Se X -> Y e Y -> Z, allora X -> Z Queste sono regole di inferenza corrette e complete per le DF 8

Ragionando sulle DF (segue) Coppia di regole addizionali (che seguono dagli Assiomi di Armstrong) Unione: Se X -> Y e X -> Z, allora X -> YZ Decomposizione: Se X -> YZ, allora X -> Y e X -> Z Esempio: Contratti(cid, fid, gid, did, pid, qta, val), e C è la chiave: C -> CFGDPQV Un progetto acquista ciascun pezzo usando un singolo contratto: GP->C Un reparto acquista al più un pezzo da un fornitore: FD -> P GP -> C, C -> CFGDPQV implica GP -> CFGDPQV FD -> P implica FDG -> GP FDG -> GP, GP -> CFGDPQV implica FDG -> CFGDPQV 9

Ragionando sulle DF (segue) Calcolare la chiusura di un insieme di DF può essere costoso (la dimensione della chiusura è esponenziale nel numero di attributi!) Tipicamente, vogliamo solo controllare se una data DF X -> Y è nella chiusura di un insieme di DF F. Un controllo efficiente: calcolare la chiusura dell attributo X (indicato con X + ) rispetto F: insieme di tutti gli attributi A tali che X -> A sia in F + c è un algoritmo in tempo lineare che lo calcola Controllare se Y è in X + F = {A -> B, B -> C, CD -> E} implica A -> E? Cioè, A -> E è nella chiusura F +? In maniera equivalente, è E in A +? 10

Forme normali Ritornando al raffinamento degli schemi, la prima domanda da porsi è se un raffinamento sia necessario Se una relazione è in una certa forma normale (BCNF, 3NF, etc) si sa che certi tipi di problemi sono evitati/minimizzati. Ciò può aiutarci a decidere se decomporre la relazione sia utile. Ruolo delle DF nel rilevare la ridondanza: Consideriamo una relazione R con 3 attributi, ABC. Non ci sono DF: non c è ridondanza È data A -> B: diverse tuple potrebbero avere lo stesso valore A, e se ciò si verifica, esse avranno tutte lo stesso valore B! 11

Forma normale di Boyce-Codd (BCNF) La relazione R con DF F è in BCNF se, per tutte le X -> A in F + A X (chiamata DF banale) oppure X contiene una chiave di R In altre parole, R è in BCNF se le sole DF non banali che valgono su R sono vincoli di chiave Non ci sono dipendenze in R che possano essere previste usando solo le DF Se ci vengono mostrate due tuple con dei valori uguali, non possiamo inferire il valore A in una tupla dal valore A dell altra Se la relazione di esempio è in BCNF, le 2 tuple devono essere identiche (poiché X è una chiave) X Y A x y1 a x y2? 12

Terza Forma Normale (3NF) Una relazione R con DF F è in 3NF se, per tutte le X -> A in F + A X (chiamata DF banale) oppure X contiene una chiave di R oppure A è parte di qualche chiave di R La minimalità di una chiave è cruciale nella terza condizione Se R è in BCNF, ovviamente è in 3NF Se R è in 3NF, qualche ridondanza è possibile. È un compromesso, usato quando la BCNF non è ottenibile (ad esempio, non c è una decomposizione buona, oppure per considerazioni relative alle prestazioni) Una decomposizione di R in una collezione di relazioni 3NF senzaperdita (che conservi le dipendenze) è sempre possibile 13

Decomposizione di uno schema di relazione Supponiamo che la relazione R contenga gli attributi A1... An. Una decomposizione di R consiste nella sostituzione di R con due o più relazioni tali che: Ciascun nuovo schema di relazione contiene un sottoinsieme degli attributi di R (e nessun attributo che non appartiene a R), e Ogni attributo di R appare come attributo di una delle nuove relazioni Intuitivamente, decomporre R significa che memorizzeremo istanze degli schemi di relazione prodotti dalla decomposizione, invece delle istanze di R Ad esempio, possiamo decomporre CNPEOL in CNPEL e EO 14

Decomposizione di esempio Le decomposizioni dovrebbero essere usate solo quando necessario CNPEOL ha DF C -> CNPEOL e E -> O La seconda DF causa la violazione della 3NF; valori O ripetutamente associati a valori di E. Il modo più facile per risolverla è creare una relazione EO per memorizzare queste associazioni, e rimuovere O dallo schema principale: cioè, decomporre CNPEOL in CNPEL e EO 15

Decomposizioni senza-perdita La decomposizione di R in X e Y è senza-perdita rispetto a un insieme di DF F se, per ogni istanza r che soddisfa F >< Πx(r) Πy(r) = r >< È sempre vero che r Πx(r) Πy(r) In generale, il contrario non è vero! Se lo è, la decomposizione è senza-perdita La definizione si estende facilmente a decomposizioni in 3 o più relazioni È essenziale che tutte le decomposizioni usate per risolvere la ridondanza siano senza-perdita! (Si evita il problema (2)) 16

Ancora sulla proprietà senza-perdita La decomposizione di R in X e Y è senzaperdita rispetto F se e solo se la chiusura di F contiene X Y -> X, oppure X Y -> Y In particolare: Se X Y = Se X -> Y vale su R la decomposizione di R in XY e R VY è senza-perdita A B C 1 2 3 4 5 6 7 2 8 A B C 1 2 3 4 5 6 7 2 8 1 2 8 7 2 3 A B 1 2 4 5 7 2 B C 2 3 5 6 2 8 17

Decomposizione in BCNF Consideriamo la relazione R con DF F. Se X -> Y viola la BCNF, si decompone R in R Y e XY Applicazioni ripetute di questa idea ci danno una collezione di relazioni che sono in BCNF; sono senza-perdita, e con garanzia di un termine Ad esempio, CFGDPQV, chiave C, GP -> C, FD -> P, G -> F Per risolvere FD -> P, decomponiamo in FDP, CFGDQV Per risolvere G -> F, decomponiamo CFGDQV in GF e CGDQV In generale, diverse dipendenze possono causare la violazione della BCNF. L ordine in cui le analizziamo può portare a insiemi di relazioni completamente diversi! 18

Raffinare uno schema ER Prima traduzione dello schema ER: Lavoratori(C, N, P, R, D) Reparto(R, B) Parcheggi associati ai lavoratori Supponiamo che a tutti i lavoratori di un reparto sia assegnato lo stesso parcheggio: R-> P Ridondanza; risolta da: Lavoratori2(C, N, R, D) Parcheggi_Rep(R, P) Miglioramento: Lavoratori2(C, N, R, D) Reparti(R, B, P) cf cf nome Impiegati nome Prima: Dopo: parcheggio dal Lavora_In dal rid rid budget Reparti budget parcheggio Impiegati Lavora_In Reparti 19

Riassunto del raffinamento di schema Se una relazione è in BCNF, è priva di ridondanze che possono essere determinate usando le DF. Quindi, cercare di garantire che tutte le relazioni siano in BCNF è una buona euristica Se una relazione non è in BCNF, possiamo provare a decomporla in una collezione di relazioni BCNF Dobbiamo considerare se tutte le DF sono conservate. Se una decomposizione in BCNF senza-perdita che conserva le dipendenze non è possibile (o non adatta, date le interrogazioni tipiche), dovremmo considerare una decomposizione in 3NF Le decomposizioni dovrebbero essere eseguite e/o riesaminate tenendo in conto i requisiti sulle prestazioni 20