Hierarchický databázový model: definícia, princíp a príklady
Hierarchický databázový model — definícia, princípy, výhody, obmedzenia a príklady (IMS, Windows Registry). Praktický návod na stromové vzťahy rodič–dieťa.
Hierarchický model databázy je dátový model, v ktorom sú údaje usporiadané ako strom. Štruktúra umožňuje opakovanie informácií pomocou vzťahov rodič/dieťa: každý rodič môže mať veľa detí, ale každé dieťa má len jedného rodiča. Všetky atribúty konkrétneho záznamu sú uvedené v rámci typu entity.
V databáze je typ entity ekvivalentom tabuľky; každý jednotlivý záznam je reprezentovaný ako riadok a atribút ako stĺpec. Typy entít sú navzájom prepojené pomocou mapovania 1: N, známeho aj ako vzťahy jeden k viacerým.
Najznámejšie a najpoužívanejšie hierarchické databázy sú IMS vyvinutý spoločnosťou IBM a register systému Windows od spoločnosti Microsoft.
Princíp fungovania
Hierarchický model ukladá záznamy v uzloch stromovej štruktúry. Každý uzol (záznam) obsahuje svoje atribúty a pointer (odkaz) na svojho rodiča alebo na svoje deti. Na rozdiel od relačného modelu tu neexistuje voľné spojovanie (join) medzi ľubovoľnými typmi entít – prístup ku konkrétnym údajom sa zvyčajne vykonáva prechodom po definovaných cestách (path traversal) od koreňa stromu dole alebo naopak.
Príklad a analogia
Typickým príkladom je organizačná štruktúra firmy: Spoločnosť (koreň) → Oddelenia (rodičia) → Zamestnanci (deti). Každé oddelenie môže mať veľa zamestnancov, ale zamestnanec patrí len do jedného oddelenia (v klasickom hierarchickom modeli).
Konkrétny záznam môže vyzerať takto (zjednodušene):
- Spoločnosť
- Oddelenie A
- Zamestnanec 1
- Zamestnanec 2
- Oddelenie B
- Zamestnanec 3
- Oddelenie A
Výhody hierarchického modelu
- Rýchle čítanie pri hierarchických dopytoch: Ak aplikácia často prechádza pevne definované cesty (napr. koreň → oddelenie → zamestnanec), prístup je veľmi efektívny.
- Jednoduchosť: Štruktúra je intuitívna a ľahko sa mapuje na stromové reálne modely (napr. súborové systémy, organizačné stromy).
- Deterministické prístupy: Ukladanie a vyhľadávanie často využíva pointery, čo môže zlepšiť výkon pri veľkých dátových setoch s pevnou štruktúrou.
Nevýhody a obmedzenia
- Rigidita modelu: Každé dieťa má len jedného rodiča. Ak by sa mal záznam patriť do viacerých rodičov (napr. zamestnanec pracuje v dvoch projektoch), model to prirodzene nepodporuje bez duplikácie alebo zložitejších schém.
- Ťažkopádne ad hoc dopyty: Kým relačné DBMS umožňujú flexibilné spojenia medzi entitami, hierarchický model je slabší pri dotazoch, ktoré nenasledujú existujúce cesty.
- Problémy so zmenou schémy: Presuny uzlov alebo zmena štruktúry môžu vyžadovať rozsiahle úpravy dát alebo duplicitné uloženie.
Typické použitia
- Transakčné systémy s pevnou hierarchiou (bankové systémy, veľké mainframe aplikácie) — napríklad IBM IMS bol používaný v bankách a poisťovniach.
- Konfiguračné úložiská a registre — napr. register systému Windows (spoločnosti Microsoft).
- Ukladanie stromových dát (adresáre, organizačné stromy, XML/JSON dokumenty v historických implementáciách).
- Relačný model: flexibilnejšie zlučovanie tabuliek cez kľúče a SQL, jednoduchšie ad hoc dotazy; hierarchický je rýchlejší pri pevne štruktúrovaných stromových dotazoch, ale menej flexibilný pri komplexných vzťahoch.
- Sietový model: umožňuje záznamom mať viacero rodičov (grafová topológia), čo poskytuje väčšiu flexibilitu než hierarchický model, no zároveň zvyšuje komplexitu.
- Súčasné NoSQL riešenia (dokumentové/graph DB): často poskytujú natívnu podporu pre hierarchické dátové štruktúry (JSON, XML), pričom prinášajú väčšiu flexibilitu a horizontálnu škálovateľnosť.
- Reprezentácia uzlov ako riadkov s parent_id stĺpcom (semafóny vzťahu rodič → dieťa).
- Reprezentácia stromu pomocou techník ako zátvorkovanie rozsahov (nested sets) alebo rekurzívne dotazy (CTE) na jednoduchšie získavanie podstromov.
Dotazovanie a prístupové metódy
Dotazy v hierarchických databázach sú často založené na prejdení cesty (navigačné dotazovanie). Namiesto univerzálneho jazyka ako SQL sú používané proprietárne alebo špecializované prístupy na navigáciu stromom, pričom prístup k záznamom sa vykonáva cez známe vstupné body a následné kroky k požadovaným uzlom.
Integrita a transakcie
Typické integritné pravidlá zahŕňajú povinnosť mať jedného rodiča pre dieťa a zachovanie konzistentnosti pointerov. Moderné implementácie hierarchických systémov, najmä veľké komerčné produkty (napr. IMS), podporujú transakcie, zálohovanie a obnovenie, viacnásobnú konkurenciu a ďalšie funkcie náročné v podnikovej sfére.
Porovnanie s inými modelmi
Mapovanie na relačný model a migrácia
Pre migráciu hierarchických dát do relačnej databázy sa bežne používa:
Súčasnosť a vplyv
Hoci dnes dominujú relačné a rôzne NoSQL databázy, hierarchický model mal veľký historický význam a jeho princípy sú stále prítomné v mnohých systémoch (súborové systémy, XML/JSON dokumenty, registre). Komerčné hierarchické systémy ako IBM IMS sú stále používané v prostrediach, kde sú požadované vysoký výkon a spoľahlivosť pri spracovaní transakcií.
Zhrnutie
Hierarchický databázový model je efektívny pre aplikácie s prirodzenou stromovou štruktúrou dát a pevne definovanými prístupovými cestami. Jeho hlavné prednosti sú výkon a jednoduchosť pri navigácii stromom, hlavné obmedzenia sú rigidita a menej vhodné riešenie pre komplexné, prepojené vzťahy. Pri návrhu databázy treba vybrať model podľa povahy dát a typu dotazov, ktoré bude systém vykonávať.

Príklad hierarchického modelu.
Otázky a odpovede
Otázka: Čo je to hierarchický model databázy?
Odpoveď: Je to dátový model, v ktorom sú údaje usporiadané ako strom.
Otázka: Ako je povolené opakovanie informácií v hierarchickom databázovom modeli?
Odpoveď: Opakovanie informácií je povolené pomocou vzťahov rodič/dieťa, kde každý rodič môže mať veľa detí, ale každé dieťa má len jedného rodiča.
Otázka: Čo je to typ entity v databáze?
Odpoveď: Typ entity je ekvivalent tabuľky, v ktorej sú uvedené všetky atribúty konkrétneho záznamu.
Otázka: Ako je každý jednotlivý záznam reprezentovaný v databáze?
Odpoveď: Každý jednotlivý záznam je reprezentovaný ako riadok a atribút ako stĺpec.
Otázka: Ako spolu súvisia typy entít v databáze?
Odpoveď: Typy entít sú navzájom prepojené pomocou mapovania 1:N, známeho aj ako vzťah jeden k viacerým.
Otázka: Aké sú najznámejšie a najpoužívanejšie hierarchické databázy?
Odpoveď: Najznámejšie a najpoužívanejšie hierarchické databázy sú IMS vyvinutý spoločnosťou IBM a Windows Registry spoločnosti Microsoft.
Otázka: Aký je rozdiel medzi nadriadeným a podriadeným v hierarchickom modeli databázy?
A: Rodič môže mať veľa detí, ale každé dieťa má len jedného rodiča.
Prehľadať