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

Re: baze podataka

by Nikola Jevtovic
nedelja, 20. april 2003 - 00:19.


Nisam siguran da razumem šta znaèi "dekomponovati neku relaciju do praznog skupa zavisnosti", ali mislim da nasluæujem šta je pitanje... Odgovor je: zavisi. Zavisi od toga da li želiš dekompoziciju sa ili bez gubitaka zavisnosti. To se najlepše vidi kod algoritma za dekompoziciju u 3NF. Algoritam koji predlaže Bleki æe èak i kada je relacija veæ u 3NF (dakle, kada ne postoji niti jedna zavisnost koja narušava 3NF) izvršiti dekompoziciju po svakoj zavisnosti. To je zato što taj algoritam za normalizaciju u 3NF èuva zavisnosti, i može se desiti (ako baš želiš, mogu ti dati i primer) da kada dekomponuješ samo po zavisnostima koje narušavaju 3NF izgubiš neke zavisnosti. Postoji i algoritam za normalizaciju u 3NF koji ne èuva zavisnosti, i manje-više se svodi na to što ti predlažeš... Pozdrav,Damjan S. Vujnoviæ Da OK je to za 3NF sto kazes, jer sam ja i radio po Blekijevom algoritmu (sve funkc. zavisnosti postaju relacije, pa ako nema KK ni u jednoj dodaje se jos jedna relacija, pa ako je nestao neki element jos jedna ; manje vise prepricavam algoritam) ali je kod dekompozicije u BCNF algoritam koji je dao Bleki (valjda je on dao taj algoritam) to ovako:
rezultat := {R};
uradjeno := False;
sracunavanje F+
while (not uradjeno) do
if (postoji Fi koji nije u BCNF) then
begin vazi X->Y, X->Ri element Fi;
rezultat:=(rezultat-Ri)unija(Ri-Y)unija(X,Y); end
else uradjeno:= true
end_if
end_whileE zbog ove while petlje gde se radi sve dok postoji neko Fi koje narusava BCNF, a kad vise nema takvih Fi algoritam se prekida, pa preostali elementi sa preostalim funkc.zavisnostima cine poslednju relaciju (koja ujedno zadovoljava BCNF). U mnogim (da ne kazem skoro svim) resenim rokovima, radjeno je da se dekompozicija vrsi sve dok postoje funkc. zavisnosti (bez obzira da li narusavaju ili zadovoljavaju BCNF) tako da za poslednju relaciju vise nema nista iz polaznog skupa F (na to sam mislio da je preostao prazan skup funkc.zav). Ono sto ne znam je to da li je potrebno (prvenstveno mislim za ispit da li je potrebno) vrsiti dekompoziciju i pri tome se truditi da se sacuvaju sve polazne funkc.zav. ili je dovoljno sprovesti ovaj algoritam i eventualno konstatovati sta se izgubilo (ako se nesto izgubilo)? Nikola


---------------------------------
Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo.