Architektúra a optimalizácia relačných databáz - 2. cvičenie z 5.10.2020

Zdroj
ručne priradené
Pridané

Pozrieť na YouTube →

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.

Otvoriť AI: ChatGPT · Claude · Gemini

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.