You are on page 1of 1

7 Indeksi Page 29

7 Indeksi
Obično na kraju knjiga možete naći indeks. U tih nekoliko stranica abecedno su složeni pojmovi koji se spominju u
toj knjizi i na kojoj stranici se nalazi svaki od tih pojmova. Na ovaj način vi možete vrlo jednostavno pronaći pojam
u nekoj knjizi bez listanja kompletne knjige. Slična ideja je i kod indeksa u bazama podaka.

Indeksi su posebni fajlovi koje DBMS kreira ili automatski ili na zahtjev programera. Oni omogućavaju da se brže
pronalazi red koji zadovoljava traženi uslov. Indeks možemo predstaviti kao tabelu sa dvije kolone:

Ključ (Index key) Pokazivač na red u tabeli (disk pointer)3

U prvoj koloni ključ smještaju se vrijednosti ključa (ili ključeva) za koji je napravljen indeks. Bitno je naglasiti da je:

Vrijednosti u koloni ključ (ili kolonama ključeva) uvijek su sortirane po rastućem ili opadajućem nizu!

U drugoj koloni se nalazi pointer koji pokazuje gdje se taj podatak nalazi na disku tačnije broj bloka diska.

Pretpostavimo da imamo tabelu radnici neke tvornice koja izgleda ovako:

1. Radnik_ID (PK)
2. Prezime
3. Ime
4. Ime_oca
5. JMBG
6. Datum_zaposlenja
7. Odjel_ID (SK)

Dalje pretpostavimo da svaki red zauzima 100 B i da imamo 1000 radnika. Da bi našli određeni podatak (npr. radnika
po imenu i prezimenu) moramo da pretražimo (bez upotrebe indeksa) i do 100 000 B ili cca 100 KB podataka. Ako
koristimo indeks, pošto je on uvijek složen po traženom ključu, dovoljno je da pročitamo do ključa koji zadovoljava
traženi uslov.

7.1 Primarni indeks (primary index)


Primarni indeks je indeks koji DBMS automatski kreira kod tabela sa primarnim ključem. Ključ indeksa je praktično
primarni ključ tabele. U našem slučaju tabele radnika red indeksa bi izgledao ovako:

Radnik_ID Pokazivač na red u tabeli (disk pointer)

7.2 Jedinstveni indeks (unique index)


Jedinstveni indeks ne dozvoljava da se u tabeli imaju dvije ili više iste vrijednosti jedne ili više kolona. U našem
slučaju, možemo kreirati jedinstveni indeks nad kolonom JMBG. U tom slučaju smo sigurni sa jedan radnik nije dva
puta evidentiran u našoj BP. Takav indeks bi imao strukturu:

JMBG Pokazivač na red u tabeli (disk pointer)

Jasno je da kolona nad kojom se kreira jedinstveni indeks ne može biti NULL kolona.

7.3 Višestruki indeksi


Ovi indeksi se kreiraju nad više od jedne kolone. Npr. u našem slučaju, često se tabela radnici pretražuje po prezimenu
i imenu radnika, tako da je dobro imati indeks nad prezimenom i imenom radnika.

Prezime Ime Pokazivač na red u tabeli (disk pointer)

3
Disk pointer u ovom slučaju je pointer na blok tvrdog diska na kojem se nalazi traženi red. Blok obično sadrži više
sektora (2, 4, 8 čak 16), a sektor je najmanji “komad” memorije koji se može adresirati i sadrži 512B.
BAZE PODATAKA

You might also like