Aiuto BCNF
Avendo $(A,B,C,D,E,F)$ devo portare in BoyceCod Normal Form $F=(A->C;BF->E;D->B;B->D)$
Mi riusulta $R1=(AC{A->C}),R2=(BFE{BF->E})$
Poi mi ritrovo con $(ABDF{D->B;B->D})$ con chiavi $AB,AD$.Dato che non sono in BCFN scompongo ulteriormente in $R3=(BD{D->B;B->D})$ e qui non capisco quale è la chiave,è possibile che non ci sia?
Io ho provato ha risolvere l'esercizio mettendo come soluzione in BCNF $R1,R2,R3$,ma non sono perniente sicuro di aver fatto bene $R3$,,qulacuno può darmi una mano?
Mi riusulta $R1=(AC{A->C}),R2=(BFE{BF->E})$
Poi mi ritrovo con $(ABDF{D->B;B->D})$ con chiavi $AB,AD$.Dato che non sono in BCFN scompongo ulteriormente in $R3=(BD{D->B;B->D})$ e qui non capisco quale è la chiave,è possibile che non ci sia?
Io ho provato ha risolvere l'esercizio mettendo come soluzione in BCNF $R1,R2,R3$,ma non sono perniente sicuro di aver fatto bene $R3$,,qulacuno può darmi una mano?
Risposte
Nessuno sà darmi una mano?
Direi che se $B$ referenzia $D$ e viceversa, la chiave è equivalentemente $B$, $D$ o $BD$.
Da' anche un'occhiata a questo:
http://www-home.htwg-konstanz.de/~waesc ... alizer.htm
Da' anche un'occhiata a questo:
http://www-home.htwg-konstanz.de/~waesc ... alizer.htm
Da' anche un'occhiata a questo:
http://www-home.htwg-konstanz.de/~waesc ... alizer.htm
Purtroppo non riesco ad utilizzare il programma consigliato...
Ho svolto questo esercizio:
$F=(A->D,A->B,B->C,C->B) R=(A,B,C,D)$
Io l'ho scomposto in BCNF così $R1=(BC{B->C,C->B})$ ed $R2=(AD{A->D}).$
però ho visto che la soluzione è $R1=(BC),R2=(A,D,C)$,io non capisco perchè $C$ compare anche in $R2$...
Riassumendo ho dei dubbi quando durante la trasposizione in BCNF quando mi trovo in situazioni tipo $(AB{A->B,B->A})$.Se ho capito bene considero sia $A$ che $B$ chiavi.Però nel caso avessi $F=(A,B,C,D,E)$ e mi trovassi in una situazione come quella appena descritta,mi ritroverei con $R1=(AB{A->B,B->A})$ e $R2=(CDE{.....})$,o invece risulta $R2=(BCDE{...})$

ciao vorrei tanto aiutarti ma sono qlc passo dietro....vedo che tu già sai applicare i passi dell'algoritmo per la decomposizione in bcnf. una volta individuate le dipendenz funzionali che non rispettano la bcnf cosa bisogna fare precisamente?potresti aiutarmi?grazie mille
@One:
Da quanto ricordo ci sono almeno due algoritmi di scomposizione in BCNF. Quello che utilizzi è questo: ftp://ftp.disi.unige.it/person/Guerrini ... 1/norm.pdf? v. slide 56
Da quanto ricordo ci sono almeno due algoritmi di scomposizione in BCNF. Quello che utilizzi è questo: ftp://ftp.disi.unige.it/person/Guerrini ... 1/norm.pdf? v. slide 56
"hamming_burst":
@One:
Da quanto ricordo ci sono almeno due algoritmi di scomposizione in BCNF. Quello che utilizzi è questo: ftp://ftp.disi.unige.it/person/Guerrini ... 1/norm.pdf? v. slide 56
sembrano fatte molto bene le slides del link che hai postato...proverò a capire il funzionamento dell'algoritmo da lì! thanks
"lady5":
[quote="hamming_burst"]@One:
Da quanto ricordo ci sono almeno due algoritmi di scomposizione in BCNF. Quello che utilizzi è questo: ftp://ftp.disi.unige.it/person/Guerrini ... 1/norm.pdf? v. slide 56
sembrano fatte molto bene le slides del link che hai postato...proverò a capire il funzionamento dell'algoritmo da lì! thanks[/quote]
se ti serve altro materiale vedi qui

