18
Grid index a vyhľadávanie nad ním Autor: Martin Katuščák Vedúci práce : Mgr. Martin Šumák

Grid index a vyhľadávanie nad ním

Embed Size (px)

DESCRIPTION

Grid index a vyhľadávanie nad ním. Autor: Martin Katu ščák Vedúci práce : Mgr. Martin Šumák. Prečo indexovať dáta?. indexovanie dát je aktuálnou problematikou už mnoho rokov. Indexovanie je nevyhnutnou podmienkou pre rýchle a efektívne vyhľadávanie. - PowerPoint PPT Presentation

Citation preview

Page 1: Grid index a vyhľadávanie nad ním

Grid index a vyhľadávanie nad ním

Autor: Martin Katuščák

Vedúci práce: Mgr. Martin Šumák

Page 2: Grid index a vyhľadávanie nad ním

Prečo indexovať dáta?• indexovanie dát je aktuálnou problematikou

už mnoho rokov. Indexovanie je nevyhnutnou podmienkou pre rýchle a efektívne vyhľadávanie.

• Snaha o vytvorenie novej štruktúry na indexovanie dát využitím hash funkcie mapovania do súboru.

Page 3: Grid index a vyhľadávanie nad ním

Ciele práce:1. Zostrojenie n - rozmerného

indexu nad dátami.2. Zápis indexovaných dát do

súboru.3. Implementácia

vyhľadávacieho algoritmu nad indexom.

Page 4: Grid index a vyhľadávanie nad ním

Cieľ 1:Zostrojenie n - rozmerného indexu nad dátami.

Čo je grid index?• n - rozmerná štruktúra

• V každom rozmere obsahuje hodnoty z intervalu minima a maxima spomedzi všetkých hodnôt objektov v danom rozmere.

• Každý rozmer reprezentuje jednu z vlastnosti objektov.

Page 5: Grid index a vyhľadávanie nad ním

Grid index:

•Zostrojuje sa až nad konkrétnymi dátami, čo znamená, že najprv musíme poznať všetky dáta ktoré chceme indexovať

•Umožňuje pridávať aj ďalšie objekty do indexu, ale po určitom čase sa z dôvodu efektivity musí prebudovať, keďže nejde o dynamickú štruktúru.

Page 6: Grid index a vyhľadávanie nad ním

Reprezentácia dát:

•Dáta budú reprezentované ako objekt so súradnicami, pričom súradnica v danom rozmere určuje vlastnosť objektu.

•Všetky objekty musia byť rovnakého rozmeru, čo znamená, že indexujeme len úplné dátá.

•Trieda dáta bude obsahovať okrem súradníc aj identifikačné číslo.

Page 7: Grid index a vyhľadávanie nad ním

Implementácia grid indexu:•Myšlienkou je rozdelenie jedného intervalu pre každý

rozmer na menšie pod intervaly, ktoré budú vytvárať okienka indexu.

•Každý objekt ktorý budeme indexovať patrí práve do jedného takéhoto okienka na základe svojich súradníc.

•Spôsob akým index rozdelíme určuje povahu a efektivitu indexu.

Page 8: Grid index a vyhľadávanie nad ním

Implementácia grid indexu:

•Pri implementácií sme s vedúcim zvolili rozdelenie na základe početnosti hodnôt.

•To znamená, že v rozmere v ktorom je viac rôznych hodnôt bude aj pod intervalov viac a to práve o + 1.

•Základom indexu je zoznam zoznamov, čiže pre každý rozmer práve jeden zoznam ktorý obsahuje deliace body intervalu.

Page 9: Grid index a vyhľadávanie nad ním

Príklad 2 rozmerného indexu:

Page 10: Grid index a vyhľadávanie nad ním

Cieľ 2: Zápis indexovaných dát do súboru.

•Na začiatku si inicializujeme súbor ktorý ma pripravených toľko stránok, koľko máme okienok indexu.

•Na zápis objektov do súboru využívam triedu Cache ktorá pracuje s triedami ByteBuffer, RandomAcessFile a FileChanel. Pri zápise alebo čítaní zo súboru pracujeme s celou stránkou.

Page 11: Grid index a vyhľadávanie nad ním

Cieľ 2: Zápis indexovaných dát do súboru.

•Offset stránky v súbore získame vzorcom offset = page_size * index_okienka

•Keďže vieme do ktorého okienka objekt patrí, dokážeme vypočítať index tohto okienka.

•Prvá stránka obsahuje offsety všetkých pretečených stránok.

Page 12: Grid index a vyhľadávanie nad ním

Ciel 3: Implementácia vyhľadávacieho algoritmu nad indexom.

•Rozhodol som sa pre implementáciu Range Query, čiže rozsahový dopyt.

•Vstupom tohto dopytu je ľavý dolný roh a dĺžky strán pre každý rozmer.

•Rozmer dopytu musí zodpovedať rozmeru indexu.

Page 13: Grid index a vyhľadávanie nad ním

Ciel 3: Implementácia vyhľadávacieho algoritmu nad indexom.

•V prvom kroku zistíme krajné okienka ktoré nám dopyt preťal.

•Následne potrebujeme generovať súradnice všetkých okienok vo vnútre dopytu a to na základe krajných súradníc.

•Implementovaná je rekurzívna funkcia ktorá pripomína generovanie permutácií.

Page 14: Grid index a vyhľadávanie nad ním

Ciel 3: Implementácia vyhľadávacieho algoritmu nad indexom.

•Výsledné dostaneme indexy všetkých stránok v súbore ktoré musíme prečítať.

•Následné už len stačí overiť všetky objekty z týchto stránok a vrátiť výsledok.

Page 15: Grid index a vyhľadávanie nad ním

Stav práce:

•Kompletné zimplementovaná tvorba indexu na základe náhodne generovaných alebo zo súboru prečítaných dát.

•Zimplementovaný vyhľadávací algoritmus.

Page 16: Grid index a vyhľadávanie nad ním

Plán práce do konca semestra

•Urobiť porovnávacie testy s R – stromom nad rovnakými dátami.

•Otestovať Range query vyhľadávanie podľa časových záznamov nad oboma indexami.

•Napísať prácu.

Page 17: Grid index a vyhľadávanie nad ním

Odporúčaná literatúra:

• Pokorný, J. – Žemlička, M. – :Základy implementace souboru a databázi, Second edition, 2004, 212 s., ISBN 80-246-0837-5

• Yannis Manolopoulos, Alexandros Nanopoulos, Apostolos N. Papadopoulos, Yannis Theodoridis: R-Trees: Theory and Applications, Springer-Verlag London Limited 2006

• Raghu Ramakrishnan, Johannes Gehrke: Database Management Systems, 2007

Page 18: Grid index a vyhľadávanie nad ním

Záver:Ďakujem za pozornosť