330 likes | 494 Views
Klasické (statické) metody organizace souborů. Hromada Sekvenční soubor Index-sekvenční soubor Indexovaný soubor Soubor s přímým přístupem. Hromada. Nehomogenní soubor Záznamy proměnné délky (záznamy proměnné struktury – uvádí se pak i jména či kódy atributů)
E N D
Klasické (statické)metody organizace souborů Hromada Sekvenční soubor Index-sekvenční soubor Indexovaný soubor Soubor s přímým přístupem
Hromada • Nehomogenní soubor • Záznamy proměnné délky (záznamy proměnné struktury – uvádí se pak i jména či kódy atributů) • Sekvenční uložení ve vymezeném adresovém prostoru • Složitost vyhledání záznamu O(N)
Sekvenční soubor • Homogenní soubor • Sekvenční přístup READ/WRITE • Neuspořádaný sekvenční soubor • Organizovaný jako hromada • Složitost vyhledání záznamu O(N) • Složitost vyhledání záznamu při blokovacím faktoru b O(N/b)
Uspořádaný sekvenční soubor • Podle (vyhledávacího) klíče • Aktualizace primárního souboru • Soubor aktualizací / soubor transakcí • Neuspořádaný sekvenční soubor • Reorganizace • Setřídění souboru aktualizací • Zatřídění s primárním souborem nový primární soubor
Vyhledání záznamu v sekvenčním souboru • Nesetříděném O(N) • Setříděném O(log2 N) TF = log2 (N / b)(s + r + btt) Přepsání záznamu (update) TU = TF + 2r nemění-li se klíč TU TI mění-li se klíč
Index-sekvenční soubor • Kombinace • Sekvenčního (dávkového) přístupu a • Přímého přístupu k záznamům • Části: • Primární soubor • Index • Oblast přetečení
Aplikace index-sekvenčního souboru • Účetní systém kreditních karet • Individuální přístup při manipulaci s účtem • Dávkový přístup pro generování sumářů, měsíčních vyúčtování apod. • Studentský systém • Záznamy o výsledku zkoušky • Tisk zkušební zprávy
Index index-sekvenčního souboru • Hierarchie: • Primární soubor • 1. Úroveň indexu • … • k-tá úroveň indexu (master index) úroveň 2 } index 1 primární soubor 0
Index-sekvenční soubor Oblast přetečení 2. úroveň indexů 1. úroveň indexů primární soubor
Index-sekvenční soubor - ISAM • Přímá podpora index-sekvenčních souborů v run-time COBOLU TF = 2(s + r + btt) + r + btt = 2s + 3r + 3btt
ISAM - pokračování • Oblast přetečení: • na každém válci • společná pro celý soubor • Statický soubor • nutná reorganizace: • po naplnění přetokové oblasti • periodicky
ISAM – struktura indexu Cylindry i stopy číslovány od 0 Index stop – na 0. stopě cylindru stopa největší klíč na stopě Index cylindrů - umístěn kdekoliv jinde cylindr největší klíč na cylindru
ISAM – struktura indexu (2) • Záznamy v blocích (stopách) setříděny • Hlavní (master) index pro velké soubory na více discích ukazuje na stopy indexu cylindrů • Oblast přetečení • vytlačen největší klíč na stopě • aktualizace indexu
ISAM – index s oblastí přetečení index stop N Ov N Ov N primární soubor Insert(185) stopa pro přetečení
ISAM – index s oblastí přetečení (2) Insert(186) nemění se Insert(194) oblast přetečení Řetězec v oblasti přetečení
Index-sekvenční soubor - kapsy • Implementace index-sekvenčních souborů pomocí kapes • Kapsa (bucket) je množina bloků organizovaných jako spojový seznam • Indexují se kapsy 00 10 20 záznamy ukazatel bitová mapa
Index-sekvenční soubor – kapsy (2) Aktualizace: D(Codr), I(Dašek), I(Cíp), I(Novák), I(Alfons) 00 10 20 30 Vhodné pro záznamy proměnné délky
Index-sekvenční soubor - typy • Záznamy indexů a primárního souboru jsou různých typů • Index nejvyšší úrovně • Master index • Pro otevřený soubor uchováván v OP
Index-sekvenční soubor - úrovně • Maximální počet úrovní, x = logp N/b • p = B / (V + P) B délka fyzické stránky V průměrná délka klíče P velikost ukazatele • Počet úrovní ~ počet přístupů na disk • Minimalizace počtu přístupů na disk • Prakticky pouze minimalizací B, velikostí bloku • Omezeno kapacitou stopy
Výhody index-sekvenčního souboru • Rychlý přístup dle primárního klíče • Zachovává dobré vlastnosti setříděného sekvenčního souboru
Nevýhody index-sekvenčního souboru • Rychlé vyhledávání jen pro primární klíč • Problémy s dynamikou primárního souboru • Oblast přetečení • Vede ke zpomalení přístupu k datům • Bloky inicializovány jako ne zcela zaplněné • Větší nároky na prostor • Případná potřeba reorganizací
Návrh index-sekvenčního souboru • Uspořádání položek v seznamu • Definice primárního klíče • Analýza doplňování záznamů • Počáteční naplnění stránek – max. 60% • Prostor pro primární soubor, index a oblast přetečení • Počet úrovní indexu • Blokovací faktor primární oblasti, indexu
Index-sekvenční soubor - závěr • Blokování zvyšuje účinnost • Rychlý přímý přístup – košatý index • Žádá se pouze sekvenční přístup • Použít sekvenční soubor • Nejsou třeba indexy • Žádá se pouze přímý přístup • Použít soubor s přímým přístupem • Není třeba uspořádanost
Indexovaný soubor • Někdy nazývaný invertovaný soubor • Primární soubor + indexy pro různé vyhledávací klíče • Přímý přístup prohledáváním tabulek • Přímý přístup procházením hierarchické struktury • Indexují se záznamy, ne bloky • Primární soubor nemusí být setříděn • V indexu se tentýž klíč může opakovat • V 1. úrovni indexu odkazy sk na seznamy adres odpovídajících záznamů • Indexy mohou/nemusí být setříděné
Indexovaný soubor 0.1 2. úroveň indexů hlavní index 1. úroveň indexů Vyhledávací klíč: Příjmení primární soubor
Indexovaný soubor • Počet úrovní indexu • Analogicky jako v index-sekvenčním souboru • x = logp N, p = B/(V+P) B délka fyzické stránky V průměrná délka klíče P velikost ukazatele
Indexovaný soubor • Řešení dotazů na částečnou shodu • Vytváření průniků seznamů adres (ukazatelů) primárních záznamů • Netriviální při velkém objemu, tj. velká N malá aktuální doména A • Kombinovaný index • Současně dle více atributů (A,B,C)
Indexovaný soubor - implementace • Nepřímé indexování: • primární klíč • sekundární klíč • primární klíč se indexuje na sekundární klíč • Možná reorganizace, restrukturalizace souboru bez ovlivnění indexu • Vyšší režie dotazu
Bitová mapa • Vhodná pro malou doménu hodnot • Boolské dotazy se řeší logickými operacemi • Bitové vektory lze vytvářet pro více atributů • Obecnější Boolské dotazy
Seznamy adres • Odstraňují duplicity klíčů 90 91 92 hodnoty kapsy s odkazy
Indexy v indexovaném souboru • Statické • Seznamy adres • Bitové mapy • B-stromy a jejich varianty • Kombinované indexy • …
Základní organizace souborů – Jeden vyhledávací klíč? + Indexovaný soubor Pouze sekvenční přístup? – Pouze přímý přístup? – + + Sekvenční organizace Přímá organizace Index-sekvenční