Duomenų hierarchija – tai hierarchinė duomenų grupuotė, kurioje vienas atskaitos taško elementas veda į duomenų sluoksnį, o vėliau į kitą sluoksnį. Kiekvienas sluoksnis tampa konkretesnis, kol vartotojas suranda būtent tai, ko nori. Be to, kad jis padeda vartotojui rasti informaciją, jis taip pat naudojamas teisingiems atsakymams iš programavimo kalbų sukurti pagal vartotojo įvestį. Duomenų hierarchija dažniausiai naudojama duomenims kataloguoti duomenų bazėse, tačiau ji randama ir kitose programavimo schemose.
Duomenų hierarchijoje visi duomenys turi savo hierarchiją, pradedant nuo plataus aukščiausio lygio ir baigiant konkretaus apatinio lygio. Pavyzdžiui, kas nors nori duomenų bazėje rasti vaizdo žaidimo pavadinimą. Hierarchija prasideda nuo vaizdo žaidimų konsolės tipo, tada žaidimo kūrėjo, tada žanro, žaidimo pavadinimo pradžios raidės ir, galiausiai, paties žaidimo. Tokiu būdu kataloguojant duomenis lengviau juos rasti. Tai taip pat palengvina duomenų bazę, kai pridedama naujos informacijos, nes užtikrinama, kad atskaitos taškas būtų įvestas tik į teisingą kategoriją.
Nors visos duomenų bazės turi duomenų hierarchiją, jos dažniausiai programuojamos skirtingais būdais, priklausomai nuo duomenų bazės modelio. Pavyzdžiui, hierarchiniame duomenų bazės modelyje administratorius turi įterpti kiekvieną atskaitos taško dalį į pirminį arba antrinį mazgą. Tėvas yra plati kategorija, o vaikas yra lentelė, einanti po tėvų. Reliaciniame modelyje duomenys yra susiję vienas su kitu, taigi, kai kas nors pasirenka vieną lentelę, atsiras susijusios lentelės.
Pateikus duomenis į atskiras hierarchijas, lengviau juos įtraukti į duomenų bazę arba programavimo kalbą. Jei programuotojas nori į vaizdo žaidimų duomenų bazę įtraukti naują vienai konsolei sukurtą vaizdo žaidimą, jį gali būti sunku sutvarkyti, nes žaidimo kūrėjas dažnai dirba su keliomis skirtingomis konsolėmis vienu metu. Vadovaudamasis hierarchija, jis arba ji tiksliai žinos, kur įdėti šiuos naujus duomenis.
Programavimo kalbos taip pat naudoja duomenų hierarchiją, bet skirtingai. Naudojant programavimo kalbas, varomoji jėga yra vartotojo sąveika. Programa gali paklausti vartotojo, ko jis ar ji ieško, arba kokios yra jo nuostatos. Hierarchija lieps programai reaguoti tam tikru būdu arba atidaryti duomenų šaką, priklausomai nuo to, ką vartotojas spustelėja arba įveda. Šiuo atžvilgiu duomenų hierarchija paprastai yra padalinta į skirtingus programavimo objektus, todėl kiekviena hierarchija yra atskiras inkapsuliuotas vienetas.