Normalizzazione di schemi relazionali (Basi Dati)

jacopo35
Ciao a tutti.

Ho questo simpatico ( :-D ) esercizio da risolvere: dato lo schema di relazione R(A,B,C,D,E,F,G) con dipendenze GF->AE, GE->ACD, F->G trovare una copertura canonica.
Qualcuno riuscirebbe a fornirmi la soluzione ?

Risposte
codino75
non li ho mai sopportate ste formalizzazioni sulle basi di dati....roba da europei?

TomSawyer1
Invece io trovo che siano l'unica cosa matematicamente interessante delle basi di dati (noiose per definizione). Non la loro mera applicazione, si intende, dato che sono solo algoritmi, ma lo studio per rendere più efficiente il tutto.

Per la copertura canonica, devi prima spezzare tutti gli attributi a destra $GF \to A, GF \to E, GE \to A, GE \to C, GE \to D, F\to G$. Ora eliminare tutti gli attributi estranei, cioè $F \to A, F \to E,...$ (dato che $F \to G$); e infine eliminare le dipendenze transitive, cioè $F \to A$, dato che $F \to GE$ e $GE \to A$.

jacopo35
Quindi la copertura canonica è questa?

F->E, GE->A,GE->C,GE->D,F->G

TomSawyer1
Sì.

jacopo35
Ti ringrazio :D

jacopo35
Altro problema...questa volta si tratta di normalizzazione in BCNF, più precisamente l'algoritmo di analisi.

Esempio: Telefoni(Prefisso,Numero,Località,Abbonato,Via) con df PN -> LAV, L->P

L->P viola la BCNF, di conseguenza decompongo R in due schemi R1(L,P) e R2(L,N,A,V). Ora dovrei calcolare le proiezioni delle dipendenze di R su R1 e R2 e rifare il procedimento. Quello che non ho capito è come faccio a calcolarle. :?

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.