You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
7. PROBLEM IZBORA INDEKSA<br />
Problem izbora indeksa (Index selection problem - ISP) je od suštinske<br />
važnosti pri dizajniranju baza podataka. Potrebno je izabrati neke od mogućih<br />
indeksa, tako da njihovim kreiranjem i kasnijim korišćenjem, minimiziramo<br />
vreme odziva sistema za upravljanje bazom podataka. Detaljan opis problema i<br />
analiza svih aspekata njegovog uticaja na <strong>rad</strong> samog sistema za upravljanje<br />
bazom podataka izlazi izvan okvira ovog <strong>rad</strong>a. Zbog toga ćemo u ovom<br />
poglavlju dati samo najosnovnije informacije o samom problemu i osnovnim<br />
aspektima njegovog rešavanja u okviru kombinatorne optimizacije, a detaljnije o<br />
njegovoj primeni na baze podataka se može naći u <strong>rad</strong>ovima [Fin88] i [Cap95a].<br />
Dokaz da ISP pripada klasi NP-kompletnih problema je detaljno opisan u<br />
[Com78].<br />
7.1 Formulacija problema<br />
Neka je N = {1, 2, ..., n} skup svih indeksa, P = {1, 2, ..., p} skup svih korisnih<br />
konfiguracija sastavljenih od datih indeksa, i M = {1, 2, ..., m} skup svih upita<br />
neke baze podataka. Za postavljanje nekog indeksa j ∈ N potrebno je utrošiti<br />
određeno vreme f j > 0. Ukoliko su postavljeni svi indeksi u nekoj konfiguraciji<br />
k ∈P, tada se za izvršavanje upita i ∈ M može uštedeti vreme g ik ≥ 0. U praksi<br />
je najčešće za veliki broj parova (i, k) ušteda g ik = 0, što se može objasniti time<br />
da određena konfiguracija ima uticaja samo na neke upite iz skupa M.<br />
Potrebno je postaviti neke od indeksa, tako da ukupno vreme izvršavanja<br />
svih upita sistema za upravljanje bazom podataka bude minimalno, odnosno da<br />
ukupna ušteda vremena bude maksimalna. Problem se matematički može<br />
iskazati pomoću formula (7.1) - (7.3) koje detaljnije opisuju sve uslove koje<br />
treba rešenje da ispunjava:<br />
⎛<br />
⎞<br />
max ⎜∑∑<br />
gik<br />
⋅xik<br />
−∑ f<br />
j<br />
⋅y<br />
⎟<br />
j<br />
(7.1)<br />
⎝ i∈M k∈P<br />
j∈N<br />
⎠<br />
uz uslove<br />
∑ x ik<br />
≤ 1 ∀i ∈ M (7.2)<br />
k∈P<br />
x ik , y j ∈ {0,1} ∀i ∈ M, ∀j ∈ N, ∀k ∈ P (7.3)<br />
Rešenje je zadato preko sledećih promenljivih, čiji detaljniji opis možemo videti<br />
u (7.4):<br />
• y jj označava da li je indeks j postavljen;