grid index a vyhľadávanie nad ním
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 PresentationTRANSCRIPT
![Page 1: Grid index a vyhľadávanie nad ním](https://reader035.vdocuments.pub/reader035/viewer/2022062407/56812a7b550346895d8e073c/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062407/56812a7b550346895d8e073c/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062407/56812a7b550346895d8e073c/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062407/56812a7b550346895d8e073c/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062407/56812a7b550346895d8e073c/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062407/56812a7b550346895d8e073c/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062407/56812a7b550346895d8e073c/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062407/56812a7b550346895d8e073c/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062407/56812a7b550346895d8e073c/html5/thumbnails/9.jpg)
Príklad 2 rozmerného indexu:
![Page 10: Grid index a vyhľadávanie nad ním](https://reader035.vdocuments.pub/reader035/viewer/2022062407/56812a7b550346895d8e073c/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062407/56812a7b550346895d8e073c/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062407/56812a7b550346895d8e073c/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062407/56812a7b550346895d8e073c/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062407/56812a7b550346895d8e073c/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062407/56812a7b550346895d8e073c/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062407/56812a7b550346895d8e073c/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062407/56812a7b550346895d8e073c/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062407/56812a7b550346895d8e073c/html5/thumbnails/18.jpg)
Záver:Ďakujem za pozornosť