logo

Indeksiranje u DBMS-u

  • Indeksiranje se koristi za optimiziranje performansi baze podataka minimiziranjem broja pristupa disku potrebnih prilikom obrade upita.
  • Indeks je vrsta strukture podataka. Koristi se za brzo lociranje i pristup podacima u tablici baze podataka.

Struktura indeksa:

Indeksi se mogu izraditi pomoću nekih stupaca baze podataka.

10 milijuna
DBMS Indeksiranje u DBMS
  • Prvi stupac baze podataka je ključ za pretraživanje koji sadrži kopiju primarnog ključa ili ključa kandidata tablice. Vrijednosti primarnog ključa pohranjuju se sortiranim redoslijedom tako da se odgovarajućim podacima može lako pristupiti.
  • Drugi stupac baze podataka je referenca podataka. Sadrži skup pokazivača koji drže adresu bloka diska gdje se može pronaći vrijednost određenog ključa.

Metode indeksiranja

DBMS Indeksiranje u DBMS

Uređeni indeksi

Indeksi su obično sortirani kako bi pretraživanje bilo brže. Indeksi koji su sortirani poznati su kao uređeni indeksi.

Primjer : Pretpostavimo da imamo tablicu zaposlenika s tisućama zapisa od kojih je svaki dugačak 10 bajtova. Ako njihove osobne iskaznice počinju s 1, 2, 3....i tako dalje i moramo pretraživati ​​učenika s ID-543.

  • U slučaju baze podataka bez indeksa, moramo pretraživati ​​blok diska od početka dok ne dosegne 543. DBMS će pročitati zapis nakon čitanja 543*10=5430 bajtova.
  • U slučaju indeksa, pretraživat ćemo pomoću indeksa i DBMS će pročitati zapis nakon čitanja 542*2= 1084 bajta što je vrlo manje u usporedbi s prethodnim slučajem.

Primarni indeks

  • Ako je indeks kreiran na temelju primarnog ključa tablice, tada je poznat kao primarno indeksiranje. Ti su primarni ključevi jedinstveni za svaki zapis i sadrže odnos 1:1 između zapisa.
  • Budući da su primarni ključevi pohranjeni sortiranim redoslijedom, izvedba operacije pretraživanja prilično je učinkovita.
  • Primarni indeks može se klasificirati u dvije vrste: Gusti indeks i Rijetki indeks.

Gusti indeks

  • Gusti indeks sadrži zapis indeksa za svaku vrijednost ključa pretraživanja u podatkovnoj datoteci. Čini pretraživanje bržim.
  • U ovom slučaju, broj zapisa u indeksnoj tablici jednak je broju zapisa u glavnoj tablici.
  • Potrebno mu je više prostora za pohranu samog zapisa indeksa. Zapisi indeksa imaju ključ za pretraživanje i pokazivač na stvarni zapis na disku.
DBMS Indeksiranje u DBMS

Rijetki indeks

  • U podatkovnoj datoteci zapis indeksa pojavljuje se samo za nekoliko stavki. Svaka stavka ukazuje na blok.
  • U ovom slučaju, umjesto da pokazuje na svaki zapis u glavnoj tablici, indeks pokazuje na zapise u glavnoj tablici u praznini.
DBMS Indeksiranje u DBMS

Indeks klasteriranja

  • Klasterizirani indeks može se definirati kao datoteka s uređenim podacima. Ponekad se indeks stvara na stupcima neprimarnog ključa koji možda nisu jedinstveni za svaki zapis.
  • U ovom slučaju, da bismo brže identificirali zapis, grupirat ćemo dva ili više stupaca kako bismo dobili jedinstvenu vrijednost i od njih stvorili indeks. Ova metoda se naziva indeks klasteriranja.
  • Zapisi koji imaju slične karakteristike grupiraju se i za te grupe se kreiraju indeksi.

Primjer : pretpostavimo da tvrtka ima nekoliko zaposlenika u svakom odjelu. Pretpostavimo da koristimo indeks klasteriranja, gdje se svi zaposlenici koji pripadaju istom Dept_ID smatraju unutar jednog klastera, a pokazivači indeksa pokazuju na klaster kao cjelinu. Ovdje je Dept_Id nejedinstveni ključ.

DBMS Indeksiranje u DBMS

Prethodna shema je malo zbunjujuća jer jedan blok diska dijele zapisi koji pripadaju drugom klasteru. Ako koristimo odvojeni blok diska za odvojene klastere, onda se to zove bolja tehnika.

DBMS Indeksiranje u DBMS

Sekundarni indeks

U rijetkom indeksiranju, kako raste veličina tablice, raste i veličina mapiranja. Ta se mapiranja obično čuvaju u primarnoj memoriji tako da bi dohvaćanje adrese trebalo biti brže. Zatim sekundarna memorija pretražuje stvarne podatke na temelju adrese dobivene mapiranjem. Ako veličina mapiranja raste, dohvaćanje same adrese postaje sporije. U ovom slučaju, prorijeđeni indeks neće biti učinkovit. Da bi se prevladao ovaj problem, uvedeno je sekundarno indeksiranje.

U sekundarnom indeksiranju, kako bi se smanjila veličina mapiranja, uvodi se druga razina indeksiranja. U ovoj metodi, veliki raspon za stupce odabran je na početku tako da veličina mapiranja prve razine postaje mala. Zatim se svaki raspon dalje dijeli na manje raspone. Mapiranje prve razine pohranjuje se u primarnu memoriju, tako da je dohvaćanje adrese brže. Mapiranje druge razine i stvarni podaci pohranjuju se u sekundarnu memoriju (tvrdi disk).

DBMS Indeksiranje u DBMS

Na primjer:

css poravnanje teksta
  • Ako želite pronaći zapis bacanja 111 u dijagramu, tada će se tražiti najviši unos koji je manji ili jednak 111 u indeksu prve razine. Dobit će 100 na ovoj razini.
  • Zatim na drugoj razini indeksa, opet radi max (111)<= 111 and gets 110. now using the address 110, it goes to data block starts searching each record till 111. < li>
  • Ovako se vrši pretraga u ovoj metodi. Umetanje, ažuriranje ili brisanje također se vrši na isti način.