klasické (statické) metody organizace souborů

33
Klasické (statické) metody organizace souborů Hromada Sekvenční soubor Index-sekvenční soubor Indexovaný soubor Soubor s přímým přístupem

Upload: kateb

Post on 20-Mar-2016

33 views

Category:

Documents


0 download

DESCRIPTION

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ů) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Klasické (statické) metody organizace souborů

Klasické (statické)metody organizace souborů

HromadaSekvenční soubor

Index-sekvenční souborIndexovaný soubor

Soubor s přímým přístupem

Page 2: Klasické (statické) metody organizace souborů

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)

Page 3: Klasické (statické) metody organizace souborů

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)

Page 4: Klasické (statické) metody organizace souborů

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

Page 5: Klasické (statické) metody organizace 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íč

Page 6: Klasické (statické) metody organizace souborů

Index-sekvenční soubor

• Kombinace – Sekvenčního (dávkového) přístupu a – Přímého přístupuk záznamům

• Části:– Primární soubor– Index– Oblast přetečení

Page 7: Klasické (statické) metody organizace souborů

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

Page 8: Klasické (statické) metody organizace souborů

Index index-sekvenčního souboru

• Hierarchie:– Primární soubor– 1. Úroveň indexu– …– k-tá úroveň indexu (master index)

A F X Z

A F X Z

A X

úroveň

0

1

2

primární soubor

index}

Page 9: Klasické (statické) metody organizace souborů

Index-sekvenční souborApokryfy 1

Návrat 2

Apokryfy 3

Babička 4

Dobrý člověk 5

Mezi proudy 6

Návrat 7

Pustina 8

Apokryfy 0

… 0

… 0

Babička 0

Bratrstvo 0

Divá Bára 0

Dobrý člověk 10.1

Karla 0

Matka 0

Mezi proudy 0

… 0

… 0

Návrat 0

Neklid 10.2

Přerod 0

Pustina 0

F.L.Věk 10.3

Poklad 0

0

Oblast přetečení2. úroveň

indexů

1. úroveň indexů

primární soubor

Page 10: Klasické (statické) metody organizace souborů

Index-sekvenční soubor - ISAM• Přímá podpora index-sekvenčních souborů v run-

time COBOLUÚroveň Umístění

1 stopa Index stop na 0. stopě každého válce určujepozice v primárním souboru

2 válec index válců (na počátku oblasti souboru)určuje lokality s indexy stop

3 svazek master index po OPEN v RAMurčuje lokality s indexy válců

TF = 2(s + r + btt) + r + btt = 2s + 3r + 3btt

Page 11: Klasické (statické) metody organizace souborů

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

Page 12: Klasické (statické) metody organizace souborů

ISAM – struktura indexuCylindry i stopy číslovány od 0

1 150 2 200 3 400 …

stopa největší klíč na stopě

Index stop – na 0. stopě cylindru

Index cylindrů - umístěn kdekoliv jinde

13 1650 14 1750 15 2000 …

cylindr největší klíč na cylindru

Page 13: Klasické (statické) metody organizace souborů

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

Page 14: Klasické (statické) metody organizace souborů

ISAM – index s oblastí přetečení

1 120 1 120 2 200 2 200 3 250 …index stop

N Ov N Ov N

130 145 150 … 180 190 200primární soubor

Insert(185)

1 120 1 120 2 190 101 200 3 250 …

130 145 150 … 180 185 190

stopa pro přetečení

Page 15: Klasické (statické) metody organizace souborů

ISAM – index s oblastí přetečení (2)

Insert(186)

1 120 1 120 2 186 101 200 3 250 …

130 145 150 … 180 185 186

nemění se

Insert(194)

# 200 103 190 10

1 194 …

Řetězec v oblasti přetečení

oblast přetečení

Page 16: Klasické (statické) metody organizace souborů

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

00Babka 10Kolář 20

00000 0

11111 Babka Codr Couf Colt Cuc 0

11110 Kolář Kotrč Macák Maloň 0

bitová mapa záznamy ukazatel

00

10

20

Page 17: Klasické (statické) metody organizace souborů

Index-sekvenční soubor – kapsy (2)

Aktualizace: D(Codr), I(Dašek), I(Cíp), I(Novák), I(Alfons)

00Babka 10Kolář 20

00000 Alfons 0

11111 Babka Dašek Couf Colt Cuc 0

11110 Kolář Kotrč Macák Maloň Novák 0

10000 Cíp

00

10

20

30

Vhodné pro záznamy proměnné délky

Page 18: Klasické (statické) metody organizace souborů

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

Page 19: Klasické (statické) metody organizace souborů

Index-sekvenční soubor - úrovně

• Maximální počet úrovní, x = logp N/b– p = B / (V + P)

B délka fyzické stránkyV průměrná délka klíčeP velikost ukazatele

• Počet úrovní ~ počet přístupů na disk• Minimalizace počtu přístupů na disk

– Prakticky pouze maximalizací B (velikosti bloku)

– Omezeno kapacitou stopy

Page 20: Klasické (statické) metody organizace souborů

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

Page 21: Klasické (statické) metody organizace souborů

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í

Page 22: Klasické (statické) metody organizace souborů

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

Page 23: Klasické (statické) metody organizace souborů

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

Page 24: Klasické (statické) metody organizace souborů

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é

Page 25: Klasické (statické) metody organizace souborů

Indexovaný souborJirásekNěmcováJirásekSvětláJirásekNěmcováNěmcová……SvětláNěmcová…

primární soubor

Jirásek 4.1Jirásek 4.3Jirásek 5.2Němcová 7.2Němcová 4.2Němcová 5.3Němcová 6.1Němcová 7.2Světlá 5.1

Jirásek 1.1Němcová 1.4Němcová 2.1Světlá 3.1

0.1

2. úroveň indexů

hlavní index 1. úroveň indexů

Vyhledávací klíč: Příjmení

Page 26: Klasické (statické) metody organizace 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ánkyV průměrná délka klíčeP velikost ukazatele

Page 27: Klasické (statické) metody organizace souborů

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)

Page 28: Klasické (statické) metody organizace souborů

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

Page 29: Klasické (statické) metody organizace souborů

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

A Pořadí záznamu v S 1 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 1 1 0 0 0

Page 30: Klasické (statické) metody organizace souborů

Seznamy adres

• Odstraňují duplicity klíčů

Chemik 90Mechanik 91Referent 92

3 1.1 1.4 2.31 1.23 1.3 2.1 2.2

90

91

92

Primární soubor

hodnoty kapsy s odkazy

Page 31: Klasické (statické) metody organizace souborů

Indexy v indexovaném souboru

• Statické• Seznamy adres• Bitové mapy• B-stromy a jejich varianty

• Kombinované indexy• …

Page 32: Klasické (statické) metody organizace souborů

Základní organizace souborůJeden

vyhledávací klíč?

Indexovaný soubor

+ –

Pouze sekvenční přístup?

+ +

Přímá organizace

Sekvenční organizace

Pouze přímý

přístup?

Index-sekvenční

Page 33: Klasické (statické) metody organizace souborů

Porovnání statickým metod organizací souborů

Cíl zpracování Jednotlivý záznam

Množina záznamů

soubor

hromada nevhodná lze, ale zvláštní úsilí

výborná

neuspořádaný sekvenční

nevhodná lze, ale zvláštní úsilí

vynikající

uspořádaný sekvenční

lze, ale velké úsilí

lze, ale zvláštní úsilí

vynikající

index-sekvenční výborná lze vynikající

indexovaný vynikající výborná lze, ale zvláštní úsilí

přímý výborná nevhodná nevhodná