Toto je starší verze dokumentu!
—-
Kódování = Proces nahrazování symbolů (resp. jejich posloupností) zprávy symboly (resp. jejich posloupností) nabývajících znaků cílové (kódovací) abecedy.
Množství informace
Pro je jednotkou bit.
Entropie
Neurčitost zdroje zprávy je rovna množství informace v ní obsažení. (Neurčitost je přijetím zprávy odstraněna.)
Minimální kódování
Př.:
10110010001101
Cílem:
Kraftova nerovnost
McMillanova veta
Eliasův kód
Kódování celých čísel u kterých není předem známá horní hranice.
Eliasův kód C1
Prefix 0 určuje délku binární reprezentace.
Př.:
Eliasův kód C2
Přeuspořádání C1.
Př.:
Eliasův kód C3
Vyjádření délky kódového slova pomocí C2.
Př.:
Shannon-Fanovo kódování
Huffmanovo kódování
Aritmetické kódování
LZ77
LZ78
LZW
Požadavky na systém souborů
Do statické organizace souborů patří:
Ukázka uspořádaného sekvenčního souboru – keysort:
Ukázka uspořádaného sekvenčního souboru – řetězené struktury:
Motivace: změny dat neznamenají velké (globální) reorganizace, které jsou drahé, ale spíše reorganizace lokální.
Definice
1-úrovňový adresář
2-úrovňový adresář
stromová struktura
Inode
File Allocation Table (FAT)
Mapa disku, UNIX
NTFS
Obvykle pokud se mluví o indexech, jsou myšleny řádné.
Dělení 1
Dělení 2
hustý – indexový záznam pro každou hodnotu vyhledávacího klíče. Typicky bývá uspořádán podle hodnoty klíče
řídký – indexový záznam pouze pro některé hodnoty vyhledávacího klíče; použitelné pouze v případě, kdy je soubor podle tohoto klíče uspořádán
Příklad
ID (2B) | Jméno (20B) | Rok narození (2B) | Místo narození (16B) | Telefon (4B) | Bydliště (16B) |
---|---|---|---|---|---|
1 | Bílá Alena | 1972 | Ostrava | xxxxxxxx | Brno |
2 | Novák Jan | 1952 | Praha | 123456789 | Kladno |
3 | Novotný Tomáš | 1987 | Brno | 565656565 | Vyškov |
4 | Procházka Petr | 1964 | Brno | 100001011 | Řestoky |
Hustý index pro atribut jméno:
Jméno | ID |
---|---|
Bílá Alena | 1 |
Novák Jan | 2 |
Novotný Tomáš | 3 |
Procházka Petr | 4 |
Pokud chceme vyhledat místo narození Tomáše Novotného, pak je při sekvenčním prohledávání nutné načíst 2 · (2 B + 20 B + 2 B + 16 B + 4 B + 16 B) + 2 B + 20 B + 2 B + 16 B = 160 B. Při použití hustého indexu stačí načíst 3 · (20 B + 2 B) + 2 B + 20 B + 2 B + 16 B = 106 B. Pokud je index uložen v operační paměti, pak v obou případech stačí pouze jeden přístup na disk, avšak v prvním případě bude třeba číst výrazně více dat.
Řídký index pro atribut jméno:
Jméno | ID |
---|---|
Bílá Alena | 1 |
Novotný Tomáš | 3 |
Pokud je požadavek na vyhledání například Jana Nováka, nalezne se poslední záznam v uspořádání před ním (Alena Bílá) a dál se postupuje sekvenčně.
Sekundární index pro atribut místo narození:
Místo narození | ID |
---|---|
Brno | 3,4 |
Ostrava | 1 |
Praha | 2 |
Definice
Perfektní hašovací funkce – hašovací funkce h, která je prostá.
Požadované vlastnosti hašovací funkce: