NORMALIZZAZIONE DI SCHEMI RELAZIONALI. Prof.ssa Rosalba Giugno



Documenti analoghi
DOMINI A FATTORIZZAZIONE UNICA

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

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

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

10. Insiemi non misurabili secondo Lebesgue.

1. PRIME PROPRIETÀ 2

Il principio di induzione e i numeri naturali.

Per lo svolgimento del corso risulta particolarmente utile considerare l insieme

Organizzazione degli archivi

Il Modello Relazionale

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

OGNI SPAZIO VETTORIALE HA BASE

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

Applicazioni lineari

Gestione Voti Scolastici

risulta (x) = 1 se x < 0.

Informatica (Basi di Dati)

Parte 6. Applicazioni lineari

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

BASI DI DATI DIPENDENZE FUNZIONALI E FORME NORMALI

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

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

Esercizi su lineare indipendenza e generatori

MODELLO RELAZIONALE. Introduzione

5. La teoria astratta della misura.

Decomposizione senza perdita. Decomposizione senza perdita. Conservazione delle dipendenze. Conservazione delle dipendenze

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

Vincoli di integrità

4. Operazioni binarie, gruppi e campi.

19. Inclusioni tra spazi L p.

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

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

Dimensione di uno Spazio vettoriale

Secondo Compitino di Basi di Dati

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

LEZIONE 31. B i : R n R. R m,n, x = (x 1,..., x n ). Allora sappiamo che è definita. j=1. a i,j x j.

Corrispondenze e funzioni

4 3 4 = 4 x x x 10 0 aaa

Parte 2. Determinante e matrice inversa

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

1 Applicazioni Lineari tra Spazi Vettoriali

1 Serie di Taylor di una funzione

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

Albero semantico. Albero che mette in corrispondenza ogni formula con tutte le sue possibili interpretazioni.

L anello dei polinomi

ALGEBRA I: CARDINALITÀ DI INSIEMI

FUNZIONI ELEMENTARI - ESERCIZI SVOLTI

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

STRUTTURE ALGEBRICHE

Matematica e Statistica

4. Operazioni elementari per righe e colonne

La funzione è continua nel suo dominio perchè y = f(x) è composizione di funzioni continue. Il punto x = 0 è un punto isolato per D f.

(anno accademico )

3 GRAFICI DI FUNZIONI

Basi di dati. Le funzionalità del sistema non vanno però ignorate

Introduzione Ordini parziali e Reticoli Punti fissi

Soluzioni del giornalino n. 16

Lezione 6. Divisibilità e divisori. Teorema di divisione euclidea. Algoritmo delle divisioni successive.

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010

Corso di Sistemi di Elaborazione delle Informazioni I Anno 2005/2006. Esercizi entità relazione risolti. a cura di Angela Campagnaro

Teoria degli insiemi

FORME NORMALI E DIPENDENZE

LA NORMALIZZAZIONE. Introduzione

Lezione 9: Cambio di base

Database. Si ringrazia Marco Bertini per le slides

Progettazione di Database. Un Esempio

Sui concetti di definizione, teorema e dimostrazione in didattica della matematica

x u v(p(x, fx) q(u, v)), e poi

Gli attributi di STUDENTE saranno: Matricola (chiave primaria), Cognome, Nome.

Lezioni di Matematica 1 - I modulo

Politecnico di Milano. Facoltà di Ingegneria Industriale. Corso di Analisi e Geometria 2. Sezione D-G. (Docente: Federico Lastaria).

Matematica 1 - Corso di Laurea in Ingegneria Meccanica

