Architektúra a optimalizácia relačných databáz - 2. cvičenie z 5.10.2020
Preber si túto prednášku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.
Zhrnutie prednášky
Druhé cvičenie nadväzuje na predchádzajúce a implementuje neklastrovaný B+ strom v Jave, kde listy stromu neobsahujú celé riadky, ale iba dvojicu vyhľadávací kľúč (priezvisko) a offset do externého súboru s pôvodnými dátami. Vytvára sa trieda SurnameOffsetEntry implementujúca BPObject a upravuje sa rozsahový dopyt tak, aby pre každý nájdený offset dohľadal celý pôvodný záznam v externom súbore person.tab. Podrobne sa vysvetľuje výpočet, na ktorú 4 KB stránku súboru daný offset patrí (celočíselné delenie veľkosťou stránky).
- - Neklastrovaný B+ strom ukladá v listoch len dvojicu kľúč (priezvisko) a offset, nie celý záznam
- - Trieda SurnameOffsetEntry implementuje BPObject s metódami load, save, getSize, compareTo, getKey
- - Prekrytie intervalového dopytu tak, aby vracal pôvodné Person entry namiesto dvojíc kľúč-offset
- - Otvorenie externého súboru person.tab a dohľadanie záznamu podľa offsetu
- - Výpočet začiatku stránky pomocou celočíselného delenia offsetu veľkosťou stránky (4096 bajtov)
- - Nutnosť čítať vždy celú 4 KB stránku z disku, nie len jednotlivý záznam
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky