Indexy

Indexové soubory slouží k seřazení tabulky podle jiných atributů než je samotná tabulka defaultně seřazená. Index je tedy vázaný ke konkrétní tabulce a konkrétnímu atributu podle kterého data řadí.

Příklad použití indexů

V tabulce Student potřebujeme často vyhledávat podle loginu, jména a ročníku. Tabulka je automaticky indexová podle loginu, takže to nemusíme řešit.

Budeme řešit tedy indexy z hlediska jména a ročníku. Jména jsou vesměs originální proto použijeme klasický index, který setřídí jména podle abecedy.

CREATE INDEX login ON Student;

 

Na indexaci ročníku je zbytečné použít klasický index, ročníku je pár a nepotřebuje je řadit od prvního do posledního. Zato studentů v jednom ročníku je hafo. Proto použiju bitmapový index.

CREATE BITMAP INDEX BIRocnik ON Student(rocnik);

Rozlišujeme dva typy indexů:

  • Klasický index - si můžeme představit jako tabulku s dvěma sloupci, v prvním je seřazený indexovaný atribut a v druhém je ukazatel na záznam. Ve skutečnosti je realizován nějakou efektivní datovou strukturou (B-stromy) aby se minimalizoval čas při aktualizaci indexu. Tu je třeba provést při vkládání a mazání záznamu v tabulce. V případě že visí na tabulce více indexů je třeba zaktualizovat všechny.
  • Bitmapový index - odpovídá na všechny možné hodnoty daného atributu. Jde o tabulku jedniček a nul, kde řádky reprezentují záznamy v indexocané tabulce a sloupce hodnoty indexovaného atributu. Jednička pak znamená true, že záznam má hodnotu danou sloupcem.

Primární index (PRIMARY) automatický index který se váže k primárnímu klíči. Zajišťuje jedinečnost údajů.

Unikátní index (UNIQUE) stejně jako primární index zajišťuje jedinečnost údajů v atributu. Ale neváže se pouze ke klíči.

Vedlejší index (INDEX) klasický index popsány výše.

Fultextový index se používá pro optimalizaci fultextového vyhledávání v daném sloupci.