"hamming_burst":
[quote="lady5"][quote="hamming_burst"]@One:
Da quanto ricordo ci sono almeno due algoritmi di scomposizione in BCNF. Quello che utilizzi è questo: ftp://ftp.disi.unige.it/person/Guerrini ... 1/norm.pdf? v. slide 56
sembrano fatte molto bene le slides del link che hai postato...proverò a capire il funzionamento dell'algoritmo da lì! thanks[/quote]
se ti serve altro materiale vedi qui

Grazie mille

Provando a fare gli esercizi ho riscontrato questi dubbi:
nell'algoritmo a pg.56 ad un certo punto c'è "si calcolano le proiezioni di F+ su S1 e su S2"
da quello che ho capito F è l'insieme delle dipendenze date inizialmente, con F+ intende la copertura minimale di tale insieme (quella calcolata con un altro algoritmo)??
se così fosse, una volta che, ad es., ho scomposto R in R1 e R2 cerco nell'insieme F+ le dipendenze che coinvolgono gli attributi che stanno in R1 e R2?? sto ragionando bene o mi sono incartata??
sul mio libro di testo l'algoritmo si ferma una volta scomposto R in R1 e R2

thanks
Help me!!

ti dico subito che vado a memoria, è da un po' che non pratico questi algoritmi 
si parla di insieme di dipendenze minimale $F$. $F+$ è la chiusura dell'indieme delle dipendenze.
direi di sì
bhe il passo successivo è quello che è scritto appena sopra, cioè legare l'insieme delle dipendenze di $R1$ e $R2$ che sono sottoinsiemi di $F$.
PS: quale libro utilizzi?

