1 / 11

Indeksi

Indeksi. Zakaj? Dostikrat (največkrat) uporabniki iščejo podatke tako, da: podajo vrednost enega ali več podatkovnih elementov – primer: SELECT * FROM Dijak WHERE Razred=‘G1A’ // Poišči vse dijake razreda G1A podajo interval vrednosti nekega podatkovnega elementa – primer:

emiko
Download Presentation

Indeksi

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Indeksi Zakaj? Dostikrat (največkrat) uporabniki iščejo podatke tako, da: podajo vrednost enega ali več podatkovnih elementov – primer: SELECT * FROM Dijak WHERE Razred=‘G1A’ // Poišči vse dijake razreda G1A podajo interval vrednosti nekega podatkovnega elementa – primer: SELECT * FROM Matura WHERE Tocke BETWEEN 30 AND 33 // Poišči podatke o maturi za kandidate, ki so dosegli med 30 in 33 točk Indeksi so podatkovne strukture, ki omogočajo učinkovito izvedbo tovrstnih poizvedb.

  2. Indeks • datoteka, katere vsebina omogoča hiter dostop do zapisov v osnovni fizični datoteki, ki je z indeksom indeksirana Uporaba indeksa: • za hiter dostopdo podatkov osnovne datoteke • dostop s pomočjo indeksa je hitrejši, kot ga sicer omogoča organizacija osnovne datoteke Redundantnost indeksa indeks je možno vedno znova kreirati (na osnovi podatkov v osnovni datoteki)

  3. Zapis indeksne datoteke=podatki, ki tvorijo ključ + kazalec osnovna datoteka je indeksirana po P1, P2, .... Pn tip Indeksni_zapis =(P1:tip_P1, P2:tip_P2, ...., Pn:tip_Pn, Kazalec:Kazalčni) Ključ = (P1, P2, ... Pn) = ključ indeksa, tipi – enaki kot so tipi pod. elementov, ki nastopajo v zapisih osnovne datoteke • kazalec kaže na polja ali skupine polj z zapisi v osnovni datoteki

  4. Vrste indeksovPrimarni - Sekundarni indeksi Primarni indeks • indeksiranje osnovne datoteke je izvedeno po njenem ključu (ključ indeksa in ključ osnovne datoteke sta enaka) • lastnosti: razločevalnost (unique), določa privzeto urejenost zapisov osnovne datoteke, največkrat tudi zahtevan vnos (required) • uporaba: za povezovanje tabel (kreiranje relacij) • Vsaka tabela ima največ en primarni indeks Sekundarni indeksi • indeksiranje osnovne datoteke je izvedeno po podatkovnem elementu (skupini podatkovnih elementov), ki nastopa v tipu zapisa osnovne datoteke, vendar ni ključ • Tabele imajo lahko tudi več sekundarnih indeksov

  5. Vrste indeksov (nad.)Gosti – Redki indeksi Gosti indeksi • Za vsak zapis osnovne datoteke obstaja zapis v indeksni datoteki • vrednosti podatkovnih elementov, ki tvorijo ključ indeksnega zapisa se ujemajo z enako imenovanimi podatkovnimi elementi v zapisu osnovne datoteke • kazalec indeksnega zapisa kaže na polje, v katerem se nahaja pripadajoči osnovni zapis • ažuriranje: hkrati spremeni osnovno in indeksno datoteko Redki indeksi • pogoj za uporabo: osnovna datoteka je zaporedna + primarni indeks • v indeksu se nahaja po en zapis s kazalcem na vsako skupino polj z zapisi v osnovni datoteki • polja, ki tvorijo skupino, so polja, do katerih je možen hiter dostop npr. polja enega fizičnega bloka • indeks vsebuje tolikokrat manj zapisov kot osnovna datoteka, kolikor polj vsebuje skupina iskanje po indeksu je bistveno hitrejše kot iskanje po osnovni datoteki • redki primarni indeks sestavljajo indeksni zapisi, v katerih nastopata v paru kazalec na skupino polj in vrednost ključa zadnjega zapisa v skupini

  6. Primer redkega in gostega indeksa

  7. Primerjava med gostim in redkim indeksom • Glede porabe prostora • manjši (boljši) redki indeks • Slaba stran redkega indeksa: posebna zahteva glede razvrstitve zapisov • za redke indekse tudi zapisi osnovne datoteke morajo biti enako urejeni (grozdeni / clustered) • Glede iskanja • Redki indeks je krajši in se lahko nahaja v celoti v pomnilniku • Gosti indeks lahko takoj pove ali zapis obstaja • Glede spreminjanja vrednosti zapisa – lažje pri redkih indeksih

  8. Primer: cena (čas) iskanja zapisov, ki so v nekem intervalu vrednosti • Datoteka ima 10,000 blokov, iščemo interval, ki vsebuje 100 zapisov, predpostavka: 1 blok ima 20 zapisov • Število dostopov do diska za prenos stotih vrstic: • Uporaba neurejene datoteke (neumnost, vendar mogoče): 10,000 (pregledati je treba celotno datoteko) • Datoteka je zaporedna, zapisi so urejeni po iskalnem ključu (zelo ugodno, vendar malo verjetno): log2 10000 + (5 ali 6)  19 • Uporabimo gosti indeks:  100 • Uporabimo redki indeks: 5 ali 6 • Število dostopov do diska za branje indeksa(predpostavka: blok ima 2000 indeksnih zapisov) • Neurejena in zaporedna datoteka: 0 • Uporaba gostega indeksa: log210  4 • Uporaba redkega indeksa: 1 (preberemo le prvega)

  9. Kaj pa če je kljub vsemu indeksna datoteka prevelika? • Naredi večnivojski indeks (to je tisto, kar sodobni SUPB-ju tudi uporabljajo) • Nekoč pogosta uporaba ISAM indeksov, vendar zaradi statike so se izkazali za slabše • Danes najbolj uporabljani B+ indeksi 1. Nivo – redki indeks 2. Nivo – gosti indeks

  10. Značilnost: listi drevesa medsebojno niso povezani ISAM (le kot zanimivost) //po domače ‘iskalno drevo’ • Slaba stran – ob pogostem dodajanju ‘sorodnih’ zapisov se lahko pojavijo zelo dolge prelivne verige, iskanje po prelivnih verigah pa je zaporedno

  11. Uporaba B+ dreves za shranjevanje indeksne strukture // po domače ‘uravnovešeno iskalno drevo’ Značilnost: listi drevesa so tudi medsebojno povezani

More Related