kapitulli4 db(1)

Upload: enisa-ismajli

Post on 07-Mar-2016

237 views

Category:

Documents


0 download

DESCRIPTION

Kapitulli4 DB(1)

TRANSCRIPT

  • 1Kapitulli 4

    Strukturat e Indeksuara te Skedareve

  • 2OBJEKTIVAT Tipet e Indekseve Single-level Ordered

    Primary Indexes Clustering Indexes Secondary Indexes

    Indekset Multilevel Dynamic Multilevel Indexes Using B-

    Trees and B+-Trees Indexes on Multiple Keys

  • 3Blloqet e Regjistrimeve Regjistrimet e nje skedari mund te

    vendosen ne disk ne blloqe Nje bllok eshte njesia e te dhenes se

    transferuar ndermjet diskut dhe memories

    Kur madhesia e bllokut eshte me e madhe se madhesia e regjistrimit, cdo bllok do te permbaje disa regjistrime

  • 4Blloqet e Regjistrimeve(vazhdim)

    Nese madhesia e nje blloku eshte B bytes atehere per nje skedar regjistrimesh me madhesi fikse R bytes ne mund te vendosim Bfr = B Div R regjistrime per bllok

    Bfr blocking factor per skedarin

  • 5Skedaret e Regjistrimeve te Renditura (Sorted Files)

    Fizikisht regjistrimet e nje skedari ne disk mund te renditen ne baze te vlerave te nje fushe ordering field.

    Ky quhet ordered ose sequential file. Ne se ordering field eshte nje key field

    atehere fusha quhet gjithashtu ordering key.

  • 6Avantazhet e Sorted Files

    Leximi i regjistrimeve behet me eficient Gjetja e regjistrimit pasardhes duke u nisur

    nga ai korrent nuk kerkon aksesim te blloqeve te tjere

    Duke perdorur nje search condition bazuar ne vleren e e nje ordering key field con ne nje aksesim me te shpejte kur perdoret teknika e kerkimit binar qe eshte nje permiresim i kerkimit linear

  • 7Sorted Files(vazhdim) Nje kerkim binar per skedaret ne disk mund

    te behet ne blloqe me teper se ne regjistrime Nese nje file ka b blloqe 1, 2, .., b;

    regjistrimet jane te renditur sipas rendit rrites te fushes se tyre celes; dhe ne po kerkojme per nje regjistrim ku ordering key field = K

    Nje kerkim linear akseson (b/2) blloqe nese regjistrimi gjendet dhe b blloqe nese regjistrimi nuk gjendet

    Nje kerkim binar zakonisht akseson log2(b) blloqe nese regjistrime gjendet ose jo

  • 8Indekset si Access Paths

    Nje indeks single-level eshte nje skedar ndihmes qe e ben me eficient kerkimin per nje record ne nje skedar te dhenash.

    Indeksi zakonisht specifikohet ne nje nga fushat e skedarit (megjithese ai mund te jete i specifikuar ne fusha te ndryshme).

    Nje forme e nje indeksi eshte nje skedar elementesh , i cili eshte i renditur sipas fushes se vleres

    Indeksi quhet nje access path ne fushe.

  • 9Indekset si Access Paths (vazhdim)

    Skedari indeks zakonisht okupon ne menyre te konsiderueshme me pak disk blocks se sa skedari i te dhenave sepse elementet e tij jane shume me te vogla

    Nje kerkim binar ne indeks jep si rezultat (yields) nje pointer tek regjistrimi i skedarit

    Indekset gjithashtu mund te karakterizohen si te dendur (dense) ose te rralle (sparse). Nje dense index ka nje element indeks per cdo search key

    value (pra per cdo record) ne skedarin e te dhenave. Nje sparse (ose nondense) index, nga ana tjeter, ka

    elemente indeks per vetem disa prej search values

  • 10

    Indekset si Access Paths (vazhdim)Shembull: Jepet skedari I meposhtem I te dhenave:PUNONJESI(EMRI, ID, ADRESA, DETYRA, PAGA, ... )Supozojme qe:record size R=150 bytesblock size B=512 bytesr=30000 records

    Me pas , kemi :blocking factor Bfr= B div R= 512 div 150= 3 records/blocknumber of file blocks b= (r/Bfr)= (30000/3)= 10000 blocks

    Per nje indeks ne fushen ID, marrim field size VID=9 bytes,marrim record pointer size PR=7 bytes. Atehere:index entry size RI=(VID+ PR)=(9+7)=16 bytesindex blocking factor BfrI= B div RI= 512 div 16= 32 entries/blocknumber of index blocks bI= (r/ BfrI)= (30000/32)= 938 blocksbinary search needs log2bI= log2938= 10 block accesses

    Krahasuar me nje kosto mesatare te kerkimit linear prej:(b/2)= 30000/2= 15000 block accesses

    Nese regjistrimet ne skedar jane te renditura, kosto e krkimit binar mund te jete:log2b= log230000= 15 block accesses

  • 11

    Tipet e Indekseve Single-Level Primary Index

    Percaktohet ne nje data file te renditur Data file eshte i renditur sipas nje key field Perfshin nje element index per cdo bllok te dhenash

    ne skedarin e te dhenave; elementi index ka vleren e fushes celes per regjistrimin e pare ne bllok, qe quhet block anchor

    Nje skeme e ngjashme mund te perdori regjistrimin e fundit ne nje bllok.

    Nje primary index eshte nje indeks nondense (sparse), sepse ai permban nje element per cdo bllok disku te skedarit te te dhenave dhe celesat e regjistrimit te tij anchor ne vend te cdo vlere kerkimi.

  • 12

    FIGUREPrimaryindex ne fushen celes te renditjes per nje skedar

  • 13

    Tipet e Indekseve Single-Level

    Clustering Index Percaktohet per nje skedar te dhenash te renditura Skedari i te dhenave eshte i renditur sipas nje non-

    key field ndryshe nga primary index, i cili kerkon qe fusha e renditjes se te dhenave te kete nje vlere te vetme per cdo regjistrim.

    Perfshin nje index entry per cdo vlere te ndryshme te fushes; index entry shenon tek e dhena e pare e bllokut qe permban regjistrimet me kete vlere te fushes.

    Eshte nje shembull tjeter i nondense index ku Insertion dhe Deletion eshte relativisht i drejtperdrejte me nje clustering index.

  • 14

    Nje clustering index ne fushen e

    renditur jo celes te nje skedari Punonjesi.

  • 15

    ClusteringIndexme blloqete vecantaper cdogrupregjistrimesh

  • 16

    Tipet e Indekseve Single-Level Secondary Indexes

    Eshte gjithashtu nje skedar i renditur me dy fusha Fusha e pare eshte e te njejtit tip si disa fusha jo

    te renditura te data file dhe quhet indexing field e skedarit

    Fusha e dyte eshte ose nje block pointer ose nje record pointer

    Nje strukture aksesimi te tille e konsiderojme ne nje fushe celes- qe ka vlera te ndryshme per cdo regjistrim ne skedar

    Nje fushe e tille shpesh quhet secondary key

  • 17

    Secondary Indexes(vazhdim) Ekziston nje element i indeksit per cdo

    regjistrim ne data file, qe permban vleren e secondary key per regjistrimin dhe nje pointer ose tek blloku ku eshte ruajtur regjistrimi ose tek vete regjistrimi

    Eshte nje dense index; permban nje element per cdo regjistrim ne data file

    Kerkon, zakonisht me teper hapesire kujtese dhe nje kohe me te gjate kerkimi se primary index

  • 18

    Nje dense secondaryindex