logo

Indeksiranje v DBMS

  • Indeksiranje se uporablja za optimizacijo delovanja baze podatkov z zmanjšanjem števila dostopov do diska, ki so potrebni pri obdelavi poizvedbe.
  • Indeks je vrsta podatkovne strukture. Uporablja se za hitro iskanje in dostop do podatkov v tabeli zbirke podatkov.

Struktura indeksa:

Indekse lahko ustvarite z uporabo nekaterih stolpcev zbirke podatkov.

DBMS Indeksiranje v DBMS
  • Prvi stolpec baze podatkov je iskalni ključ, ki vsebuje kopijo primarnega ključa ali ključa kandidata tabele. Vrednosti primarnega ključa so shranjene v razvrščenem vrstnem redu, tako da je do ustreznih podatkov mogoče enostavno dostopati.
  • Drugi stolpec baze podatkov je referenca podatkov. Vsebuje nabor kazalcev, ki držijo naslov bloka diska, kjer je mogoče najti vrednost določenega ključa.

Metode indeksiranja

DBMS Indeksiranje v DBMS

Urejeni indeksi

Indeksi so običajno razvrščeni, da je iskanje hitrejše. Indeksi, ki so razvrščeni, so znani kot urejeni indeksi.

Primer : Recimo, da imamo tabelo zaposlenih s tisoči zapisov, od katerih je vsak dolg 10 bajtov. Če se njihovi ID-ji začnejo z 1, 2, 3....in tako naprej in študenta moramo iskati z ID-543.

  • V primeru baze podatkov brez indeksa moramo preiskati blok diska od začetka, dokler ne doseže 543. DBMS bo prebral zapis po branju 543*10=5430 bajtov.
  • V primeru indeksa bomo iskali z uporabo indeksov in DBMS bo prebral zapis po branju 542*2= 1084 bajtov, kar je zelo manj v primerjavi s prejšnjim primerom.

Primarni indeks

  • Če je indeks ustvarjen na podlagi primarnega ključa tabele, je znan kot primarno indeksiranje. Ti primarni ključi so edinstveni za vsak zapis in vsebujejo razmerje 1:1 med zapisi.
  • Ker so primarni ključi shranjeni v razvrščenem vrstnem redu, je delovanje iskalne operacije precej učinkovito.
  • Primarni indeks je mogoče razvrstiti v dve vrsti: gosti indeks in redki indeks.

Gosto indeks

  • Zgoščeni indeks vsebuje zapis indeksa za vsako vrednost iskalnega ključa v podatkovni datoteki. Omogoča hitrejše iskanje.
  • Pri tem je število zapisov v indeksni tabeli enako številu zapisov v glavni tabeli.
  • Za shranjevanje samega zapisa indeksa potrebuje več prostora. Indeksni zapisi imajo iskalni ključ in kazalec na dejanski zapis na disku.
DBMS Indeksiranje v DBMS

Redko kazalo

  • V podatkovni datoteki se indeksni zapis pojavi le za nekaj elementov. Vsak element kaže na blok.
  • Pri tem, namesto da kaže na vsak zapis v glavni tabeli, indeks kaže na zapise v glavni tabeli v vrzeli.
DBMS Indeksiranje v DBMS

Indeks grozdenja

  • Gručni indeks je mogoče definirati kot urejeno podatkovno datoteko. Včasih je indeks ustvarjen na stolpcih neprimarnega ključa, ki morda niso edinstveni za vsak zapis.
  • V tem primeru bomo za hitrejšo identifikacijo zapisa združili dva ali več stolpcev, da bomo dobili edinstveno vrednost in iz njih ustvarili indeks. Ta metoda se imenuje indeks združevanja v gruče.
  • Zapisi, ki imajo podobne lastnosti, so združeni in za te skupine so ustvarjeni indeksi.

Primer : predpostavimo, da ima podjetje več zaposlenih v vsakem oddelku. Recimo, da uporabljamo indeks združevanja v gruče, kjer so vsi zaposleni, ki pripadajo istemu Dept_ID, obravnavani znotraj ene same gruče, kazalci indeksa pa kažejo na gručo kot celoto. Tu je Dept_Id ključ, ki ni enoličen.

np.argmax
DBMS Indeksiranje v DBMS

Prejšnja shema je malo zmedena, ker si en blok diska delijo zapisi, ki pripadajo drugi gruči. Če uporabimo ločen diskovni blok za ločene gruče, se to imenuje boljša tehnika.

DBMS Indeksiranje v DBMS

Sekundarni indeks

Pri redkem indeksiranju z večanjem velikosti tabele raste tudi velikost preslikave. Te preslikave se običajno hranijo v primarnem pomnilniku, tako da bi moralo biti pridobivanje naslova hitrejše. Nato sekundarni pomnilnik išče dejanske podatke na podlagi naslova, pridobljenega s preslikavo. Če se velikost preslikave poveča, postane pridobivanje samega naslova počasnejše. V tem primeru redki indeks ne bo učinkovit. Da bi odpravili to težavo, je uvedeno sekundarno indeksiranje.

Pri sekundarnem indeksiranju je za zmanjšanje velikosti preslikav uvedena druga raven indeksiranja. Pri tej metodi je na začetku izbran ogromen obseg za stolpce, tako da velikost preslikave prve ravni postane majhna. Nato je vsak obseg nadalje razdeljen na manjše obsege. Preslikava prve ravni je shranjena v primarnem pomnilniku, tako da je pridobivanje naslova hitrejše. Preslikava drugega nivoja in dejanski podatki so shranjeni v sekundarnem pomnilniku (trdi disk).

java metoda
DBMS Indeksiranje v DBMS

Na primer:

  • Če želite najti zapis zvitka 111 v diagramu, bo iskal najvišji vnos, ki je manjši ali enak 111 v indeksu prve stopnje. Na tej ravni bo dobil 100.
  • Nato na drugi ravni indeksa spet največ (111)<= 111 and gets 110. now using the address 110, it goes to data block starts searching each record till 111. < li>
  • Tako poteka iskanje v tej metodi. Na enak način poteka tudi vstavljanje, posodabljanje ali brisanje.