logo

Indeksiranje v zbirkah podatkov – sklop 1

Indeksiranje izboljša zmogljivost baze podatkov z zmanjšanjem števila obiskov diska, potrebnih za izpolnitev poizvedbe. To je tehnika strukture podatkov, ki se uporablja za iskanje in hiter dostop do podatkov v zbirkah podatkov. Za ustvarjanje indeksov se uporablja več polj baze podatkov. Glavni ključ ali kandidatni ključ tabele je podvojen v prvem stolpcu, ki je ključ za iskanje. Za pospešitev pridobivanja podatkov se vrednosti hranijo tudi v razvrščenem vrstnem redu. Poudariti je treba, da sortiranje podatkov ni potrebno. Drugi stolpec je podatkovni sklic ali kazalec, ki vsebuje nabor kazalcev, ki držijo naslov diskovnega bloka, kjer je mogoče najti določeno vrednost ključa.

Struktura indeksa v bazi podatkov

Atributi indeksiranja

  • Vrste dostopa: To se nanaša na vrsto dostopa, kot je iskanje na podlagi vrednosti, dostop obsega itd.
  • Čas dostopa: Nanaša se na čas, potreben za iskanje določenega podatkovnega elementa ali niza elementov.
  • Čas vstavljanja: Nanaša se na čas, potreben za iskanje ustreznega prostora in vstavljanje novih podatkov.
  • Čas brisanja: Čas, potreben za iskanje in brisanje elementa ter posodobitev strukture indeksa.
  • Prostor nad glavo: Nanaša se na dodaten prostor, ki ga zahteva indeks.

Struktura indeksa v bazi podatkov



Na splošno obstajata dve vrsti mehanizmov organizacije datotek, ki jima sledijo metode indeksiranja za shranjevanje podatkov:

Zaporedna organizacija datotek ali urejena indeksna datoteka

Pri tem indeksi temeljijo na razvrščenem vrstnem redu vrednosti. Ti so na splošno hitri in bolj tradicionalni tip mehanizma za shranjevanje. Te urejene ali zaporedne organizacije datotek lahko shranjujejo podatke v gosto ali redko obliko.

  • Indeks gostega
    • Za vsako vrednost iskalnega ključa v podatkovni datoteki obstaja zapis indeksa.
    • Ta zapis vsebuje iskalni ključ in tudi sklic na prvi podatkovni zapis s to vrednostjo iskalnega ključa.

Indeks gostega

  • Redki indeks
    • Indeksni zapis se prikaže samo za nekaj elementov v podatkovni datoteki. Vsak element kaže na blok, kot je prikazano.
    • Za iskanje zapisa najdemo indeksni zapis z največjo vrednostjo iskalnega ključa, ki je manjša ali enaka vrednosti iskalnega ključa, ki ga iščemo.
    • Začnemo pri tem zapisu, na katerega kaže indeksni zapis, in nadaljujemo s kazalci v datoteki (to je zaporedno), dokler ne najdemo želenega zapisa.
    • Število zahtevanih dostopov=log₂(n)+1, (tukaj n=število blokov, pridobljenih z indeksno datoteko)

Redki indeks

Organizacija zgoščenih datotek

Indeksi temeljijo na vrednostih, ki so enakomerno porazdeljene po različnih vedrih. Vedra, ki jim je dodeljena vrednost, so določena s funkcijo, imenovano zgoščevalna funkcija. Obstajajo predvsem trije načini indeksiranja:

  • Indeksiranje v gručah : Če sta v isti datoteki shranjena več kot dva zapisa, je ta vrsta shranjevanja znana kot indeksiranje gruče. Z uporabo indeksiranja gruče lahko zmanjšamo stroške iskanja razlogov, ker je več zapisov, povezanih z isto stvarjo, shranjenih na enem mestu, prav tako pa omogoča pogosto združevanje več kot dveh tabel (zapisov).
    Indeks združevanja v gruče je definiran v urejeni podatkovni datoteki. Podatkovna datoteka je urejena na neključnem polju. V nekaterih primerih se indeks ustvari na stolpcih neprimarnega ključa, ki morda niso edinstveni za vsak zapis. V takih primerih bomo za hitrejšo identifikacijo zapisov združili dva ali več stolpcev skupaj, da bomo dobili edinstvene vrednosti in iz njih ustvarili indeks. Ta metoda je znana kot indeks združevanja v gruče. V bistvu so zapisi s podobnimi lastnostmi združeni skupaj in oblikovani so indeksi za te skupine.
    Študenti, ki študirajo vsak semester, so na primer razvrščeni skupaj. Študenti prvega semestra, študenti drugega semestra, študenti tretjega semestra itd. so kategorizirani.