Anno 1. Le relazioni fondamentali (equivalenza, d'ordine, inverse, fra insiemi)

ESERCIZI APPLICAZIONI LINEARI

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

Esercizi sull Association Analysis

CALCOLO COMBINATORIO

L Ultimo Teorema di Fermat per n = 3 e n = 4

Parte 3. Rango e teorema di Rouché-Capelli

RETTE, PIANI, SFERE, CIRCONFERENZE

LE FUNZIONI A DUE VARIABILI

NOME:... MATRICOLA:... Scienza dei Media e della Comunicazione, A.A. 2007/2008 Analisi Matematica 1, Esame scritto del x 1.

Insiemi con un operazione

Determinare la grandezza della sottorete

Come visto precedentemente l equazione integro differenziale rappresentativa dell equilibrio elettrico di un circuito RLC è la seguente: 1 = (1)

Normalizzazione. Relazionali

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

Sulle funzioni di W 1,p (Ω) a traccia nulla

IGiochidiArchimede-SoluzioniBiennio 22 novembre 2006

EQUAZIONI DIFFERENZIALI. 1. Trovare tutte le soluzioni delle equazioni differenziali: (a) x = x 2 log t (d) x = e t x log x (e) y = y2 5y+6

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

Modulo 2 Data Base 2

database: modello entityrelationship

Trasformazioni Geometriche 1 Roberto Petroni, 2011

2.1 Definizione di applicazione lineare. Siano V e W due spazi vettoriali su R. Un applicazione

CORSO DI LAUREA IN INGEGNERIA.

Soluzioni del Certamen Mathematicum

Progettazione di Basi di Dati

Transcript:

NORMALIZZAZIONE DI SCHEMI RELAZIONALI Prof.ssa Rosalba Giugno

PROBLEMA GENERALE La progettazione concettuale e logica produce uno schema relazionale che rappresenta la realta dei dati nella nostra applicazione. E importante che questo schema abbia alcune importanti proprieta. Studieremo queste proprieta e daremo degli algoritmi per produrre schemi buoni. Anche se spesso accade che la progettazione logica da noi descritta produce schemi gia normalizzati. In ogni caso potremo usare queste tecniche per verificare le proprieta.

RIDONDANZE Il telefono e ripetuto per ogni esame (ridondanza) Matricola Nome Telefono Corso Voto IL Nome ed il Telefono sono funzione solo della Matricola e non dipendono dagli esami. Quindi non vanno associati ad ogni esame Viceversa gli esami hanno bisogno solo della matricola.

ANOMALIE Se il telefono dello studente cambia allora esso deve essere aggiornato in tutti i record dello studente (anomalia di aggiornamento) Se vengono annullati gli esami dati non rimane traccia dello studente (anomalia di cancellazione) Similmente se uno studente non ha ancora dato esami non puo essere inserito (anomalia di inserimento) Soluzione:decomporre in due relazioni!!

DIPENDENZE FUNZIONALI Dipendenza Funzionale e un particolare vincolo di integrita che esprime legami funzionali tra gli attributi di una relazione. Cosi ad esempio il valore di Matricola implica quelli di Nome e Telefono. Inoltre Matricola e Corso implicano il Voto. Matricola -----> Nome Telefono Matricola Corso ----> Voto

Definizione di Dipendenza Funzionale Sia R(A1,A2,,An) uno schema relazionale, X ed Y sottoinsiemi di {A1,A2,,An}. Diciamo che X implica funzionalmente Y, in simboli X--->Y se, per ogni relazione r dello schema R, se due tuple t1 e t2 di r coincidono su tutti gli attributi di X allora devono anche coincidere su tutti gli attributi di Y. Esempio : Matricola, Corso ---> Voto

NOTAZIONI A,B, attributi U,V,W,X,Y,Z insiemi di attributi R schema relazionale, r relazione. ABC sta per {A,B,C}, XY sta per X Y, XA e AX stanno per X {A}

Soddisfazione di Dipendenze Funzionali Diciamo che una relazione r soddisfa la dipendenza funzionale X---> Y se per ogni coppia di tuple t1 e t2 in r t1[x] = t2[x] implica t1[y] = t2[y].

Una Logica delle Dipendenze Funzionali : SEMANTICA Sia F un insieme di dipendenze funzionali per uno schema relazionale R e sia X--->Y una dipendenza funzionale. Diciamo che F logicamente implica X--->Y, e si scrive F == X--->Y, se per ogni relazione r di R che soddisfa tutte le dipendenze di F, r soddisfa anche X--->Y. Esempio: {A--->B,B--->C} == A--->C.

Chiusura di un insieme di dipendenze funzionali Dato un insieme F di dipendenze funzionali la sua chiusura F + e l insieme delle dipendenze funzionali che sono implicate logicamente da F, in simboli F + = {X--->Y F == X--->Y}.

Chiavi per uno schema con insieme di dipendenze funzionali Sia R(A1,A2,,An) uno schema, F un insieme di dipendenze funzionali su R ed X un sottoinsieme di {A1,A2,,An}. Si dice che X e una chiave di (R,F) se: X---> A1A2 An e in F +. Per ogni sottoinsieme proprio Y di X la dipendenza Y---> A1A2 An non e in F +.

Necessita di un Calcolo Logico Quindi il problema e quello di calcolare la chiusura di un insieme F di dipendenze funzionali. Per far cio definiamo un calcolo logico tale che F == X--->Y se e soltanto se X--->Y si puo sintatticamente dedurre da F nel calcolo logico. I punti di partenza e le regole del calcolo sono i seguenti:

Assiomi di Armstrong U={A1,A2,,An} Riflessivita Se Y X U allora F --- X--->Y Aumento Se F --- X--->Y allora F --- XZ--->YZ Transitivita Se F --- X--->Y e F --- Y--->Z allora F --- X--->Z Notazione X--->Y si deduce da F applicando gli assiomi di Armstrong F --- X--->Y

Deducibilita di dipendenze funzionali Diciamo che F --- X--->Y se X--->Y si puo dedurre da F applicando un numero finito di volte gli assiomi di Armstrong. Cioe esiste una catena D1,D2,,Dk= X--- >Y tale che Di e in F oppure si ottiene da precedenti mediante gli assiomi di Armstrong. Esempio {A--->B, B--->C, C--->D} - A--- >D (applicando 2 volte la transitivita )

Correttezza e Completezza Correttezza: Se F --- X---> Y allora F == X---> Y Completezza: Se F == X---> Y allora F --- X---> Y

Dimostrazione della Correttezza Basta dimostrare che gli assiomi di Armstrong sono corretti Riflessivita Se Y X U allora F == X--->Y Dimostrazione: se t1(x)=t2(x) allora ovviamente anche t1(y)=t2(y) perché ogni attributo di Y sta anche in X.

Correttezza dell Aumento Aumento Se F == X--->Y allora F == XZ--->YZ Dimostrazione: Supponiamo che r ==F allora, per ipotesi, r == X--->Y. Supponiamo che t1(xz)=t2(xz) allora t1(x)=t2(x) da cui segue, per ipotesi, t1(y)=t2(y) e quindi t1(yz)=t2(yz).

Transitivita Correttezza della TRANSITIVITA Se F == X--->Y e F == Y--->Z allora F == X--->Z Dimostrazione: Supponiamo che r ==F allora, per ipotesi, r == X--->Y e r == Y--->Z. Supponiamo che t1(x)=t2(x) allora per la prima t1(y)=t2(y) da cui per la seconda t1(z)=t2(z).

Correttezza Supponiamo che F --- X--->Y e sia D1,D2,,Dn= X--->Y la relativa catena. Procedendo per induzione, se Di e in F allora ovviamente F = Di. Se Di si ottiene da precedenti Dj mediante gli assiomi di Armstrong allora per l ipotesi induttiva F = Dj e per la correttezza dei singoli assiomi si ha F = Di. Segue F = Dn cioe F = X--->Y.

Prima di verificare la completezza degli assiomi di amstrong introduciamo altre regole per derivare dipendenze funzionali

Primo lemma preliminare: La regola di Decomposizione Se F --- X--->Y e Z Y allora F --- X--->Z Dimostrazione: Se F ---X--->Y e Z Y allora per riflessivita F --- Y--->Z da cui per transitivita si ottiene F --- X--->Z.

Secondo lemma preliminare: La Regola dell Unione Se F --- X--->Y e F --- X--->Z allora F --- X--->YZ Dimostrazione: Se F ---X--->Y e F --- X--->Z aumentando la prima di X e la seconda di Y si ha F --- X--->XY e F --- XY--->YZ che per transitivita implicano F --- X--->YZ.

Terzo lemma preliminare: La Regola di pseudotransitivita Se F --- X--->Y e F --- WY--->Z allora F --- WX--->Z Dimostrazione: Se F ---X--->Y e F --- WY--->Z aumentando la prima di W e si ha F --- WX--->WY e F --- WY--->Z che per transitivita implicano F --- WX--->Z.

Chiusura di un insieme funzionale La chiusura di un insieme funzionale F + e un lavoro che consuma molto tempo perche F + puo essere molto grande anche se F e piccolo.

Lemma Fondamentale Definiamo X F + = {A F --- X--->A}. Ometteremo l indice F quando non c e ambiguita e scriveremo semplicemente X +. LEMMA. F --- X--->Y se e solo se Y X +. Dimostrazione: Sia Y=A1A2 An e supponiamo che Y X +. Allora per definizione F --- X--->Ai per ogni i = 1,2,,n. Da questa per la regola dell unione si ha F --- X--->Y. Viceversa se F --- X--->Y allora per la regola di decomposizione si ha F --- X--->Ai per ogni i = 1,2,,n, e quindi Y X +.

Dimostrazione di Completezza degli Assiomi di Armstrong Dobbiamo dimostrare che se F ==X--->Y allora F --- X---> Y. Basta far vedere che se non F --- X---> Y allora non F == X---> Y. Infatti supponiamo che non F --- X---> Y allora per il lemma Y X + e Y X +. Allora e possibile considerare la relazione r dello stesso schema fatta dalle due tuple t1 e t2 t1=1 1 1 1 1.1, t2=1 1 1 0 0.0 X + not X + X + not X +

Facciamo vedere che r soddisfa tutte le dipendenze di F. Infatti, supponiamo che ci sia una V--->W in F tale che r non la soddisfa. Questo vuol dire che t1 e t2 coincidono su V ma non su W. Questo vuol dire che V X + e W X +. Per il lemma segue che F ---X--- >V che assieme a F --- V--->W per transitivita da F ---X---> W che contraddice W X +. Quindi r soddisfa tutte le dipendenze di F. Tuttavia r non soddisfa X--->Y. Infatti t1(x)=t2(x) ma t1(y) t2(y) poiche Y X + in quanto, per ipotesi, non F --- X--->Y. Quindi non F == X--->Y, che conclude la dimostrazione di completezza.

Chiusure,Equivalenze e Ricoprimenti Minimi Prof.ssa Rosalba Giugno

Calcolo delle Chiusure Ricordiamo che F + = {X--->Y F == X--->Y}. Il calcolo puo essere molto costoso in quanto ad esempio se F= {A--->B1,A--->B2,,A--->Bn} allora F + include A--->Y per ogni Y sottoinsieme di {B1,B2,,Bn}. Quindi ha cardinalita almeno 2 n.

Chiusura di un insieme di Facciamo vedere invece come e possibile un calcolo efficace di X + = {A F == X--->A}. attributi Il calcolo avviene attraverso il seguente Algoritmo

Algoritmo per X + X (0) <--- X (inizializzazione) X (j+1) <--- X (j) {A esiste Y--->Z in F A in Z e Y X (j) } Sia i il minimo indice tale che X (i) = X (i+1) = X (i+2) =.. Allora X + = X (i).

Correttezza dell algoritmo Dimostriamo per induzione su j che X (j) X + per ogni j. Infatti X (0) = X X +. Inoltre supponiamo che X (j) X +, allora X (j+1) <--- X (j) {A esiste Y--->Z in F A in Z e Y X (j) } Consideriamo Y X (j) X + con Y--->Z in F e A in Z. Allora F == X--->Y e F == Y--->Z da cui per transitivita F == X- -->Z, per la riflessivita Z- A, per transitivita X A, per cui A e in X + che implica X (j+1) X +.

Viceversa Viceversa supponiamo che A e in X + e facciamo vedere che A e in X (i) dove i e il minimo indice tale che X (i) = X (i+1). Infatti supponiamo per assurdo che A non appartenga a X (i) e consideriamo la relazione r fatta dalle due tuple t1=1 1 1 1 1.1, t2=1 1 1 0 0.0 X (i) not X (i) X (i) not X (i)

Dimostriamo che r soddisfa F. Infatti supponiamo che esista una V--->W in F tale che r non la soddisfa. Questo vuol dire che t1 e t2 coincidono su V ma non su W. Questo vuol dire che V X (i) e W X (i). D altra parte W X (i+1) in quanto essendo V in X (i) applicando la dipendenza funzionale V--->W potremmo aggiungere W in X (i+1). Quindi X (i) e diverso da X (i+1) che contraddice X (i) = X (i+1). Quindi r soddisfa tutte le dipendenze di F. Poiche A e in X + allora F ==X--->A. Quindi r deve soddisfare X--->A. Ma cio e assurdo poiche t1(x)=t2(x) in quanto X (0) X (i),ma t1(a) t2(a) poiche A non e in X (i). Quindi X (i) = X +. Questo conclude la dimostrazione di correttezza.

Equivalenze di dipendenze funzionali Siano F,G insiemi di dipendenze funzionali allora diciamo che sono equivalenti se F + = G +. La relazione di equivalenza tra insiemi di dipendenza ci permette di capire quando due schemi di relazione rappresentano gli stessi fatti: basta controllare che gli attributi sono uguali e hanno le stesse dipendenze. L algoritmo e il seguente:

Algoritmo di equivalenza Per ogni Y--->Z in F controlliamo se essa e in G + calcolando Y G + e controllando se Z Y G +.Questo implica F + G +. Viceversa in maniera analoga si puo controllare se G + F +.

Insiemi di Dipendenze Minimali Un insieme di dipendenze funzionali F e minimale se: 1. Ogni lato destro di una dipendenza e un singolo attributo. 2. Per ogni dipendenza X--->A in F, F - {X--->A} non e equivalente a F 3. Per ogni X--->A in F e Z e un sottoinsieme proprio di X, F - {X--->A} {Z--->A} non e equivalente a F La regola 2 garantisce che nessuna dipendenza in F e ridondante. La regola 3 garantisce che nessun attributo in qualunque primo membro sia ridondante.

Ricoprimenti Minimali Dato F si dice che G e un suo ricoprimento minimale se G e minimale ed e equivalente a F. TEOREMA: Ogni insieme di dipendenze funzionali ha un ricoprimento minimale

Dimostrazione del teorema del ricoprimento minimale Dato l insieme F costruiamo un insieme F ad esso equivalente con la proprieta 1 (Ogni lato destro di una dipendenza e un singolo attributo). Per garantire la proprieta 2 (Per ogni dipendenza X--->A in F, F - {X--->A} non e equivalente a F). Basta cancellare ogni dipendenza X--->A che non soddisfa 2. Analogamente se esiste una regola che non soddisfa la 3 (Per ogni X--->A in F e Z e un sottoinsieme proprio di X, F - {X--->A} {Z--->A} non e equivalente a F ), si accorcia e si continua il processo che avra termine ottenendo il ricoprimento minimale. Si puo dimostrare che basta applicare la regola 3. E solo alla fine la 2. Ma non viceversa!!