"lady5":
nell'algoritmo a pg.56 ad un certo punto c'è "si calcolano le proiezioni di F+ su S1 e su S2"
da quello che ho capito F è l'insieme delle dipendenze date inizialmente, con F+ intende la copertura minimale di tale insieme (quella calcolata con un altro algoritmo)??
si parla di insieme di dipendenze minimale $F$. $F+$ è la chiusura dell'indieme delle dipendenze.
se così fosse, una volta che, ad es., ho scomposto R in R1 e R2 cerco nell'insieme F+ le dipendenze che coinvolgono gli attributi che stanno in R1 e R2?? sto ragionando bene o mi sono incartata??
direi di sì
sul mio libro di testo l'algoritmo si ferma una volta scomposto R in R1 e R2
bhe il passo successivo è quello che è scritto appena sopra, cioè legare l'insieme delle dipendenze di $R1$ e $R2$ che sono sottoinsiemi di $F$.
PS: quale libro utilizzi?
il mio libro è Sistemi di Basi di dati Fondamenti, Elmasri, Navathe
No io non ce la posso fare, sto bloccata su una cosa che credo sia banale, ma non avendo mai visto svolgere un esercizio nei dettagli non riesco ad uscirne. Vi spiego con un esempio:
R(A,B,C,D)
F={AB-->C, AB-->D, C-->A, D-->B}, le chiavi sono AB, CD, BC e AD
tutte le dipendenze soddisfano la 3NF, per la BCNF C-->A e D-->B non la soddisfano perchè nè C, nè D sono chiavi.
ora devo Ridurre lo schema in forma normale di Boyce-Codd.
- S={A,B,C,D}
- parto da C-->A e scompongo S in S1={A,C} e in S2={B,C,D} e ORA?? dovrei calcolare F+, tale calcolo dovrebbe consistere di tre passi
scomporre le dipendenze in modo che a destra ci sia un solo attributo;
togliere gli attributi ridondanti
togliere le dipendenze ridondanti
ma se faccio queste cose non mi trovo per nulla.
vi dico la soluzione del prof: Scomposizione partendo dalla dipendenza C -->A.
S1 = {A,C} con la sola dipendenza C --> A.
S2 = {C,B,D} con le seguenti dipendenze D --> B, BC --> D, DC --> B (ma da dove sono uscite queste dipendenze????)
poi lui scompone ancora ma ve lo risparmio!
Chiedo lumi......disperatamante!!!!!!!!
R(A,B,C,D)
F={AB-->C, AB-->D, C-->A, D-->B}, le chiavi sono AB, CD, BC e AD
tutte le dipendenze soddisfano la 3NF, per la BCNF C-->A e D-->B non la soddisfano perchè nè C, nè D sono chiavi.
ora devo Ridurre lo schema in forma normale di Boyce-Codd.
- S={A,B,C,D}
- parto da C-->A e scompongo S in S1={A,C} e in S2={B,C,D} e ORA?? dovrei calcolare F+, tale calcolo dovrebbe consistere di tre passi
scomporre le dipendenze in modo che a destra ci sia un solo attributo;
togliere gli attributi ridondanti
togliere le dipendenze ridondanti
ma se faccio queste cose non mi trovo per nulla.
vi dico la soluzione del prof: Scomposizione partendo dalla dipendenza C -->A.
S1 = {A,C} con la sola dipendenza C --> A.
S2 = {C,B,D} con le seguenti dipendenze D --> B, BC --> D, DC --> B (ma da dove sono uscite queste dipendenze????)
poi lui scompone ancora ma ve lo risparmio!
Chiedo lumi......disperatamante!!!!!!!!
Ciao,
non è che il docente abbia utilizzato la scomposizione 3NF? Perchè S2 con quelle dipendenze sono implicate da $F$ ma non sono in F+.
Comunque utilizza (pesantemente) gli assiomi di Amstrong:
- \(BC \rightarrow D\)
deriva dalle dipendeze \(\{AB \rightarrow D,C \rightarrow A\}\) per pseudotransitività, sostituisci nel lato sinistro la dipendenza destra:
\[AB \rightarrow D \Rightarrow (C \rightarrow A)B \rightarrow D \Rightarrow CB \rightarrow D \]
- \(DC \rightarrow B\)
utilizza la dipendenza implicata sopra \(\{CB \rightarrow D,D \rightarrow B\}\),sempre tramite pseudotransitività:
\[CB \rightarrow D \Rightarrow C(D \rightarrow B)\rightarrow D \Rightarrow CD \rightarrow B\]
il resto è tutto ugule a ciò che hai descritto, vedi se sono chiavi e se sono in BCNF.
Se hai problemi ne discutiamo punto per punto.
Ricordo che anche io quando ho studiato queste teorie mi son incriccato alcune volte, è normale
non è che il docente abbia utilizzato la scomposizione 3NF? Perchè S2 con quelle dipendenze sono implicate da $F$ ma non sono in F+.
Comunque utilizza (pesantemente) gli assiomi di Amstrong:
- \(BC \rightarrow D\)
deriva dalle dipendeze \(\{AB \rightarrow D,C \rightarrow A\}\) per pseudotransitività, sostituisci nel lato sinistro la dipendenza destra:
\[AB \rightarrow D \Rightarrow (C \rightarrow A)B \rightarrow D \Rightarrow CB \rightarrow D \]
- \(DC \rightarrow B\)
utilizza la dipendenza implicata sopra \(\{CB \rightarrow D,D \rightarrow B\}\),sempre tramite pseudotransitività:
\[CB \rightarrow D \Rightarrow C(D \rightarrow B)\rightarrow D \Rightarrow CD \rightarrow B\]
il resto è tutto ugule a ciò che hai descritto, vedi se sono chiavi e se sono in BCNF.
Se hai problemi ne discutiamo punto per punto.
Ricordo che anche io quando ho studiato queste teorie mi son incriccato alcune volte, è normale

[quote=hamming_burst]Ciao,
non è che il docente abbia utilizzato la scomposizione 3NF? Perchè S2 con quelle dipendenze sono implicate da $F$ ma non sono in F+.
mi sono posta anche io questa domanda, ma non credo perchè ho provato a seguire l'algoritmo per la 3NF con esito negativo!!
Ti ringrazio tantissimo per l'indicazione degli assiomi...in questi giorni farò altri esercizi, nel caso riscontro problemi ritorno qui
sei stato gentilissimo e precisissimo thanks!!!
non è che il docente abbia utilizzato la scomposizione 3NF? Perchè S2 con quelle dipendenze sono implicate da $F$ ma non sono in F+.
mi sono posta anche io questa domanda, ma non credo perchè ho provato a seguire l'algoritmo per la 3NF con esito negativo!!
Ti ringrazio tantissimo per l'indicazione degli assiomi...in questi giorni farò altri esercizi, nel caso riscontro problemi ritorno qui