Indeksiranje v gručah

  • Primarno indeksiranje: To je vrsta gručastega indeksiranja, pri kateri so podatki razvrščeni glede na iskalni ključ, primarni ključ tabele baze podatkov pa se uporablja za ustvarjanje indeksa. To je privzeta oblika indeksiranja, kjer inducira zaporedna organizacija datotek . Ker so primarni ključi edinstveni in so shranjeni razvrščeno, je delovanje iskalne operacije precej učinkovito.
  • Negručno ali sekundarno indeksiranje : Negručasti indeks nam samo pove, kje so podatki, tj. da nam seznam virtualnih kazalcev ali referenc na lokacijo, kjer so podatki dejansko shranjeni. Podatki niso fizično shranjeni v vrstnem redu indeksa. Namesto tega so podatki prisotni v vozliščih listov. Za npr. stran z vsebino knjige. Vsak vnos nam poda številko strani ali lokacijo shranjenih informacij. Dejanski podatki tukaj (informacije na vsaki strani knjige) niso organizirani, vendar imamo urejeno sklicevanje (stran z vsebino), kjer se podatkovne točke dejansko nahajajo. V negručnem indeksu imamo lahko le gosto razvrščanje, saj redko razvrščanje ni mogoče, ker podatki niso ustrezno fizično organizirani.
    Zahteva več časa v primerjavi z indeksom v gručah, ker je opravljenega nekaj dodatnega dela za ekstrahiranje podatkov z nadaljnjim sledenjem kazalcu. V primeru gručastega indeksa so podatki prisotni neposredno pred indeksom.
Indeksiranje brez gruč

Indeksiranje brez gruč

  • Večnivojsko indeksiranje: Z rastjo velikosti podatkovne baze rastejo tudi indeksi. Ker je indeks shranjen v glavnem pomnilniku, lahko enonivojski indeks postane prevelik za shranjevanje z več dostopi do diska. Večnivojsko indeksiranje ločuje glavni blok v različne manjše bloke, tako da jih je mogoče shraniti v enem bloku. Zunanji bloki so razdeljeni na notranje bloke, ki so nato usmerjeni na podatkovne bloke. To je mogoče preprosto shraniti v glavni pomnilnik z manj režijskimi stroški.

Večnivojsko indeksiranje

Prednosti indeksiranja

  • Izboljšana zmogljivost poizvedbe: Indeksiranje omogoča hitrejše pridobivanje podatkov iz podatkovne baze. Baza podatkov lahko hitro odkrije vrstice, ki se ujemajo z določeno vrednostjo ali zbirko vrednosti, tako da ustvari indeks v stolpcu, kar zmanjša čas, potreben za izvedbo poizvedbe.
  • Učinkovit dostop do podatkov: Indeksiranje lahko izboljša učinkovitost dostopa do podatkov z zmanjšanjem količine V/I diska, potrebnega za pridobivanje podatkov. Baza podatkov lahko vzdržuje podatkovne strani za pogosto obiskane stolpce v pomnilniku z generiranjem indeksa teh stolpcev, kar zmanjša zahtevo za branje z diska.
  • Optimizirano razvrščanje podatkov: Indeksiranje lahko tudi izboljša učinkovitost operacij razvrščanja. Z ustvarjanjem indeksa za stolpce, ki se uporabljajo za razvrščanje, se lahko zbirka podatkov izogne ​​razvrščanju celotne tabele in namesto tega razvrsti samo ustrezne vrstice.
  • Dosledna zmogljivost podatkov: Indeksiranje lahko pomaga zagotoviti, da baza podatkov deluje dosledno, tudi ko količina podatkov v bazi podatkov narašča. Brez indeksiranja lahko poizvedbe trajajo dlje, ko se število vrstic v tabeli poveča, medtem ko indeksiranje ohranja približno enako hitrost.
  • Z zagotavljanjem, da so samo edinstvene vrednosti vstavljene v stolpce, ki so bili indeksirani kot edinstveni, se lahko indeksiranje uporabi tudi za zagotovitev celovitosti podatkov. S tem se izognete shranjevanju podvojenih podatkov v bazi podatkov, kar bi lahko povzročilo težave pri izvajanju poizvedb ali poročil.

