Hierarchický model databáze je datový model, ve kterém jsou informace uspořádány ve formě stromové struktury. Základními prvky jsou uzly (záznamy) a vazby rodič–dítě: každý rodič může mít mnoho dětí, ale každé dítě má právě jednoho přímého rodiče. Všechny atributy konkrétního záznamu jsou uváděny v rámci jeho typu entity (record type).
Struktura a základní pojmy
Hierarchická databáze se skládá z těchto základních částí:
- Root (kořen) – počáteční uzel stromu, nemá rodiče.
- Uzel (záznam) – reprezentuje konkrétní entitu s vlastními atributy.
- Vazba rodič–dítě – uspořádání, kde rodič může mít více potomků (1 : N), zatímco každý potomek má pouze jednoho přímého rodiče.
- Typ entity – šablona záznamu se seznamem atributů. Ve smyslu modelování může být typ entity analogií k tabulce v relačním modelu, a jednotlivé záznamy k řádkům, přičemž atributy odpovídají sloupcům.
Vlastnosti a chování
- Navigační přístup – data se obvykle čtou průchodem stromem pomocí ukazatelů nebo cest od kořene k požadovanému uzlu (např. posun po parent/child ukazatelích).
- Jednoduché a rychlé čtení strukturovaných dat – pokud jsou dotazy dobře sladěné se stromovou strukturou (např. čtení celé větve), může být výkon velmi dobrý.
- Redundance – opakující se informace se často duplikují, pokud je potřeba realizovat vztahy N:M nebo kdy entita potřebuje více než jednoho rodiče (což hierarchický model přímo nepodporuje).
- Omezená flexibilita – změny struktury (přesuny uzlů, přidávání nových vztahů mezi již existujícími typy) mohou být složitější než v relačních modelech.
Příklady a implementace
Nejznámějšími a dlouhodobě používanými hierarchickými databázemi jsou IMS vyvinutá společností IBM a registr Windows společnosti Microsoft. Další vyskyty hierarchických principů najdeme v souborových systémech (adresářová stromová struktura), v LDAP (adresářové služby) nebo v některých starších podnikových systémech.
Výhody
- Efektivní pro scénáře, kde jsou vztahy přirozeně stromové (např. organizační struktury, katalogy, menu, adresářové struktury).
- Jednoduché a předvídatelné průchody dat, nízké nároky na spojování (joiny) pro typické dotazy.
- Dobrá rychlost při čtení celé větve nebo podstromu.
Nevýhody
- Špatná podpora pro vztahy mnoho‑k‑mnoha; často je potřeba duplikovat záznamy nebo vytvářet složité obcházení.
- Méně flexibilní při změnách schématu než relační modely.
- Pro některé typy dotazů (např. hledání napříč větvemi nebo opačnými vztahy) může být neefektivní.
- Nedostatek standardizovaných dotazovacích jazyků podobných SQL; přístup bývá navigační/programový.
Kdy použít hierarchický model
Hierarchický model volíme, pokud data přirozeně tvoří strom (např. stromová klasifikace produktů, organizační diagramy, konfigurace a nastavení v registrech či konfiguracích) a pokud budou převládající dotazy navigační (procházení větví). V moderních řešeních často nahradí tento model flexibilnější dokumentové databáze (JSON/XML) nebo relační/graph databáze podle požadavků na vztahy a dotazování.
Krátký příklad
Představte si organizační strom firmy:
- Generální ředitel (root)
- Finanční ředitel
- Účetní oddělení
- Controlling
- Technický ředitel
- Vývoj
- Testování
- Finanční ředitel
Taková struktura je pro hierarchický model ideální: rychle se načítá větev "Technický ředitel" včetně všech podřízených oddělení.
Závěr
Hierarchický model byl jedním z prvních přístupů k organizaci dat v databázových systémech a je stále užitečný tam, kde dominují stromové vztahy. Pro složitější vztahy a flexibilitu však dnes častěji volíme jiné modely (relační, dokumentové nebo grafové). Nicméně dědictví hierarchického modelu (např. v XML/LDAP a v registrech systémů) zůstává významné.

