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



Documenti analoghi
NORMALIZZAZIONE DI SCHEMI RELAZIONALI. Prof.ssa Rosalba Giugno

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

Normalizzazione. Relazionali

Dimensione di uno Spazio vettoriale

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

10. Insiemi non misurabili secondo Lebesgue.

BASI DI DATI DIPENDENZE FUNZIONALI E FORME NORMALI

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

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

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

DOMINI A FATTORIZZAZIONE UNICA

LA NORMALIZZAZIONE. Introduzione

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

FORME NORMALI E DIPENDENZE

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

RETTE, PIANI, SFERE, CIRCONFERENZE

Teoria dei Giochi. Anna Torre

A i è un aperto in E. i=1

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

1. PRIME PROPRIETÀ 2

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

ESERCIZI APPLICAZIONI LINEARI

Applicazioni lineari

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

VC-dimension: Esempio

(anno accademico )

Note su quicksort per ASD (DRAFT)

Esercizi su lineare indipendenza e generatori

Esempi di algoritmi. Lezione III

1 Giochi a due, con informazione perfetta e somma zero

Matematica generale CTF

Prodotto elemento per elemento, NON righe per colonne Unione: M R S

I sottoinsiemi di un insieme e il triangolo di Tartaglia

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

3 GRAFICI DI FUNZIONI

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

Secondo Compitino di Basi di Dati

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

4. Operazioni elementari per righe e colonne

Rette e piani con le matrici e i determinanti

Algoritmi di progettazione di basi di dati relazionali e altre dipendenze

Per lo svolgimento del corso risulta particolarmente utile considerare l insieme

Luigi Piroddi

1 Applicazioni Lineari tra Spazi Vettoriali

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

RELAZIONI BINARIE. Proprietà delle relazioni Data una relazione R, definita in un insieme non vuoto U, si hanno le seguenti proprietà :

APPLICAZIONI LINEARI

STRUTTURE ALGEBRICHE

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

4. Operazioni binarie, gruppi e campi.

Normalizzazione (Codd, 1972)

Parte 2. Determinante e matrice inversa

Introduzione Ordini parziali e Reticoli Punti fissi

ESERCIZI DI ALGEBRA LINEARE E GEOMETRIA

Plate Locator Riconoscimento Automatico di Targhe

Alcuni complementi sulle successioni

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

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

Anello commutativo. Un anello è commutativo se il prodotto è commutativo.

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

Lezione 9: Cambio di base

CORSO DI LAUREA IN INGEGNERIA.

( x) ( x) 0. Equazioni irrazionali

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

Esercitazione Informatica I AA Nicola Paoletti

Convertitori numerici in Excel

Moto uniforme sul toro bidimensionale

Matematica generale CTF

5. La teoria astratta della misura.

Il principio di induzione e i numeri naturali.

Capitolo 13: L offerta dell impresa e il surplus del produttore

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.

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

Algebra e Logica Matematica. Calcolo delle proposizioni Logica del primo ordine

Derivate Limiti e funzioni continue

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

risulta (x) = 1 se x < 0.

19. Inclusioni tra spazi L p.

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

Esercizi sull Association Analysis

Dipendenza dai dati iniziali

15 febbraio Soluzione esame di geometria - 12 crediti Ingegneria gestionale - a.a COGNOME... NOME... N. MATRICOLA...

OGNI SPAZIO VETTORIALE HA BASE

Algoritmi e strutture dati. Codici di Huffman

Insiemi di livello e limiti in più variabili

Rette e curve, piani e superfici

Lezioni di Algebra Lineare III. Applicazioni lineari e matrici Struttura algebrica delle soluzioni dei sistemi lineari

Corrispondenze e funzioni

8.9 CREARE UNA TABELLA PIVOT

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

Esercizi su. Funzioni

Esercizi per il corso di Algoritmi e Strutture Dati

FUNZIONI ELEMENTARI - ESERCIZI SVOLTI

Teoria degli insiemi

Corso di Laurea in Scienze della Formazione Primaria Università di Genova MATEMATICA Il

Matematica in laboratorio

LEZIONE 14. a 1,1 v 1 + a 1,2 v 2 + a 1,3 v a 1,n 1 v n 1 + a 1,n v n = w 1

4 3 4 = 4 x x x 10 0 aaa

Matematica e Statistica

Transcript:

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

Decomposizione di uno schema Dato uno schema relazionale R={A1,A2, An} una sua decomposizione e un insieme d ={R1,R2, Rk} di sottoinsiemi di R tali che: R= R1 R2 Rk.

ESEMPIO Consideriamo lo schema StudentiEsamiCorsi={Matricola,Nome,Indirizzo, Telefono,Corso,Professore,Voto} L insieme d={anagrafe,esami,corsi} con Anagrafe={Matricola,Nome,Indirizzo,Telefono} Esami={Matricola,Corso,Voto} Corsi={Corso,Professore} e una sua decomposizione.

Preservazione dei dati Ovviamente decomporre lo schema iniziale comporta il vantaggio di evitare ridondanze nella rappresentazione. Inoltre nell esempio considerato per ritrovare i dati dello schema iniziale basta considerare la giunzione naturale degli elementi della decomposizione. Questa proprieta della decomposizione si chiama preservazione dei dati(loss-less joins)

Decomposizioni che preservano i dati (loss-less joins) Dato uno schema R con un insieme F di dipendenze funzionali, una sua decomposizione d={r1,r2,,rk} si dice che preserva i dati (o che ha loss-less joins) se per ogni relazione r di R che soddisfa tutte le dipendenze di F si ha: r = π R1 (r) π R2 (r)... π Rk (r)

Nota sulla decomposizione Siano R,F e d come sopra. E sia m d (r)= π R1 (r) π R2 (r)... π Rk (r) allora r m d (r). ma m d (r) r non e sempre vero. Infatti basta considerare il seguente esempio

Decomposizione che non preserva i dati Sia R={A,B,C}, R1={A,B}, R2={B,C}, e sia r={a1b1c1,a2b1c2}. Allora π R1 (r) ={a1b1,a2b1}, π R2 (r) ={b1c1,b1c2} e a1b1c2 appartiene a m d (r) ma non appartiene ad r. Quindi la decomposizione non preserva i dati

Algoritmo per controllare se una decomposizione preserva i dati Input: R={A1,A2,,An}, F, d={r1,r2, Rk} Output: Yes/No se d preserva i dati. INIZIALIZZAZIONE:Consideriamo una matrice M {R1,R2, Rk}X {A1,A2,,An} dove nell elemento RiAj mettiamo aj se Aj e in Ri altrimenti mettiamo bij.

Passo Iterativo ITERAZIONE :Applichiamo finche e possibile ogni dipendenza X--->Y in F nel seguente modo: se esistono due righe di M che coincidono su X allora facciamole coincidere anche in Y nel senso che se ho uno dei due aj allora cambiamo l altro (bij) in aj; altrimenti prendiamo uno dei due e lo facciamo uguale all altro.

Test Finale Se durante il passo precedente si produce la riga a1a2 an allora rispondi YES (La decomposizione preserva i dati) Altrimenti rispondi NO (La decomposizione non preserva i dati)

Esempio R={A,B,C,D}, F={A--->B} R1={A,B}, R2={A,C,D} La matrice M e A B C D R1 a1 a2 b13 b14 R2 a1 b22 a3 a4 Applicando A--->B si ottiene

continua A B C D R1 a1 a2 b13 b14 R2 a1 a2 a3 a4 Quindi la decomposizione conserva i dati

Esempio negativo R={A,B,C,D}, F={A--->C} R1={A,B}, R2={A,C,D} La matrice M e A B C D R1 a1 a2 b13 b14 R2 a1 b22 a3 a4 Applicando A--->C si ottiene

continua A B C D R1 a1 a2 a3 b14 R2 a1 b22 a3 a4 Non si puo applicare nessun altra dipendenza : quindi NON preserva i dati Infatti la relazione r={a1a2a3b14,a1b22a3a4}soddisfa F π R1 (r) ={a1a2,a1b22}, π R2 (r)={a1a3b14,a1a3a4}, l elemento a1a2a3a4 sta in m d (r) ma non sta in r.

Un caso particolare Se d={r1,r2} e una decomposizione di R con dipendenze F. Allora d preserva i dati se e solo se F ---R1 R2 ---> R1-R2 oppure F --- R1 R2 ---> R2-R1 Dimostrazione: La tabella iniziale e R1 R2 R1-R2 R2-R1 R1 aa a aa a bb b R2 aa a bb b aa a

Dimostrazione Osserviamo che si forma la riga tutta a a se e solo se F ---R1 R2 ---> R1-R2 (si forma la seconda riga di a a) oppure F ---R1 R2 ---> R2-R1 (si forma la prima riga di a a).

Esempio positivo R={A,B,C,D}, F={A--->B} R1={A,B}, R2={A,C,D} R1 R2={A} ; R1-R2={B} Ovviamente F --- A--->B quindi la decomposizione preserva i dati

Esempio negativo R={A,B,C,D}, F={A--->C} R1={A,B}, R2={A,C,D} R1 R2={A} ; R1-R2={B}; R2-R1={C,D} Poiche ne B ne D appartengono a A + allora non e ne F ---R1 R2 ---> R1-R2 ne F ---R1 R2 ---> R2-R1 quindi la decomposizione non preserva i dati.

Decomposizioni che conservano le dipendenze funzionali Prof.ssa Rosalba Giugno

Conservazione delle Dipendenze La proiezione π Z (F) di F su un insieme Z di attributi e l insieme delle dipendenze X--> Y appartenenti a F + tali che XY Z Dato uno schema relazionale R, F ed una sua decomposizione d ={R1,R2, Rk} si dice che essa conserva le dipendenze funzionali se F e implicata logicamente dall unione delle proiezioni π Ri (F) di F sugli R i.

Decomposizione che preserva i dati ma non le dipendenze funzionali Consideriamo lo schema R(C,S,Z) che ci dice che nella citta C c e un palazzo all indirizzo S con codice postale Z. Valgono le dipendenze F={CS-->Z, Z-->C}. La decomposizione di R (SZ,CZ) preserva i dati perche F --- SZ CZ = Z ---> (CZ - SZ) = C, tuttavia non preserva la dipendenze funzionali infatti: π SZ (F) e vuoto e π CZ (F) = {Z--->C} ed essi non implicano CS--->Z.

Algoritmo per controllare se una decomposizione preserva le dipendenze funzionali Input: R={A1,A2,,An}, F, d={r1,r2, Rk} Output: Yes/No se d preserva F. IDEA DELL ALGORITMO: Sia G= i=1.,,k π Ri (F).Dobbiamo provare che G e equivalente ad F (senza calcolare G).Basta provare che per ogni X--->Y in F, Y e contenuto in X + calcolato rispetto a G. Per questo calcolo basta fare la chiusura di X rispetto alle varie proiezioni di F sulle R i.

FORME NORMALI Uno schema relazionale R con dipendenze F si dice in Forma Normale di Boyce-Codd (BCNF) se per ogni X--->A di F +, se A non appartiene ad X allora X e una superchiave di R, cioe e o contiene una chiave. Si puo dimostrare che se tutte le dipendenze di F sono del tipo X--->A (F sia minimale), allora basta verificare la suddetta proprieta solo per gli elementi di F e non di F +.

Esempio Consideriamo lo schema R(C,S,Z) con dipendenze CS--->Z e Z--- >C. Le chiavi sono CS e ZS. Tuttavia Z--->C non soddisfa la proprieta perche Z non e una superchiave, quindi non e in BCNF.

TERZA FORMA NORMALE Uno schema relazionale R con dipendenze F si dice in Terza Forma Normale (3NF) se per ogni X--->A di F +, se A non appartiene ad X allora o X e una superchiave di R oppure A e primo, cioe appartiene a qualche chiave. Si puo dimostrare che se tutte le dipendenze di F sono del tipo X--->A, allora basta verificare la suddetta proprieta solo per gli elementi di F e non di F +.

Esempio Consideriamo lo schema R(C,S,Z) con dipendenze CS--->Z e Z--->C. Le chiavi sono CS e ZS. Abbiamo gia osservato che non e in BCNF. Tuttavia essa e in 3NF infatti, nella dipendenza Z--->C, Z non e una superchiave, tuttavia C e primo perche e elemento della chiave CS.

Perche la BCNF? Lo scopo delle BCNF e eliminare ridondanze causate dalle dipendenze.infatti supponiamo che R sia in BCNF e supponiamo per assurdo che possiamo predire il valore di un attributo da qualche dipendenza (QUINDI CHE CI SIA RIDONDANZA). Quindi avremmo una situazione del tipo: con y diversa da z X Y A -------------------- x y a x z? Dove possiamo dedurre che?=a. Questo implica che per qualche Z X vale la dipendenza Z--->A. Tuttavia poiche R e in BCNF allora Z e una superchiave cosi come X. Ma questo implicherebbe y=z che contraddice l assunzione che le due tuple sono distinte. Assurdo!