Na splošno indeksiranje v zbirkah podatkov zagotavlja pomembne prednosti za izboljšanje zmogljivosti poizvedb, učinkovit dostop do podatkov, optimizirano razvrščanje podatkov, dosledno delovanje podatkov in uveljavljeno celovitost podatkov

Slabosti indeksiranja

  • Indeksiranje zahteva več prostora za shranjevanje podatkovne strukture indeksa, kar lahko poveča skupno velikost baze podatkov.
  • Povečani stroški vzdrževanja baze podatkov: Indekse je treba vzdrževati, ko se podatki dodajajo, uničujejo ali spreminjajo v tabeli, kar lahko poveča stroške vzdrževanja baze podatkov.
  • Indeksiranje lahko zmanjša zmogljivost vstavljanja in posodabljanja, saj je treba podatkovno strukturo indeksa posodobiti vsakič, ko se podatki spremenijo.
  • Izbira indeksa je lahko težavna: Izbira pravih indeksov za določeno poizvedbo ali aplikacijo je lahko izziv in lahko zahteva podrobno preučitev podatkov in vzorcev dostopa.

Značilnosti indeksiranja

  • Razvoj podatkovnih struktur, kot je npr B-drevesa oz Najpomembnejši stolpci za stolpce indeksiranja so izbrani glede na to, kako pogosto se uporabljajo in vrste poizvedb, ki so jim izpostavljeni. The kardinalnost , selektivnost in edinstvenost stolpcev za indeksiranje je mogoče upoštevati.
  • Baze podatkov uporabljajo več različnih tipov indeksov, vključno s primarnimi, sekundarnimi, gručastimi in negručastimi indeksi. Na podlagi posebnih potreb sistema baze podatkov ima vsaka oblika indeksa prednosti in slabosti.
  • Za najboljše delovanje sistema baze podatkov je potrebno redno vzdrževanje indeksa. V skladu s spremembami podatkov in vzorcev uporabe vzdrževalna dela vključujejo gradnjo, posodabljanje in odstranjevanje indeksov.
  • Optimizacija poizvedb po bazi podatkov vključuje indeksiranje, ki je bistveno. Optimizator poizvedb uporablja indekse, da izbere najboljšo strategijo izvajanja za določeno poizvedbo na podlagi stroškov dostopa do podatkov in selektivnosti stolpcev za indeksiranje.
  • Baze podatkov uporabljajo vrsto strategij indeksiranja, vključno s pokrivanjem indeksov, skeniranjem samo indeksov in delnimi indeksi. Te tehnike povečajo uporabo indeksov za določene vrste poizvedb in dostop do podatkov.
  • Ko so nesosednji podatkovni bloki shranjeni v indeksu, lahko pride do fragmentacije indeksa, zaradi česar je indeks manj učinkovit. Redno vzdrževanje indeksa, kot sta defragmentacija in reorganizacija, se lahko zmanjša razdrobljenost .

Zaključek

Indeksiranje je zelo uporabna tehnika, ki pomaga optimizirati čas iskanja zbirka podatkov poizvedbe. Tabela indeksiranja baze podatkov je sestavljena iz iskalnega ključa in kazalec . Obstajajo štiri vrste indeksiranja: primarno, sekundarno združevanje v gruče in večvrednostno indeksiranje. Primarno indeksiranje je razdeljeno na dve vrsti, gosto in redko. Gosto indeksiranje se uporablja, ko indeksna tabela vsebuje zapise za vsak iskalni ključ. Redko indeksiranje se uporablja, kadar indeksna tabela ne uporablja iskalnega ključa za vsak zapis. Uporaba večnivojskega indeksiranja B+ Drevo . Glavni namen indeksiranja je zagotoviti boljšo zmogljivost pri iskanju podatkov.

Pogosta vprašanja o indeksiranju

V.1: Kaj je indeksiranje v zbirkah podatkov?

odgovor:

Indeksiranje je v bistvu tehnika, ki pomaga skrajšati čas iskanja poizvedbe v zbirki podatkov ali pomaga pri hitrejšem dostopu do baze podatkov.

velikost pisave iz lateksa

V.2: Kateri so primeri baz podatkov za indeksiranje?

odgovor:

Nekateri pogosti primeri indeksiranja podatkovnih baz so Web of Science, DOAJ (Imenik revij z odprtim dostopom)

Za več podrobnosti se lahko obrnete na Uvod v B+ Tree in Vrste ključev v bazi podatkov Članek.