В иерархической модели все логические записи распределены по уровням. Причем каждая логическая запись связана с 0, 1 или несколькими записями нижнего уровня и одной записью верхнего, если он есть. Причем используются связи 1:М сверху вниз. В качестве примера приведем фрагмент модели ВУЗа. Связи, относящиеся к данной модели, показаны сплошными стрелками.
Данный тип моделей отличает простота построения. С помощью таких моделей хорошо описываются иерархически структурированные системы. В то же время необходимо помнить, что основное назначение модели данных, описание структуры базы данных. При этом БД используется для получения ответов на запросы. И критерием качества модели может служить ее возможность получать выборки данных на различные запросы. Под запросом понимается описание требований к выбираемым из базы данным. Рассмотрим реализацию трех запросов с использованием модели данных приведенного примера.
Найти группу, где учится студент А.
Найти факультет, где учится студент А.
Найти дисциплины, которые изучает студент А.
Для получения ответа на первый запрос необходимо найти запись о студенте среди записей «Студент» и далее найти связанную с ним запись из записей «Группа».
Для получения ответа на второй запрос необходимо найти запись о студенте среди записей «Студент» , найти связанную с ним запись из записей «Группа» и далее связанную с последней запись из группы записей «Факультет».
При ответе на третий запрос, можно найти группу, где учится студент. Искать факультет нет смысла, так как между записями о факультете и записями о дисциплинах невозможно установить однозначной связи. Ответ на запрос может быть получен, если ввести дополнительную связь между записями «Группа» и «Дисциплины». Причем это должна быть связь М:М, так как в каждой группе одновременно читаются несколько дисциплин, а каждая дисциплина может читаться в нескольких группах. Эта связь указана в модели пунктирной линией. Полученную в результате появления этой связи модель, нельзя назвать иерархической и оно переходит в класс сетевых.