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: