«« ( Date ) »» // «« ( Thread ) »» // nastava - 2003

Re: Baze - normalizacija

by Milan Stanojevic
ponedeljak, 24. februar 2003 - 23:30.

Pa ajde da pitamo Blekija, ali ako se Damjan do sad nije bunio, onda je
valjda ok.
Sto se tice zadatka, evo kako bi trebalo da ide.

R(A,B,C,D,E,F)
F = {AC->D, D->EF, CD->A, E->C, A->B}
KK={D, AC, AE}

Prvo uzimas A->B.
Dobija se R1(A,B) i R2(A,C,D,E,F)
Zatim E->C
Dobijas R3(E,C) i R4(A,D,E,F)
I to je to.

Kad proveravas koje su zavisnosti izgubljene, pravo resenje je da nadjes F+
i projekcije po novodobijenim relacijama, zatim da uradis njihova zatvorenja
i da vidis da li je unija opet F+. Ako nije, nesto se izgubilo. To je
naravno, eksponencijalno i ponekad zamorno.

U ovom slucaju, jedine sumnjive zavisnosti su CD->A i AC->D. Ali je D je KK
i za R i za R4, pa vazi D->A. Ako vazi D->A vazi i CD->A, pa ta zavisnost
nije izgubljena. Ova druga jeste.

Mozes da radis sledece:
R1: A+=AB, B+=B, zavisnosti F1={A->B}
R3: E+=EC, C+=C, F2={E->C}
R4: D+=ABCDEF projektujes po R4 (i gore radis projekcije ali je trivijalno)
D+=ADEF {D->AEF}
A+=AB, projekcija A+=A
E+=EC projekcija E+=E
F+=F
AE+=ABCDEF projekcija AE+=ADEF i tako dalje...
Na kraju dobijes da od zavisnosti iz F ne vazi AC->D

Milan






----- Original Message -----
From: "Ivan Milosavljevic" <ivan.mile@sezampro.yu>
To: <nastava@titan.etf.bg.ac.yu>
Sent: Monday, February 24, 2003 10:40 PM
Subject: Re: [nastava] Baze - normalizacija


> >>-----Original Message-----
> >>From: Galic [mailto:vgalic@bitsyu.net]
> >>Sent: Sunday, February 23, 2003 10:01 PM
> >>
> >>***Algoritam dekompozicije relacione seme u 3NF***
> >>ulazi: relaciona sema R, skup funkcionalnih zavisnosti F
> >>izlaz: dekomponovana sema R1,R2,...,Rn
> >>----------------------------------------------------------------------
> >>begin
> >> i=0;
> >> for each (funkcionalna zavisnost X->Y) in F do
> >> i := i+1;
> >> Ri := X unija Y;
> >> end for;
> >> if (nijedna Rj gde je j=1..i ne sadrzi KK rel.seme R) then
> >> i := i+1;
> >> Ri := neki KK rel.seme R;
> >> end if;
> >> if ((unija Rj gde je j=1..i) razlicito od R) then
> >> i := i+1;
> >> Ri := R - unijaRj;
> >> end if;
> >> return (R1, R2,..., Ri);
> >>end algoritam
>
> Pazite se ljudi oko ovoga!!! Ja sam na ovom roku napisao baš taj
algoritam, bukvalno od reči do reči isti kao što je dat na predavanjima. A
Bleki je tu stavio ogroman upitnik i skinuo mi 1 poen. Taj poen mi ne bi
ništa značio, opet bih dobio 7, pa se nisam žalio, ali možda će nekome da
znači.
>
> Druga stvar, da li neko može da objasni kako se proverava koja
funkcionalna zavisnost je izgubljena prilikom dekompozicije u BCNF?
Konkretno u ovom zadatku sam mislio da su AC->D i CD->A izgubljene, međutim
samo jedna jeste. Kako se to radi?
>
> Poz,
> -+- I V A N -+-
>
> -----------------------------------------------------------------
> unsubscribe:
>
minimalist@titan.etf.bg.ac.yu?subject---------------------------------------
--------------------------
>
>
>