Tietohierarkia on tietojen hierarkkinen ryhmittely, jossa yksi peruspiste johtaa tietokerrokseen, joka johtaa toiseen kerrokseen sen alla. Jokainen kerros tarkentuu, kunnes käyttäjä löytää juuri sen, mitä hän haluaa. Sen lisäksi, että se auttaa käyttäjää löytämään tietoja, sitä käytetään myös oikeiden vastausten luomiseen ohjelmointikielistä käyttäjän syötteen perusteella. Tietohierarkiaa käytetään useimmiten tietojen luetteloimiseen tietokantoihin, mutta se löytyy myös muista ohjelmointimalleista.
Tietohierarkiassa kaikilla tiedoilla on oma hierarkiansa laajasta ylätasosta aina tiettyyn alimpaan tasoon saakka. Esimerkiksi joku haluaa löytää videopelin nimen tietokannasta. Hierarkia alkaa videopelikonsolin tyypistä, sitten pelin kehittäjä, sitten genre, pelin nimen alkukirjain ja lopuksi itse peli. Tietojen luetteloiminen tällä tavalla helpottaa niiden löytämistä. Se myös helpottaa tietokannan lisäämistä uusien tietojen avulla varmistamalla, että peruspiste syötetään vain oikeaan luokkaan.
Vaikka kaikilla tietokannoilla on tietohierarkia, ne ohjelmoidaan yleensä eri tavoin tietokantamallin mukaan. Esimerkiksi hierarkkisessa tietokantamallissa järjestelmänvalvojan on lisättävä jokainen nollapisteen osa joko pää- tai alisolmuun. Vanhempi on laaja luokka, kun taas lapsi on taulukko, joka tulee vanhemman perään. Relaatiomallissa tiedot liittyvät toisiinsa, joten kun joku valitsee yhden taulukon, aiheeseen liittyvät taulukot tulevat näkyviin.
Sijoittamalla tiedot erillisiin hierarkioihin, tietokantaan tai ohjelmointikieleen lisääminen on helpompaa. Jos ohjelmoija haluaa lisätä videopelitietokantaan uuden yhdelle konsolille tehdyn videopelin, sen järjestäminen voi olla vaikeaa, koska pelin kehittäjä toimii usein useiden eri konsolien kanssa kerralla. Seuraamalla hierarkiaa hän tietää tarkalleen, mihin nämä uudet tiedot sijoitetaan.
Ohjelmointikielet käyttävät myös tietohierarkiaa, mutta eri tavalla. Ohjelmointikielten käyttövoima on käyttäjien vuorovaikutus. Ohjelma voi kysyä käyttäjältä, mitä hän etsii tai mitä hänen mieltymyksensä ovat. Hierarkia käskee ohjelman reagoimaan tietyllä tavalla tai avaamaan tietyn haaran sen mukaan, mitä käyttäjä napsauttaa tai syöttää. Tältä osin tietohierarkia on yleensä jaettu eri ohjelmointiobjekteihin, joten jokainen hierarkia on oma kapseloitu yksikkö.