Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Parte del materiale è tratto dal materiale preparato dalla prof.ssa Moscarini per il canale A-L
Cosa vogliamo ottenere
2
Cosa vogliamo ottenere
3
Utilità della chiusura X+
4
Come si calcola X+
end
Come si calcola X+
end
Vediamo che stiamo usando implicitamente FA
F= {AB->C, B->D, AD->E, CE->H}
R=ABCDEHL
Z=AB
S={C, D} AB->C in F , per inserire D AB->B (RIF) + B->D (in F) = AB->D (TRANS)
S ha qualcosa in più?
Z={A,B,C,D}
S={C,D,E } per inserire E AB->B (RIF) + B->D (in F) + AB->AD (AUM) + AD->E (in F) = AB->E (TRANS)
S ha qualcosa in più?
Z= ABCDE
S= CDEH per inserire H AB->C (in F) + AB->AD (AUM di B->D in F) + AD->E (in F) + AB->E (TRANS) +
AB->CE (UNIONE) + CE->H (in F) = AB -> H (TRANS)
S ha qualcosa in più?
Estendere la variabile Z da cui prendiamo i
Z= ABCDEH
determinanti nei cicli while successivi equivale ad
S=CDEH
applicare gli assiomi di Armstrong
S ha qualcosa in più?
Titolo Presentazione 19/11/2020 Pagina 7
STOP
L’algoritmo è corretto
1 1 … 1 1 1 … 1
r
1 1 … 1 0 0 … 0
10
Teorema
Z(j) R- Z(j)
1 1 … 1 1 1 … 1
r
1 1 … 1 0 0 … 0
Z(j) R- Z(j)
1 1 … 1 1 1 … 1
r
1 1 … 1 0 0 … 0
• Parte se (continua)
Z(j) R- Z(j)
1 1 … 1 1 1 … 1
r
1 1 … 1 0 0 … 0
15
R = (A, B, C, D, E, H) F = { AB CD, EH D, D H }
begin
Z:A;
S:LYV F LV YA= (A da solo non determina alcun altro
attributo)
controllo while (S Z ?): A quindi non entriamo nella prima iterazione
del while
end
A += A
16
R = (A, B, C, D, E, H) F = { AB CD, EH D, D H }
begin
Z:D;
S:LYV F LV YD= H (per la dipendenza D H )
controllo while (S Z ?): H D quindi entriamo nella prima iterazione del
while
begin (prima iterazione del while)
Z:ZS = D H = DH
S:LYV F LV YDH = H (per la dipendenza D H )
end
controllo while: H DH (non abbiamo aggiunto niente di nuovo)
usciamo dal while
end
D += DH
17
begin R = (A, B, C, D, E, H) F = { AB CD, EH D, D H }
Z:AB;
S:AYV F AV YAB= CD (per la dipendenza AB CD)=CD
controllo while (S Z ?): CD AB quindi entriamo nella prima iterazione del while
begin (prima iterazione del while)
Z:ZS = AB CD= ABCD
S:AYV F AV YABCD = {C, D (per la
dipendenza AB CD), H (per la dipendenza D H )}=CDH
end
controllo while: CDH ABCD (abbiamo aggiunto H, quindi entriamo nella seconda
iterazione)
begin (seconda iterazione del while)
Z:ZS = ABCD CDH = ABCDH
S:AYV F AV YABCDH = {C, D (per la dipendenza
AB CD), H (per la dipendenza D H )}=CDH
end
controllo while: CDH ABCDH (non abbiamo aggiunto nulla di nuovo)
usciamo dal while 18
end AB += ABCDH
Esercizio