organizacija datotek in indeksiranje

82
PODATKOVNE BAZE Modul: Organiz. dat. in ind. v 1.2 ©Laboratorij za informatiko - 1 - Organizacija datotek in indeksiranje Načini ureditve datotek Indeksi in njihov način delovanja ISAM, B+ drevo Povzeto po [1] in [5]

Upload: read

Post on 23-Feb-2016

84 views

Category:

Documents


0 download

DESCRIPTION

Povzeto po [1] in [5]. Organizacija datotek in indeksiranje. Načini ureditve datotek Indeksi in njihov način delovanja ISAM, B+ drevo. Osnovni koncepti…. Podatkovna baza je na sekundarnem pomnilniku organizirana v eno ali več datotek ( file ) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 1 -

Organizacija datotek in indeksiranje

Načini ureditve datotek Indeksi in njihov način delovanja ISAM, B+ drevo

Povzeto po [1] in [5]

Page 2: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 2 -

Osnovni koncepti… Podatkovna baza je na sekundarnem

pomnilniku organizirana v eno ali več datotek (file)

Vsaka datoteka zajema enega ali več zapisov (record).

Zapis sestavljajo polja (field). Zapisi običajno označujejo entitete, polja

pa njihove atribute.

Page 3: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 3 -

Osnovni koncepti… Uporabnik zahteva zapis “A10” od SUPB:

– SUPB naredi preslikavo logičnega zapisa v fizični;– Poišče fizični zapis in ga prepiše v primarni pomnilnik

oziroma v medpomnilnik;

Šifra Naziv Zaloga

A10 Telovadni copati Nike 10

A12 Trenerka Bali 4

BC80 Moška jakna QuickSilver 1

X12 Ženska jakna QuickSilver 0

entiteta/zapis

atribut/polje

datotekaLogični pogled Fizični pogledTabela

Page 4: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 4 -

Osnovni koncepti… Med fizičnim in logičnim zapisom ne velja

vedno preslikava 1:1– Fizični zapis je enota prenosa med diskom in

primarnim pomnilnikom. – Lahko zajema tudi več logičnih zapisov. Podobno je

lahko tudi večji logični zapis zapisan čez več fizičnih zapisov.

Fizični zapis ustreza konceptu, ki smo ga obravnavali kot stran.

Page 5: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 5 -

Osnovni koncepti Zapisi tabele Artikel razdeljeni na strani…

Šifra Naziv Zaloga

A10 Telovadni copati Nike 10

A12 Trenerka Bali 4

BC80 Moška jakna QuickSilver 1

X12 Ženska jakna QuickSilver 0

Stran

1

2

ARTIKEL

Page 6: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 6 -

Datotečna organizacija… Datotečna organizacija pove, kako so

podatki v datoteki fizično urejeni v zapise in strani na sekundarnem pomnilniku.

Osnovne vrste datotečnih organizacij:– Kopica ali neurejena datoteka: zapisi so na disku

shranjeni v nedefiniranem vrstnem redu.– Zaporedno urejena datoteka: zapisi so urejeni po

vrednosti določenega polja.– Razpršena datoteka: zapisi so razpršeni z uporabo

hash funkcije.

Page 7: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 7 -

Datotečna organizacija… Za delo z zapisi v datotekah obstajajo

različne tehnike ali metode dostopa (access methods).

Metode dostopa določajo korake, ki jih je potrebno izvesti za zapis ali iskanje nekega zapisa v datoteki.

Metode dostopa so odvisne od datotečne organizacije.

Page 8: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 8 -

Neurejene datoteke… Imenujemo tudi kopica (heap). Najenostavnejša datotečna organizacija:

– Zapisi so shranjeni v istem vrstnem redu, kot so bili dodani

– Nov zapis dodan na zadnjo stran datoteke– Če ni dovolj prostora, se doda nova stran

Dobra lastnost:– Zelo učinkovito dodajanje zapisov

Uporabljamo za masovni vnos.– Ni potrebno računati, na katero stran bomo zapis

vstavili.

Page 9: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 9 -

Neurejene datoteke Slabosti:

– Neučinkovitost iskanja. Uporabiti moramo linearno iskanje (zapisi so neurejeni)

– Neizkoriščenost prostora: pri brisanju zapisa moramo najti stran z zapisom, zbrisati zapis ter stran shrani nazaj na disk. Spraznjen prostor na strani ostane neizkoriščen. Neurejene datoteke je potrebno občasno reorganizirati!

Page 10: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 10 -

Urejene datoteke… Zapisi v datotekah so lahko urejeni po

enem ali več poljih urejena ali zaporedna datoteka.

Za iskanje po poljih, po katerih je datoteka urejena, uporabimo binarno iskanje.

Primer:SELECT * FROM artikelWHERE sifra = 14

10 12 14 18 23 34 35 65 89 90 9972 781 2 3 4 5 6 7 8 11 12 139 10

Page 11: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 11 -

Urejene datoteke… Prednosti:

– Učinkovitost iskanja

Problem– Dodajanje in brisanje zapisov potrebno vzdrževati

vrstni red– Če želimo nek zapis dodati, moramo poiskati stran,

kamor bi zapis sodil glede na vrstni red. Če stran vsebuje dovolj praznega prostora, jo preuredimo in zapišemo nazaj na disk, sicer moramo nekaj zapisov premakniti na naslednjo stran itd.

Page 12: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 12 -

Urejene datoteke Dodajanje zapisa na začetek velike

datoteke posebej problematično.

Možna rešitev: uporaba dodatne neurejene datoteke (overflow ali transaction file):– Nov zapis je dodan v neurejeno datoteko– Neurejena datoteka se periodično prepiše v urejeno– Pri iskanju zapisa se najprej pogleda urejena

datoteka. Če zapisa ne najdemo, se linearno pregleda še neurejena.

Urejene datoteke se redko uporabljajo za shranjevanje podatkov, razen v kombinaciji s primarnim indeksom.

Page 13: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 13 -

Razpršene datoteke… V razpršenih ali hash datotekah so zapisi

razpršeni v skladu s hash funkcijo. Hash funkcija za vsak zapis izračuna naslov

strani (naslov bloka na disku), kamor zapis sodi glede na vrednost določenega polja (hash polje).

fhash(P) = naslov strani; P = vrednost hash polja.

Iskanje zapisa na strani se izvede v primarnem pomnilniku. Za večino zapisov moramo prebrati le eno stran.

Page 14: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 14 -

Razpršene datoteke… Za hash funkcijo izberemo operacijo, ki

zagotavlja enakomerno porazdeljenost zapisov po datoteki.

Najpopularnejša hash funkcija je ostanek pri deljenju (MOD) z določenim številom (n)

Primer:– Vrednost polja, ki nastopa kot argument hash

funkcije je 132– n = 24– 132/24 = 5, ostanek je 12 zapis se zapiše na 12

stran.

Page 15: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 15 -

Razpršene datoteke… Problem razpršenih datotek:

– Zaloga vrednosti hash polja navadno večja od števila naslovov, ki jih lahko vrne hash funkcija.

– Vsak naslov ustreza določeni strani (bucket), ki ima mesta za več zapisov.

– Znotraj strani so zapisi urejeni po vrsti, kot so bili vstavljeni.

– Ko hash funkcija za nek zapis vrne naslov strani, ki je polna, pride do kolizije.

Page 16: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 16 -

Razpršene datoteke… Za reševanje problemov z istim naslovnim

prostorom so na voljo različne tehnike– Odprto naslavljanje (open addressing)– Nepovezane dodatne strani (unchained overflow)– Povezane dodatne strani (chained overflow)– Večkratno razprševanje (multiple hashing)

Page 17: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 17 -

Razpršene datoteke… Odprto naslavljanje

– Zapisovanje: če pride do kolizije, poiščemo prvo stran, ki ima še kakšno prosto mesto. Ko pridemo do zadnje strani, gremo na začetek.

– Iskanje: enako kot pri zapisovanju. S to razliko, da če naletimo na prazno mesto preden na iskani zapis, privzamemo, da zapisa ni v datoteki.

Page 18: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 18 -

Razpršene datoteke… Primer:

– dodajamo zapis SL41– Hash funkcija MOD 3– SL41 je razvrščen za stran 2– Ker stran 2 nimam praznih mest, iščemo prvo

stran s še prosim mestom. Rezultat: stran 1.

Staff SA9 zapisStaff SL21 zapisStaff SG37 zapis

Staff SG5 zapisStaff SG14 zapis

Stanje prej Stran

0

1

2

Staff SA9 zapisStaff SL21 zapisStaff SG37 zapisStaff SL41 zapisStaff SG5 zapisStaff SG14 zapis

Stanje potem Stran

0

1

2

Page 19: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 19 -

Razpršene datoteke… Nepovezane dodatne strani:

– Namesto iskanja prostega mesta za primere kolizije vzdržujemo seznam dodatnih strani

– Rešitev na videz ne ponuja bistvenih izboljšav– V resnici daje boljše rezultate število kolizij je

manjše (z odprtim naslavljanjem rešimo le trenutno kolizijo. Obenem odpremo možnosti za nove kolizije.)

Staff SA9 zapisStaff SL21 zapisStaff SG37 zapis

Staff SG5 zapisStaff SG14 zapis

Stran

0

1

2

Staff SL41 zapisDodatni prostor Stran

3

4

Page 20: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 20 -

0

0

3

0

0

Razpršene datoteke… Povezane dodatne strani:

– Podobno kot nepovezane dodatne strani, le da so v tem primeru dodatne strani povezane z osnovnimi

– Vsaka stran ima dodatno polje, ki pove, ali je prišlo pri tej strani do kolizije ali ne. V polju je naslov dodatnega polja, kamor so razvrščeni zapisi, pri katerih pride do kolizije. Vrednost 0 pomeni, da kolizije ni bilo.

Staff SA9 zapisStaff SL21 zapisStaff SG37 zapis

Staff SG5 zapisStaff SG14 zapis

Stran

0

1

2

Staff SL41 zapisDodatni prostor Stran

3

4synonym pointer

Page 21: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 21 -

Razpršene datoteke… Večkratna razpršitev:

– Eden od načinov reševanja kolizij je večkratno razprševanje.

– Če pride do kolizije, se uporabi drugačna hash funkcija, ki vrača drugačen naslov.

– Dodatna hash funkcija je navadno takšna, da razvršča v dodati prostor.

Razprševanje v splošnem– Prinaša dobre rezultate pri iskanju (ob uporabi ene

izmed tehnik reševanja kolizij).– Spreminjanje zapisov je tudi enostavno, razen v

primerih, ko spremenimo hash polje.

Page 22: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 22 -

Dinamične razpršene datoteke… Obravnavane hash tehnike so vse statične:

– ko zapisu določimo naslov, se ta ne spremeni, če se ne spremeni vrednost hash polja .

Problem: – Datoteka postane premajhna in zato vzamemo večjo.

Določiti moramo novo hash funkcijo in vse zapise iz stare datoteke premestiti (z uporabo novega razprševanja) v novo datoteko.

Alternativa:– Uporaba dinamičnih razpršenih datotek: datoteko

dinamično spreminjamo (večamo) po potrebi.– Obstajajo številne tehnike realizacije dinamičnih

razpršenih datotek.

Page 23: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 23 -

Dinamične razpršene datoteke… Razširljivo razprševanje (extendible

hashing)– Strani kreiramo po potrebi. V začetku gredo zapisi v

prvo stran.– Ko je stran polna, jo razdelimo glede na prvih i bitov,

kjer velja 0 ≤ i < b– Izbranih i bitov določa naslov oziroma ofset v

naslovni tabeli strani oziroma imeniku (BAT - Bucket Address Table). Vrednost i se spreminja z velikostjo datoteke

– V glavi imenika je zapisana trenutna vrednost i (globina) skupaj z 2i kazalci.

– Vsaka stran ima tudi lokalno globino, ki pove, pri katerem i dobimo naslov te strani.

Page 24: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 24 -

Dinamične razpršene datoteke…

0Staff SL21 zapisStaff SG37 zapis

Imenik

00

globina lokalna globina

0Izgled dinamično razpršenedatoteke po vpisu zapisovSL21 in SL37.

10

1

1Staff SL21 zapisStaff SG14 zapis 0

1Staff SG37 zapis 1

Izgled dinamično razpršenedatoteke po vpisu zapisa SG14

200

01

10

11

2Staff SA9 zapisStaff SG14 zapis 0

2Staff SL21 zapis 2

1Staff SG37 zapis 1

Izgled dinamično razpršenedatoteke po vpisu zapisaSA9.

Page 25: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 25 -

Omejitve tehnike razprševanja Učinkovitost razpršenih datotek za iskanje

odvisna od hash polja.

Uporaba razpršenih datotek ni primerna za:– Iskanje po vzorcu– Iskanje po nizu vrednosti– Iskanje po polju, ki ni hash polje

Page 26: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 26 -

Indeksi in indeksiranje… Indeks je podatkovna struktura, ki SUPB-ju

omogoča hitrejše lociranje zapisov v datoteki.

Analogija z indeksom knjige– Indeks knjige vsebuje ključne besede (urejene po

abecedi) ter za vsako pove, na kateri strani ali straneh se ključna beseda pojavlja.

– Indeks omogoča, da nam ni potrebno prelistati cele knjige, ko želimo najti določeno vsebino.

Page 27: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 27 -

Indeksi in indeksiranje… Terminologija:

– Podatkovna datoteka: datoteka s podatki (imenujemo tudi osnovna datoteka)

– Indeksna datoteka: datoteka z indeksom. Indeks sestavlja iskalni ključ ter kazalec na zapis v podatkovni datoteki.

– Iskalni ključ: sestavljen iz vrednosti polj, po katerih je datoteka indeksirana. Imenujemo tudi indeksno polje.

B003, 18000 SG14 David Ford 18000 B003B003, 18000Iskalni ključ Zapis

Indeksna datoteka Podatkovna datoteka

Page 28: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 28 -

Indeksi in indeksiranje… Indeksi gruče (clustered index)

– Z indeksom gruče označujemo indekse, ki temeljijo na poljih, po katerih je obenem urejena tudi podatkovna datoteka.

.........

Podatkovna datoteka

Indeksna datoteka

.........

Podatkovna datoteka

Indeksna datoteka

Page 29: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 29 -

Indeksi in indeksiranje… Primarni in sekundarni indeksi

– Primarni indeks (Primary index): indeks po poljih, ki vsebujejo primarni ključ. Vsak iskalni ključ kaže natanko na en zapis v podatkovni datoteki. Datoteka je po ključu urejena.

– Sekundarni indeks (Secondary key): vsak indeks, ki ne temelji na poljih, ki bi vsebovala primarni ključ.

Vsaka datoteka ima lahko:– primarni indeks ali indeks gruče ter – več sekundarnih indeksov!

Page 30: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 30 -

Indeksi in indeksiranje… Redki in gosti indeksi:

– Redki indeks (sparse index): indeksna datoteka vsebuje kazalce, ki kažejo le na določene zapise v podatkovni datoteki. Navadno vsebuje po en zapis za vsako stran v podatkovni datoteki;

– Gosti indeks (dense index): indeksna datoteka vsebuje kazalce na vse zapise v podatkovni datoteki.

Page 31: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 31 -

Indeksi in indeksiranje…

AbbyDavidMike SG14 David Ford 18100 B003

SG37 Ann Beech 12000 B003SF21 Carol White 32000 B002

SF01 Abby Ford 18000 B002

SO37 Jeana Fraser 22000 B001SX21 John Smith 9000 B001

SL09 Mike Tires 12500 B001SM01 Moar Trex 19000 B003

9000120001250018000

18100190002200032000

PODATKOVNA DATOTEKA

Redki indekspo polju name

gosti indekspo polju salary

fName salary

Page 32: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 32 -

Indeksi in indeksiranje… Indeksi s sestavljenim iskalnim ključem

(composite key ali concatenated key):– Indeksi po več kot enem polju– Uporabljamo za kombinacije polj, po katerih pogosto

iščemo

Page 33: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 33 -

Indeksi in indeksiranje…

staffNo

fName

lName

salary branchNo

SG14 David Ford 18000 B003SG37 Ann Beech 12000 B003SL21 John White 30000 B005SL41 Julie Lee 9000 B005

9000, B00512000, B00318000, B00330000, B005

9000120001800030000

staffNo

fName

lName

salary branchNo

SG14 David Ford 18000 B003SG37 Ann Beech 12000 B003SL21 John White 30000 B005SL41 Julie Lee 9000 B005

B003, 12000B003, 18000B005, 9000B005, 30000

B003B003B005B005

(salary, branchNo)

(branchNo, salary)

(salary)

(branchNo)

Page 34: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 34 -

Drevesno indeksiranje… Drevesno indeksiranje učinkovito pri:

– intervalnem iskanju ter – dodajanju in brisanju (za razliko od urejenih datotek).

Iskanje po enakosti boljše pri hash indeksiranju.

Pogledali bomo dve indeksni strukturi, ki temeljita na drevesni organizaciji:– ISAM (Indexed Sequential Access Method):– B+ drevesna struktura

Page 35: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 35 -

Drevesno indeksiranje… ISAM:

– statičen indeks,– učinkovit v primerih, ko se podatkovna datoteka ne

spreminja pogosto,– ni učinkovit pri datotekah, ki se hitro povečujejo ali

krčijo. B+ drevo:

– dinamična struktura; se zelo dobro prilagaja spremembam v podatkovni datoteki,

– najbolj uporabljana vrsta indeksa; omogoča hitro iskanje zapisov, intervalno iskanje in se učinkovito prilagaja spremembam v podatkovni datoteki.

Page 36: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 36 -

ISAM… Primer:

– Imamo datoteko oseb, urejeno po polju “starost”.– Če želimo najti vse osebe starejše od 30 let, moramo

najprej najti prvo (s pomočjo binarnega iskanja), ki je starejša od 30 in od te naprej prebrati preostale zapise datoteke.

Možnost za pohitritev iskanja:– Izdelamo dodatno datoteko, s po enim zapisom za

vsako stran v podatkovni datoteki in jo uredili po polju “starost”.

– Vsak zapis v dodatni datoteki vsebuje par <ključ prvega zapisa na strani, kazalec na zapis>

Page 37: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 37 -

ISAM… Primer (nadaljevanje):

– Vsak ključ v indeksni datoteki predstavlja mejnik vsebine, na katero kažeta levi in desni kazalec vsaka stran v indeksu vsebuje en kazalec več, kot je ključev.

– Binarno iskanje se izvede nad indeksno datoteko, ki je manjša od osnovne datoteke => hitrejše iskanje.

Page 38: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 38 -

ISAM… Velikost indeksne datoteke poraja idejo o

ISAM indeksu: – Zakaj ne bi ponovili koraka in zgradili še eno dodatno

datoteko, ki bi imela za vsako indeksno stran en zapis, tako da bi velikost končnega indeksa znašala samo eno stran?

Page 39: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 39 -

ISAM… ISAM indeks sestavljajo dve vrsti strani:

– listi: strani s podatki (in dodatne strani - overflow) in– vozlišča: nepodatkovne strani.

Nekatere ISAM strukture temeljijo na skrbno oblikovanih straneh, ki ustrezajo fizični organizaciji datotek na sekundarnem mediju (IBM).

ISAM je v celoti statična struktura (z izjemo dodatnih strani)

Page 40: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 40 -

ISAM… Gradnja ISAM indeksa:

– Ko se indeksna datoteka kreira, so vse strani v listih urejene zaporedno in po iskalnem ključu.

– Vstavljanje novih podatkov lahko zahteva kreiranje dodatnih strani (če je stran, kamor podatek sodi, polna).

ISAM podpira operacije iskanje, brisanje in vstavljanje.

Page 41: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 41 -

ISAM… Iskanje:

– Začnemo v korenu– Če vrednost, ki jo iščemo manjša ali enaka ključu

korena, sledimo levemu kazalcu, sicer desnemu.– Ponavljamo, dokler ne pridemo do listov drevesa. Če

podatke, ki ga iščemo, ni v listu, iščemo v dodatnih straneh.

Iščemo zapis z vrednostjoiskalnega ključa 27

Page 42: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 42 -

ISAM… Dodajanje

– Stran v listih, kamor zapis sodi, poiščemo enako kot pri iskanju

– Zapis dodamo na prvo prosto mesto

Podatki v primarnih straneh listov so urejeni

Dodamo zapis z vrednostjoiskalnega ključa 23, 48, 41, 42

Page 43: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 43 -

ISAM… Brisanje:

– Zapis, ki ga brišemo, poiščemo enako kot pri iskanju Če je zapis na dodatni strani in gre za zadnji zapis na

strani, stran zbrišemo. Če je zapis na primarni strani in gre za zadnji zapis na

strani, pustimo stran prazno. Služi kot mesto za kasnejšo rabo.

– Lahko se zgodi, da se iskalni ključ, ki nastopa v indeksnem delu, ne pojavi v listih.Brisanje zapisov z vrednostjo

iskalnega ključa 42, 51 in 97.

Page 44: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 44 -

ISAM… Primer izračuna stroškov iskanja zapisa v

ISAM strukturi:– Število I/O operacij = logFN, kjer je N število

primarnih strani listov, F število otrok vsake indeksne strani.

– Število I/O operacij pri binarnem iskanju po urejeni datoteki je log2N. Pri iskanju po eno-nivojskem indeksu: log2(N/F)

– Primer: datoteka z 1.000.000 zapisi, 10 zapisov na stran v listih in 100 zapisov v indeksnih straneh

Strošek branja cele datoteke: 100.000 Strošek binarnega iskanja po urejeni datoteki: 17 Strošek binarnega iskanja po eno-nivojskem indeksu: 10 Strošek binarnega iskanja po ISAM strukturi: 3 (brez

dodatnih strani)

Page 45: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 45 -

ISAM Problem ISAM strukture se pokaže, ko

naraste število dodatnih strani– Podatki v dodatnih straneh so načeloma lahko

urejene, običajno pa niso (zaradi učinkovitosti dodajanja zapisov)

– Problem omilimo tako, da v začetku, ko izgradimo indeks, pustimo nekaj praznega prostora v straneh listov.

Page 46: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 46 -

B+ drevesa… B+ indeks je dinamičen njegova

struktura se dinamično prilagaja spremembam v podatkovni datoteki.

Odpravlja težave, ki so značilne za ISAM indeks– npr. s povečevanjem števila dodatnih strani pada

učinkovitost... B+ drevo predstavlja iskalno strukturo

– B+ je uravnoteženo drevo, katerega vozlišča usmerjajo iskanje, listi pa vsebujejo podatke (ključe).

Page 47: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 47 -

B+ drevesa… B+ drevo se dinamično spreminja, zato

strani v listih ni možno alocirati zaporedno. Uporabimo kazalce.

Liste B+ drevesa uredimo z dvosmernim seznamom.

Indeksni del

Podatkovni del

Indeksna datoteka

Page 48: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 48 -

B+ drevesa… Lastnosti B+ dreves:

– Operacije dodajanja in brisanja ohranjajo drevo uravnoteženo;

– Vozlišča (razen korena) so vsaj 50% zasedena, če uporabimo ustrezen algoritem brisanja;

– Iskanje določene vrednosti zahteva le pot od korena do ustreznega lista.

– Poti do vseh vozlišč so zaradi uravnoteženosti enake in določajo višino drevesa.

– Zaradi velikega razvejanja (velik F) je višina običajnih B+ dreves majhna (redko več kot 3 ali 4).

Page 49: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 49 -

B+ drevesa… Primer B+ drevesa. Kakšna je višina in

kakšna razvejanost F?

– d je parameter B+ drevesa imenovan red drevesa; – 2*d predstavlja kapaciteto vozlišča. Edina izjema je

korensko vozlišče, za katerega velja 1=<m=<2d.– Vsako vozlišče B+ drevesa vsebuje m vpisov, pri čemer

velja d ≤ m≤ 2*d.

Page 50: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 50 -

B+ drevesa… Uporaba B+ dreves se splača v primerih,

ko se podatki velikokrat spreminjajo, obenem pa potrebujemo zaporedno iskanje.

Prednosti pred uporabo urejenih datotek:– Za ceno dodatnega prostora, ki ga porabimo z

indeksno datoteko, pridobimo vse prednosti urejene datoteke, obenem pa ne izgubimo na učinkovitosti dodajanja in brisanja.

Prednosti pred uporabo ISAM-a:– Zaradi dodajanja ni potrebno ustvarjati dodatnih

oziroma presežnih strani.

Page 51: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 51 -

B+ drevesa… Iskanje:

– Algoritem za iskanje deluje podobno kot pri ISAM strukturi.

Pri algoritmih bomo predpostavili, da v drevesu ni duplikatov.

Uporabimo linearno alibinarno iskanje

P0 K1 P1 K2 P2 Km Pm…

Page 52: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 52 -

B+ drevesa… Dodajanje:

– Dodajamo podatek k*– Poiščemo list, kamor k* spada– Če je v listu še prostor, k* dodamo, sicer moramo list

razdeliti na dva dela. Primer: dodati želimo 8*

začetno drevo

List se razpolovi5 postane kazalec na nov list

Kopira se en nivo višje.

Problem: tudi zgornje vozlišče je polno

Page 53: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 53 -

B+ drevesa… Dodajanje (nadaljevanje):

– Če moramo zaradi razpolovitve lista dodati k* v vozlišče, ki je že polno, se delitev ponovi.

– V splošnem moramo vozlišče, ki ni list, razpoloviti, ko je polno vsebuje 2d ključev in 2d+1 kazalcev

– Z dodatnim indeksnim poljem k* imamo 2d+1 ključev in 2d+2 kazalcev lahko razdelimo na dva minimalno zasedena vozlišča (vsak po d ključev in d+1 kazalcev ter dodaten ključ, ki smo ga izbrali kot delitveni ključ.

– Delitveni ključ skupaj s kazalcem na drugi del razdeljenega vozlišča premaknemo eno raven višje.

Page 54: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 54 -

B+ drevesa…

17 je delitveni ključ, ki ga skupaj s kazalcem na drugo

polovico razdeljenega vozliščapremaknemo en nivo višje.

Dodati želimo 5*vozlišče je polno

Končno drevo Nov koren vkončnem drevesu

Page 55: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 55 -

B+ drevesa… Algoritem za

dodajanje

Page 56: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 56 -

B+ drevesa… Variacija algoritma za dodajanje elementov

v B+ drevesa:– v primeru, ko dodajamo v vozlišče N, ki je polno,

uporabimo postopek redistribucije podatkov ali razcepljanje strani.

– Redistribucija se nanaša na vozlišče N in na vozlišči, ki sta njen levi in desni sosed in hkrati pripadata istemu nad-vozlišču. …

… … …

Vozlišče N Vozlišče N+1Vozlišče N+1

Page 57: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 57 -

B+ drevesa… Primer dodajanja z redistribucijo…

Primer: dodati želimo 8*

začetno drevo

Vozlišče N ima samo desnega soseda.N je polno, desno pa ima še dve mesti.Uporabimo redistribucijo.

Končno drevoKljuč 13 nadomestimo z 8 –najmanjšim ključem desnega soseda

Page 58: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 58 -

B+ drevesa… Stroški redistribucije:

– Da ugotovimo, ali je redistribucija možna, moramo preveriti sosede (do 2 I/O operaciji). Če so sosedi polni, je razdelitev vseeno potrebna.

– Stroški redistribucije v indeksnem delu Preverjanje možnosti redistribucije v povprečju poveča

število I/O operacij, saj se redko zgodi, da bi bila redistribucija možna se ne splača.

– Stroški redistribucije v podatkovnem delu Če potrebno razdeliti list, moramo vseeno prebrati sosedno

vozlišče, da popravimo kazalce. Redistribucija se splača: če list zaseden, preberi soseda. Če

prosto mesto, dodaj, sicer razpolovi.

Page 59: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 59 -

B+ drevesa… Brisanje:

– Poiščemo zapis in ga brišemo.– Če se zgodi, da zasedenost lista, v katerem je bil

podatek, pade pod mejo, moramo redistribuirati podatke s sosednjimi listi ali pa združiti več listov skupaj.

– Če podatke redistribuiramo med dve vozlišči, moramo ustrezno spremeniti vsebino nad-vozlišča.

– Če podatke združimo iz dveh vozlišč, moramo vsebino njunih nad-vozlišč spremeniti tako, da brišemo indeksno polje za drugo vozlišče.

Page 60: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 60 -

B+ drevesa… Primer brisanja

Brišemo 19* in 20*

Končno drevo

Redistribuirani podatki

Po brisanju 20*podatke v listihredistribuiramo.Klljuč 24 nadomestimoz 27.

Page 61: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 61 -

Vozlišče, ki je imelo en sam ključ, združimo s sosedom. Ko združujemo vozlišča v indeksnem delu, pride do manjka ključev v našem primeru manjka ključ za najbolj levi kazalec pri 30. Dodamo ključ, ki ga je potrebno zaradi združevanja v nad-vozlišču brisati (17).

B+ drevesa…Brišemo 24*

Po brisanju 24* združimo dve vozlišči.Ključ 27 ter njegovlevi kazalec brišemo.

Združeno vozlišče

Problem: vozlišče je ostalo z enim samim ključem

Združevanje listov: ključ se premakne en nivo navzgorZdruževanje v indeksnem delu: ključ se premakne iz zgornje ravni

Page 62: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 62 -

B+ drevesa… Pogledali smo:

– redistribucija v listih, – združevanje v listih in – združevanje v indeksnem delu

Ostane: – redistribucija v indeksnem delu

Page 63: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 63 -

B+ drevesa… Primer redistribucije v indeksnem delu

Primer vmesnega drevesapo brisanju 24* Problematično vozlišče

Zaradi združitve smo polji 17 in 20ter polje 22 v nad-vozlišču premaknili za dve mesti v desno.

Page 64: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 64 -

B+ drevesa… Stroški brisanja

– Pri brisanju pogledamo najprej samo enega soseda Če ima odvečna polja, naredimo redistribucijo, sicer

združitev– Če ima vozlišče tudi drugega soseda, se splača

pogledati zaradi možnosti za redistribucijo. Možnosti so velike.

– Redistribucija je cenejša od združevanja, saj se manifestira kvečjemu še v nadvozlišču. Z redistribucijo pridobimo tudi manj zasedena vozlišča (manj razlogov za razdruževanje ob vnosu)

Page 65: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 65 -

B+ drevesa… Algoritem za

brisanje

Page 66: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 66 -

B+ drevesa… Duplikati

– Več zapisov ima isti ključ isti ključ se lahko pojavi v več listih. Če upoštevamo možnost duplikatov, se postopki iskanja, dodajanja in brisanja zakomplicirajo.

– Iskanje: Lahko rešimo z dodatnimi stranmi (overflow; podobno kot

ISAM) Običajna rešitev: algoritem poišče najbolj levo podatkovno

polje z iskanim ključem in po potrebi pregleda še nadaljnje strani…

– Brisanje če brišemo zapis, moramo v listih pregledati več polj, da

najdemo tistega, ki ga je potrebno brisati. Rešitev: v iskalni ključ dodamo še rid (record ID) – tipična

rešitev v komercialnih SUPB.

Page 67: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 67 -

B+ drevesa v praksi… Stiskanje ključev

– Višina drevesa premo sorazmerna številu podatkovnih polj in obratno sorazmerna velikosti indeksnih polj (F).

– Število I/O operacij za branje podatkovnega polja = h. …

… … …

višina (h)

širina fan_out (F)

h = logF(# podatkovnih polj)

Indeksno polje

Page 68: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 68 -

B+ drevesa v praksi… Stiskanje ključev (nadaljevanje):

– Za povečanje učinkovitosti potrebno maksimizirati F oziroma minimizirati velikost indeksnega polja.

– Velikost indeksnega polja odvisna od velikosti iskalnega ključa.

– V indeksnem delu se ključi uporabljajo zgolj za usmerjanje…

– Uporabimo tehniko stiskanja na osnovi prefiksov (Prefix Key Compresion).

Kako lahko skrajšamo ključe?

Page 69: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 69 -

B+ drevesa v praksi… Komercialni sistemi:

– IBM DB2, Informix, Microsoft SQL Server, Oracle, Sybase ASE – vsi sistemi podpirajo indekse na osnovi B+ dreves; razlike predvsem v obravnavi duplikatov in postopku brisanja.

– Sybase ASE: pri brisanju se uporabi Združevanje (če zasedenost pod mejo) ali Označitev zapisa, da je brisan. Občasno se požene

postopek (garbage collection scheme), ki sprosti nezaseden prostor.

– Oracle: pri brisanju se zapis označi kot brisan. Obnovitev indeksa možna on-line (ko je indeks v uporabi) ali na kopiji indeksa z združevanjem nepolnih vozlišč.

Page 70: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 70 -

B+ drevesa v praksi Komercialni sistemi (nadaljevanje):

– Informix: pri brisanju se zapis označi kot brisan. – IBM DB2, Microsoft SQL Server: pri brisanju se zapis

dejansko briše. Če pade zasedenost vozlišča pod mejo, se uporabi združevanje.

Page 71: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 71 -

Bitni indeksi… Bitni indeksi (Bitmap index) so popularen

način indeksiranja, posebej na področju podatkovnih skladišč.

Koncept: – Uporabljajo se za polja, ki imajo majhno število

možnih vrednosti– Namesto indeksiranja dejanske vrednosti polja, se za

vsak zapis shrani bitni vektor. – Bitni vektor ima postavljen bit v stolpcu, ki ustreza

pravi vrednosti.– Če je možnih vrednosti malo, je bitni indeks zelo

učinkovit.

Page 72: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 72 -

Bitni indeksi… Primer bitnega indeksastaffNo

fName

lName

position salary branchNo

SG14 David Ford Manager 18000 B003SG37 Ann Beech Assistant 12000 B003SL21 John White Supervisor 30000 B005SL41 Julie Lee Assistant 9000 B005SF56 Tim Becker Manager 32000 B005

Manager

Assistent

Supervisor

1 0 00 1 00 0 10 1 01 0 0

Tabela Staff

Bitni indeks po polju position

B003 B0051 01 00 10 10 1

Bitni indeks po polju branchNo

Page 73: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 73 -

Bitni indeksi Prednosti bitnega indeksa v primerjavi z

B+ drevesi:– Kompaktnost– Večja učinkovitost pri iskanju po več predikatih (če za

njih obstajajo bitni indeksi)

Primer:SELECT staffNo, salaryFROM StaffWHERE position = ‘Supervisor’ AND branchNo = ‘B003’

– Za rezultat pomnožimo bitna vektorjaza vrednost Supervisor in B003.

Supervisor00100

B00311000

Page 74: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 74 -

Stični indeksi… Stični indeksi (Join index) podobno kot bitni

indeksi popularni na področju podatkovnih skladišč.

Koncept:– Uporabljajo se za tabele, ki imajo skupna polja (npr.

tuji ključi).– Indeks vsebuje za vsako vrednost ključa kazalec na

vse tabele, ki so indeksirane z istim stičnim indeksom.

– Način sortiranja indeksa je poljuben.

Page 75: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 75 -

Stični indeksi Primer stičnega indeksa

rowID branchNo

street city postcode

20001 B005 22 Deer Rd London SW1 4EH20002 B007 16 Argyll St Aberdee

nAB2 3SU

20003 B003 163 Main St Glasgow G11 9QX20004 B004 32 Manse Rd Bristol BS99 1NZ20005 … … … …

rowID propertyNo

street city postcode

30001 PA14 16 Holhead Aberdeen

AB2 3SU

30002 PL94 6 Argyll St London SW1 4EH30003 PG4 6 Lawrence St Glasgow G11 9QX30004 PG36 2 Manor Rd Glasgow G11 9QX30005 … … … … …

branchrowID

propertyrowID

city

20001 30002 London20002 30001 Aberdeen20003 30003 Glasgow20003 30004 Glasgow… … …

Tabela Branch

Tabela Property

Koliko nepremičnin je v mestih, kjerso locirane organizacijske enote nepremičninske agencije?

Page 76: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 76 -

Gruče… Nekateri SUPB nudijo združevanje relacij v

gruče (clustered relations) Gruča označuje skupino relacij, ki so fizično

shranjene skupaj, ker imajo nekatere stolpce enake in se pogosto uporabljajo skupaj.

Gruče izboljšajo čas dostopa do podatkov na disku.

Stolpce, ki so za relacije v gruči skupni, imenujemo ključ gruče (cluster key).

Page 77: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 77 -

Gruče Primer gruče

street city postcode

branchNo

staffNo

fName

lName

position …

22 Deer Rd London SW1 4EH B005 SL21 John White Manager …SL41 Julie Lee Assistant …

163 Main St Glasgow G11 9QX B003 SG37 Ann Beech Assistant …SG14 David Ford Supervisor …SG5 Susan Brand Manager …

Tabela BranchTabela Staff

Ključ gruče

Page 78: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 78 -

Smernice za izbiro datotečne organizacije… Pogledali bomo smernice za izbiro

datotečne organizacije, ko so na voljo naslednje vrste datotek:– Kopica– Razpršena datoteka– ISAM– B+ drevo

Page 79: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 79 -

Smernice za izbiro datotečne organizacije… Kopica (neurejena datoteka)

– Izkaže se, v primerih: Masovni vnos Majhne relacije (samo nekaj strani) Ko se večinoma poizveduje po vseh zapisih relacije

(v poljubnem vrstnem redu) Ko ima datoteka dodatno strukturo (indeks) in želimo

varčevati s prostorom…– Ni uporabna ko:

Pretežno iščemo le določene zapise in ne vseh…

Page 80: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 80 -

Smernice za izbiro datotečne organizacije… Razpršena datoteka (hash)

– Izkaže se, v primerih: Ko iščemo po enakosti glede na hash polje…

– Ni uporabna ko: Ko iščemo po vzorcu iz hash polja… Za intervalno iskanje (npr. 300-500) Ko iščemo po polju, ki ni hash polje Ko ne iščemo po celem hash polju ampak le po delu

(npr. samo po enem stolpcu in ne vseh, ki sestavljajo hash polje)

Ko se hash polje pogosto spreminja

Page 81: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 81 -

Smernice za izbiro datotečne organizacije… ISAM

– Bolj prilagodljiv kot razpršena datoteka. Omogoča iskanje po enakosti ključa, po vzorcu ali delu ključa ter intervalno.

– Slabosti: Je statičen indeks. Kreiramo ga, ko kreiramo

datoteko. S spremembami datoteke učinkovitost pada…

Page 82: Organizacija datotek in indeksiranje

PODATKOVNE BAZEModul: Organiz. dat. in ind. v 1.2©Laboratorij za informatiko

- 82 -

Smernice za izbiro datotečne organizacije B+ drevo:

– Bolj prilagodljiv kot razpršena datoteka. Omogoča iskanje po enakosti ključa, po vzorcu ali delu ključa ter intervalno.

– Je dinamičen in raste (se manjša) skupaj z datoteko.

– Spremembe datoteke ne vplivajo na učinkovitost…

– Ohranja urejenost po ključu…– Če se osnovna datoteka ne spreminja veliko,

je ISAM boljši.