Def 1: Dipendenza Funzionale 🟢
Dato uno schema relazionale
R
, una dipendenza funzionale suR
è una coppia orinata di sottoinsiemi non vuotiX
eY
diR
.Denominata attraverso , dove:
X
è il determinanteY
è il determinato
Def 1.1: Soddisfare Dipendenza Funzionale 🟢
Si dice che un istanza
r
diR
soddisfa la dipendenza funzionale se per ogni coppia di tuplet1
et2
abbiamo che:Se allora
oss: un istanza di
R
non un insieme di tuple, può essere vista come una tabella che rappresenta le relazione.
Def 1.2: Istanza Legale 🟢
Dati uno schema relazionale
R
e un insieme di dipendenze funzionaliF
.Un istanza
r
diR
si dice legale se soddisfa tutte le dipendenze funzionali inF
.
Def 1.3: Chiusura 🟢
Dato uno schema relazionale
R
e un insieme di dipendenze funzionaliF
suR
.La chiusura di
F
è denotata con ed indica l’insieme che sono soddisfatte da ogni istanza legale diR
oss: ( è contenuto da )
Def 2: Chiave 🟢
Dati un schema relazionale
R
ed un insieme di dipendenze funzionaliF
suR
.Un sottoinsieme
K
diR
si dice chiave se:
Per ogni sotto insieme
K'
sik
si ha che
Def 3: Attributo Primo e Super-chiave 🟢
Dati uno schema relazionale
R
e un insieme di dipendenze funzionaliF
.
- Un attributo
A
diR
si dice primo se appartiene ad una chiave diR
.- Un sottoinsieme
X
diR
si dice super-chiave se contiene una chiave diR
o alternativamente contiene determina tuttoR
(ovvero la sua chiusura è uguale adR
)
Def 4: Dipendenze Parziali e Transitive 🟢
Siano
R
uno schema relazionale eF
un insieme di dipendenze funzionali e una dipendenza con .La dipendenza si dice parziale se contemporaneamente:
A
non è primoX
è contenuto propriamente da una chiave (contenuto ma diverso)
oss: se non ci sono dipendenze parziali allora gli attributi che non fanno parte di una chiave sono determinati direttamente alle chiavi.
La dipendenza si dice transitiva se contemporaneamente:
A
non è primo- per ogni chiave
K
si ha cheX
non è contenuto interamente inK
e a sua voltaX
non contieneK
, ovvero:- non è contenuto in
K
- e (
X
non contiene nessuna chiave)
oss: Non abbiamo dipendenze transitive se gli attributi che non appartengono alla chiave, dipendono direttamente dalla chiave e non da altri attributi non chiave.
Def 5: Schema in 3NF 🟢
Sia
R
uno schema relazionale eF
un insieme di dipendenze funzionali suR
.
R
è in 3NF se per ogni dipendenza funzionale tale che si ha che:
X
è una superchiave, oppureA
è primo
Teo 1: 3NF = no parziali e no transitive 🟢
Sia
R
uno schema relazionale eF
un insieme di dipendenze funzionali suR
. Lo schemaR
è 3NF (terza forma normale) se e solo se non esistono dipendenze parziali o transitive.Obbiettivo dimostrare
Dimostrazione pare SE: ()
Se lo schema è in 3NF allora per ogni dipendenza abbiamo che è primo, oppure è super chiave:
- Se
A
è primo viene a mancare la condizione per avere dipendenze parziali e transitive- Se
A
non è primo alloraX
è superchiave, infatti:
- non possiamo avere dipendenze parziali in quanto l’
X
di quest’ultime deve essere contenuto da una chiave.- non possiamo avere dipendenze transitive in quanto l’
X
di quest’ultime non deve contenere alcuna chiave.Dimostrazione parte SOLO SE: ()
Se non abbiamo dipendenze parziali o transitive implica che per ogni dipendenza si ha che:
A
è primo, oppureX
superchiave, condizione che falsifica sia:- parziale, infatti se
X
superchiave alloraX
non è sotto insieme proprio diK
- transitiva, infatti se
X
superchiave allorak - X
è uguale aQuindi è in 3NF.
Chiusura 🟢
Denotiamo con l’insieme di dipendenze funzionali definito nel modo seguente:
- Assioma della Riflessività: ]
- Assioma dell’ Aumento:
- Assioma della Transività:
Gli ultimi tre sono detti assiomi di Armstrong, esistono altre 3 regole che possono essere derivate dagli assiomi di Armstrong che sono utili per determinare da dipendenze di altre dipendenze di :
- Regola dell’ Unione: Se e allora
- Regola della Decomposizione: Se e allora
- Regola della Pseudo-Transività: Se e allora
oss: L’insieme può essere ottenuto applicando ricorsivamente gli assiomi di Armstrong su l’insieme di dipendenze funzionali .
Teo 2: Regole derivate da Armstrong 🟢
Sia un insieme di dipendenze funzionali, allora su questo valgono le 3 regole viste precedentemente:
Dimostrazione:
Unione:
- Se allora per l’aumento si ha che .
- Analogamente se sempre per aumento si ha che
- Quindi dato che abbiamo ; per transitività possiamo dire che .
Decomposizione:
- Se allora per riflessività si ha che
- Quindi poiché e per transitività abbiamo che .
Pseudotransitività:
Se , per l’aumento possiamo dire che
Quindi poiché e per transitività abbiamo che .
oss: le tre regole sono:
- Regola dell’ Unione: Se e allora
- Regola della Decomposizione: Se e allora
- Regola della Pseudo-Transività: Se e allora
Def 6: 🟢
Siano
R
uno schema relazionale eF
un insieme di dipendenze funzionali suR
.Dato un sottoinsieme di
R
chiamatoX
. Denominiamo con la chiusura diX
rispettoF
, dove:Ovvero l’insieme degli attributi determinati da
X
.
Lemma 1 🟢
Siano
R
uno schema relazionale eF
un insieme di dipendenze funzionali suR
.Si ha che se e solo se
Dobbiamo dimostrare che .
Sia
Parte Se ()
Poiché per la regola della decomposizione abbiamo che per ogni
i
Questo significa che ogni è presente in q che quindi e quindi .
Parte Solo Se ()
Dato che , per ogni
i
si ha che pertanto per unione .
Teo 3: 🟢
Siano
R
uno schema di relazione edF
un insieme di dipendenze funzionali suR
. Si ha .Per dimostrare dobbiamo dimostrare che e che .
Dimostrazione:
Per calcolare si applicano ricorsivamente gli assiomi di Armstrong, dobbiamo dimostrare che ogni dipendenza funzionale ottenuta applichiamo un assioma di Armstrong sia presente anche in .
Questo può essere fatto per induzione, dove:
i
è il numero di applicazioni di uno degli assiomi di Armstrong.il caso base indica che non abbiamo applicato nessun assioma e che quindi contiene soltanto gli elementi in e banalmente anche contiene gli elementi in
l’Ipotesi induttiva indica che ogni dipendenza funzionale ottenuta a partire da applicando gli assiomi di Armstrong un numero di volte minore o uguale a
i–1
è in . Tre casi si possono presentare:1. ottenuta attraverso l’assioma della riflessività in tal caso .
Quindi date due tuple
t1
et2
tali chet1[X] = t2[X]
, banalmente si hat1[Y] = t2[Y]
.2. ottenuta applicando l’assioma dell’aumento ad una dipendenza , dove quindi e per qualche .
Sia
r
un istanza diR
e sianot1
et2
due tuple inr
tali chet1[X] = t2[X]
(ovverot1[VZ] = t2[VZ]
) si avrà chet1[V] = t2[V]
et1[Z] = t2[Z]
.Visto che per ipotesi induttiva allora possiamo dire che
t1[V] = t2[V]
porta ad averet1[W] = t2[W]
. Quindi otteniamo chet1[Y] = T2[Y]
(ovverot1[VZ] = t2[WZ]
).3. ottenuta applicando l’assioma della transitività su due dipendenze e appartenenti a :
Sia
r
un istanza diR
e sianot1
et2
due tuple inr
tali chet1[X] = t2[X]
.Per ipotesi induttiva le dipendenze e fanno parte di .
Grazie all’ipotesi induttiva si ha che
t1[X] = t2[X]
t1[Z] = t2[Z]
e chet1[Z] = t2[Z]
t1[Y] = t2[Y]
.Quindi per transitività .
Dimostrazione:
La dimostrazione è divisa in due parti.
La prima parte consiste nel dimostrare che esiste un istanza legale di di questo tipo:
Sia
r
un istanza legale e supponiamo per assurdo che la dipendenza funzionale non sia soddisfatta (quindir
sarebbe non legale).Questo implica che tutti le dipendenze in hanno uguali valori in
V
ed hanno diversi valori inW
ed in particolare che e .Poiché , per il Lemma 1 otteniamo che , e visto che e fanno parte di allora attraverso l’assioma della transitività possiamo dire che .
Se applichiamo il Lemma 1 su otteniamo che che contraddice dimostrando che non esistono dipendenze funzionali in
R
che non soddisfano .La seconda parte consiste nel dimostrare che se .
Supponiamo che
Abbiamo mostrato che
r
è un istanza legale che quindi soddisfa tutte le dipendenze di , compresa .Poiché le due tuple di
r
coincidono su gli attributiX
Poiché
r
soddisfa , allora le due tuple devono coincidere anche sugli attributi diY
.Questo implica che e, per il Lemma 1 otteniamo che
Algo 1 🟢
Prende come input uno schema
R
, un insiemeF
di dipendenze suR
e un sottoinsiemeX
diR
. Come output fornisce la chiusura diX
rispetto adF
all’interno della variabileZ
.
Teo 4: Dimostrazione Teo 4 🔴
L’algoritmo 1 calcola correttamente la chiusura di un insieme di attributi rispetto ad un insieme di dipendenze funzionali .
Dimostrazione:
Indichiamo con il valore iniziale di (ovvero ) e con ed , i valori di e alla i-esima iterazione.
oss: per ogni .
L’obbiettivo è dimostrare che esiste un tale che se e solo se , per fare ciò scomponiamo la dimostrazione in due parti:
- Dimostrazione di
- Dimostrazione di
Dimostrazione parte:
L’obiettivo è dimostrare per induzione su
i
che per ognii
, quindi:Ipotesi Induttiva: per ogni
i
.Base dell’induzione: la base è
i = 0
, poiché e , si ha cheInduzione:
Per ipotesi induttiva
Sia
A
un attributo in (ovvero un attributo aggiunto all’iterazionei
)Deve esistere una dipendenza tale che e .
Per il lemma 1 abbiamo che (visto che )
Poiché e , per transitività abbiamo che , quindi per il lemma 1 .
Visto che e , allora per ogni si ha che , e quindi si conferma l’ipotesi induttiva
Dimostrazione parte:
Questa dimostrazione si divide in altre due parti.
La prima parte consiste nel dimostrare che esiste una istanza legale di di questo tipo:
Sia
r
un istanza legale e supponiamo per assurdo che la dipendenza funzionale non sia soddisfatta (quindir
sarebbe non legale).Questo implica che tutti le dipendenze in hanno uguali valori in
V
ed hanno diversi valori inW
ed in particolare che e .Poiché , per il Lemma 1 otteniamo che , e visto che e fanno parte di allora attraverso l’assioma della transitività possiamo dire che .
Se applichiamo il Lemma 1 su otteniamo che che contraddice dimostrando che non esistono dipendenze funzionali in
R
che non soddisfano .
Def 7: Decomposizione 🟢
Sia
R
uno schema di relazione. Una decomposizione diR
è una famiglia di sottoinsiemi diR
che ricopreR
, ovvero tale che .
Def 8: Equivalenza tra insiemi di dipendenze funzionali 🟢
Siano e due insiemi di dipendenze funzionali. e si dicono equivalenti () se .
oss: verificare l’equivalenza richiederebbe tempo esponenziale dato che dovremmo calcolare che e anche , per questo possiamo utilizzare il Lemma 2.
Lemma 2 🟢
Siano e due insiemi di dipendenze funzionali, se allora .
Dimostrazione: Sia , poiché per il teorema 3
f
è derivabile faF
mediante gli assiomi di Armstrong e ogni dipendenza funzionale inF
è derivabile daG
mediante gli assiomi di armstrong,f
è derivabile daG
mediante gli assiomi di Armstrong.
Def 9: Decomposizione preserva F 🟢
Sia uno schema relazionale ed un insieme di dipendenze funzionali su .
Definiamo con una decomposizione di (ovvero )
Questa decomposizione si dice che preserva
R
se , dove:oss: Per verificare l’equivalenza tra e , dove , ci basta verificare che , infatti sappiamo essere vero per definizione.
Algo 2 🟡
Questo algoritmo richiede che venga calcolato ma noi non conosciamo quindi usiamo il prossimo algoritmo per calcolarlo (Algo 3).
Algo 3 🟡
Teorema 5 🔴
Sia
R
uno schema relazionale,F
un insiemi di dipendenze funzionali suR
e una decomposizione diR
eX
un sotto insieme diR
.L’algoritmo 3 calcola correttamente
Dimostrazione
Indichiamo con il valore iniziale di (ovvero ), ed in particolare con il valore di dopo l’i-esima iterazione dell’assegnazione .
Indichiamo con il valore di al termine dell algoritmo.
oss:
Def 10: Join senza perdita 🟢
Sia uno schema relazionale. Una decomposizione di di ha un join senza perdita se per ogni istanza legale di si ha
Teorema 6 🟢
Sia uno schema relazionale e una decomposizione di .
Per ogni istanza di , indichiamo con che ha queste 3 proprietà:
- , indica che il risultato del join potrebbe avere introdotto nuove tuple nelle tabella, portando a una perdita di informazioni. Il join si dice senza perdita se .
- , indica che se facciamo la proiezione di qualsiasi schema della decomposizione sul join, otteniamo lo stesso se effettuiamo la stessa proiezione sullo istanza originale
r
.
Algo 4: Tabella 🔴
Teorema 4: Dimostrazione Tabella 🔴
Def 11: Copertura minimale 🟢
Sia
F
un insieme di dipendenze funzionali, una copertura minimale diF
è un insiemeG
di dipendenze funzionali equivalente adF
tale che:
- Ogni dipendenza in
G
ha la parte destra singleton- Per nessuna dipendenza esiste un tale che
- Per nessuna dipendenza deve accadere .
Ovvero:
- (1) Si capisce daii
- (2) Gli attributi a sinistra non devono essere ridondanti non devono esistere dipendenze funzionali in
G
tali che se sostituiamo il determinante con un suo sotto insiemeG
rimane equivalente a prima.- (3) Le dipendenze funzionali non devono essere ridondanti ovvero non deve esistere una dipendenza in
G
che se rimossaG
rimane quivalente `
Algo 5:
Teorema 8
- Quando Istanza legale? →vuota solo elemento o rispetta definizione
- Algoritmi degli esercizi visti allo scritto
- definire chiusura di F
- Cosa troviamo in F^+
- Quali sono gli assiomi di Armstrong
- Quando una funzione di hash è buona
- Cosa’è una dipendenza banale
- Definizione di 3NF (fai attenzione a )
- Calcolare costo di ricerca medio su file hash, se ho due tabelle diverse la ricerca media vale sempre n/2
- Protocollo a due fasi (concorrenza)
- Quali sono i vantaggi dei due fasi (è serializzabile + dimostrazione)
- Quando uno scheduler è serializabile
- Quando uno scheduler è seriale
- Qual’è il metodo di controllo per vedere che uno scheduler è serializzabile
- Time stamps
Dimostrare la algoritmo della validità della chiusura di (ovvero )