Imperativní normy a mezinárodní právo soukromé – klasické ...
Klasické (statické) metody organizace souborů
description
Transcript of 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
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řístupuk 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)
A F X Z
A F X Z
A X
úroveň
0
1
2
primární soubor
index}
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
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
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 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
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í
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í
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í
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
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
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á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
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ý 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í
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
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
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
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
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?
+ +
Přímá organizace
Sekvenční organizace
Pouze přímý
přístup?
Index-sekvenční
–
–
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á