Hashovani na vnejsi pameti

ChatGPT

Vygenerováno pomocí ChatGPT na základě přednášek od Holubovy

Externí Hashovací Algoritmy

Externí hashování je metoda používaná k organizaci a přístupu k datům uloženým na sekundární paměti, jako jsou disky. Na rozdíl od interního hashování, které operuje v rámci omezení hlavní paměti, musí externí hashování efektivně spravovat větší datové sady, které se nevejdou do RAM. Níže jsou uvedena podrobná vysvětlení a příklady různých externích hashovacích algoritmů.

Faginovo Dynamické Hashování

Princip

Faginovo dynamické hashování je technika, která umožňuje dynamické přizpůsobení hashovací struktury na základě růstu nebo zmenšování množství dat. Tento přístup eliminuje nutnost předem znát velikost dat a zabraňuje penalizaci výkonu při přidávání nových záznamů.

Klíčové koncepty

Příklad

Představte si, že máte adresář s globální hloubkou dG = 3. Pokud je stránka plná a nelze do ní přidat další záznam, stránka se rozdělí, což může vést k rozšíření adresáře.

Adresář:

000 -> Stránka A
001 -> Stránka B
010 -> Stránka C
011 -> Stránka D
100 -> Stránka E
101 -> Stránka F
110 -> Stránka G
111 -> Stránka H

Pokud stránka B (001) přeteče, dojde k jejímu rozdělení a aktualizaci adresáře.

Výhody a Nevýhody

Larson & Kajla's Perfektní Hashování

Princip

Perfektní hashování podle Larsona a Kajly je technika statického hashování, která vyžaduje předem znalost velikosti dat. Používá dvě sady hashovacích funkcí: jednu pro generování adresy stránky a druhou pro generování signatur.

Klíčové koncepty

Příklad

Pokud máte klíč ab s hodnotami hashovací funkce h1(ab) = 10 a signaturou s1(ab) = 1011, tento záznam bude vložen do příslušné stránky za předpokladu, že signatura je menší než separator.

Struktura Stránek:

Stránka 10:
od-0100 (separator: 1000)
Stránka 46:
ef-0100, gh-1000 (separator: 1001)
Stránka 95:
kl-0100, mn-1001 (separator: 1111)

Výhody a Nevýhody

Cormackovo Perfektní Hashování

Princip

Cormackovo perfektní hashování se zaměřuje na minimalizaci kolizí pomocí sady nezávislých hashovacích funkcí. Tato metoda vyžaduje pevně danou velikost adresáře a používá dvojúrovňový systém hashování.

Klíčové koncepty

Příklad

Představte si, že hashovací funkce h(k) = k mod 7 generuje počáteční pozici v adresáři. Pokud dojde ke kolizi, použije se sekundární hashovací funkce k nalezení volného místa.

Adresář:

Pozice 0: prázdné
Pozice 1: prázdné
Pozice 2: klíč 14
Pozice 3: klíč 17

Pokud dojde ke kolizi, například mezi klíči 14 a 21, použije se další hashovací funkce k rozlišení těchto klíčů a umístění do volného místa.

Výhody a Nevýhody