1 / 18

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. 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.

ann-medina
Download Presentation

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

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. Grid index a vyhľadávanie nad ním Autor: Martin Katuščák Vedúci práce:Mgr. Martin Šumák

  2. 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.

  3. Ciele práce: • Zostrojenie n - rozmerného indexu nad dátami. • Zápis indexovaných dát do súboru. • Implementácia vyhľadávacieho algoritmu nad indexom.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. Príklad 2 rozmerného indexu:

  10. 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.

  11. 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.

  12. 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.

  13. 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í.

  14. 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.

  15. 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.

  16. 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.

  17. Odporúčaná literatúra: • Pokorný, J. – Žemlička, M. – :Základy implementacesouboru a databázi,Secondedition, 2004, 212 s., ISBN 80-246-0837-5 • YannisManolopoulos, AlexandrosNanopoulos, Apostolos N. Papadopoulos, YannisTheodoridis: R-Trees: Theory and Applications, Springer-VerlagLondonLimited 2006 • RaghuRamakrishnan, JohannesGehrke: DatabaseManagementSystems, 2007

  18. Záver: Ďakujem za pozornosť

More Related