Aiuto BCNF

One2
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?

Risposte
One2
Nessuno sà darmi una mano?

Rggb1
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

One2

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$...

One2
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{...})$ :?:

kikkabis
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

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

kikkabis
"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

hamming_burst
"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 :-)

kikkabis
"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 :-)[/quote]

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

kikkabis
Help me!! :(

hamming_burst
ti dico subito che vado a memoria, è da un po' che non pratico questi algoritmi :)

"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?

kikkabis
il mio libro è Sistemi di Basi di dati Fondamenti, Elmasri, Navathe

kikkabis
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!!!!!!!!

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+.
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 :-)

kikkabis
[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!!! :D

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