E la 3NF? Consideriamo lo schema CSZ con le dipendenze CS--->Z e Z--->C. Che e in 3NF ma non in BCNF. Allora da C S Z -------------------- c s z? t z con s diversa da t. Si puo dedurre che?=c perche Z--->C. Quindi ci possono essere ridondanze dovute a dipendenze

E possibile avere tutto? E possibile avere decomposizioni che preservano i dati o le dipendenze ed in cui tutte le componenti sono in forma normale? SI per conservazione dei dati e BCNF SI per conservazione dei dati e delle dipendenze e 3NF. NO per la conservazione delle dipendenze e BCNF

Algoritmo per BCNF:alcuni lemmi preliminari Lemma 1. Sia R uno schema con dipendenze F e sia d={r1,r2, Rk} una decomposizione che preserva i dati rispetto a F, e sia d ={S1,S2}una decomposizione di R1 che preserva i dati rispetto a π R1 (F).Allora la decomposizione di R d ={S1,S2,R2, Rk} preserva i dati rispetto a F.

Lemma 2. Algoritmo per BCNF:alcuni lemmi preliminari a) Ogni schema R con due attributi e in BCNF b) Se R non e in BCNF allora esistono due attributi A,B tali che (R-AB) A.

Algoritmo per BCNF:alcuni lemmi preliminari Lemma 3. Dati R,F, se proiettiamo su R1 R ottenendo F1, e successivamente proiettiamo su R2 R1 ottenendo F2, allora si ha che F2 = π R2 (F).

Decomposizioni che preservano i dati con componenti in BCNF INPUT: Schema R e dipendenze F OUTPUT: Decomposizione che preserva i dati tale che ogni componente sia in BCNF rispetto alla proiezione di F su quella componente. L idea dell algoritmo e quello di decomporre R in due schemi: uno XA in BCNF, dove vale X--->A; il secondo R-A tali che (R-A,XA) preserva i dati. Si riparte da R-A, si calcola la proiezione di F (tale step causa la esponenzialita del calcolo) su tale schema e si continua come sopra fino a quando ci si riduce a due soli attributi,quando,per il Lemma2, e senz altro in BCNF. La decomposizione trovata non e l unica, dipende dall ordine con cui vengono analizzate le dipendenze

Sfortunatamente non e possibile prevedere pregi e difetti delle scomposizioni che si ottongono.

Preservazione delle dipendenze e 3NF Input: R,F con F ricoprimento minimale Output: Una decomposizione di R che conserva le dipendenze e tale che ogni suo elemento e in 3NF.

ALGORITMO Se ci sono attributi non presenti in F essi possono essere raggruppati in un solo schema ed eliminati. Se una dipendenza di F coinvolge tutti gli attributi di R, allora ritorna (R). Altrimenti ritorna la decomposizione fatta da tutti gli XA tali che X--->A appartiene ad F.

Osservazione e raffinamento In effetti se ho le dipendenze X--->A1,., X--->An, invece delle componenti XA1,,XAn basta mettere la sola componente XA1 An. Essa infatti non solo conserva le dipendenze ma e anche in 3NF perche X e una chiave

Preservare dati+dipendenze+3nf Partiamo da una decomposizione R = (R1,R2, Rk) che preserva le dipendenze e tale che ogni Ri e in 3NF rispetto alla proiezione di F su Ri. E sia X una chiave per R Allora (R1,R2, Rk,X) preserva i dati e le dipendenze ed ogni suo elemento e in 3NF

Correttezza Infatti che X sia in 3NF e ovvio, una chiave ogni elemento e primo. Ovviamente (R1,.,Rn,X) conserva le dipendenze perche questo e gia vero per (R1,,Rn).Infine per vedere che preserva i dati basta applicare l algoritmo della matrice e vedere che la riga di X diviene a1,a2,,an.infatti poiche X e una chiave F -- X--->Am come conseguenza delle proiezioni di F sulle componenti.per ogni Am non in X per cui bm prima o poi diventa am.