Иерархическая база данных (ИБД)


Что такое иерархическая база данных (ИБД)?

Иерархическая база данных (ИБД) представляет собой частный случай сетевой модели. При этом структура у неё более простая, а работа по такой схеме менее эффективна. И то, и другое создано на основе теории графов.

Ключевым для создания ИБД стал главный узел или элемент. Он называется корневым. В теории графов у него есть специальное название — корень дерева. Нетрудно разобраться, откуда появилось понятие «древовидная структура организации базы данных». В основе, по сути, находится корень. А всё, что расположено ниже, относится к его потомкам.

Иерархическая модель данных, аналогично сетевой, заточены на чтение из БД. Но запись не предполагается. Это обусловлено спецификой модели такого вида.

Узлы одного уровня соотносятся между собой как «братья». Те элементы, которые находятся ниже, называются «дочери». По сути, иерархическая модель была создана наподобие файловой системы у компьютера. И по логике организации иерархической модели получается, что операции с отдельным файлом или элементов производятся довольно быстро.

Но при возникновении задачи отыскать определённые данные это может потребовать время. С этим сталкивались все, кто когда-либо проверял ПК антивирусной программой. Дело в том, что поиск сведений и анализ происходит по цепочке иерархии. ПК в этом случае спускается от корневого элемента к дочерним всё ниже и ниже по структуре. Причём изучают не только каждый новый элемент, но и связи в цепи. А это требует времени, намного больше, чем просто операции с отдельно взятым файлом.

Что такое иерархическая система управления базами данных (СУБД)?

Иерархическая система управления базами данных (СУБД) организована по аналогичной структуре. Если связей несколько, то программа пойдёт в дочерний элемент, находящийся на позиции крайнего слева. ПО изучит его содержимое, после чего начнёт анализировать на предмет дочерних элементов. Если они будут обнаружены, программное обеспечение спустится для анализа дальше. При отсутствии таких элементов произойдёт возврат в родительскую часть, чтобы проверить другие элементы.

По описанной схеме действия будут повторяться и повторяться. То есть всё будет происходить по схеме: спуск, проверка, подъём, а потом снова спуск. Таким образом происходит работа с данной структурой. И теперь можно понять, какая же у ИБД структура. Это облегчит работу с ней.

Структура ИБД

СУБД исторически начали первыми использовать иерархическую модель организации данных. Впоследствии, в результате развития появилась уже сетевая модель.

У ИБД есть ключевые информационные единицы. Это поле и сегмент. Поле — самая маленькая единица, которая является неделимой. Дальше идёт сегмент, у которого есть тип, плюс можно установить экземпляр.

Экземпляр сегмента создаётся заданными значениями полей данных. Непосредственно понятие «типа» возникло как сочетание типов полей, включённых в конкретный сегмент. Это означает, что тип сегмента представляет собой родительский сегмент.

Если внимательно изучить иерархическую структуру, то легко увидеть, что у любого потомка (дочерний элемент) есть только один корневой элемент. И это в некоторых случаях облегчает поиск, но при большом объёме данных может сделать его трудоёмким.

Каждый узел или элемент ИБД является сегментом. Между сегментами возможно установление связей.

Преобразование из концептуальной модели базы данных в иерархическую

Концептуальная модель может быть преобразована в иерархическую. В этом случае действия происходят по той же схеме, по которой преобразования осуществляются в сетевую модель. Но есть также ряд моментов, требующих уточнения. Они обусловлены древовидной структурой ИБД.

Между узлами, как и говорилось выше, могут быть связи. Они идут в форме 1 к 1, а также 1 к многим. Преобразование второго вида связи происходит автоматическим образом, если потомок иерархического дерева связан исключительно с 1 предком.

Все объекты с атрибутами, участвующие в формировании такой связи, становятся логическими сегментами. Между 2 подобными сегментами образуется связь по типу «1 к многим». И «один» выступает в роли «предок», а часть структуры, которая находится на позиции «много», будет «потомками». Такой принцип преобразования напоминает процесс с сетевой моделью.

Ситуация может усложняться, когда родительских элементов — несколько. Для иерархической структуры такая ситуация априори невозможно. Поэтому её нужно разделять до тех пор, пока каждому элементу не будет соответствовать только один предок. В итоге у вас вместо одной конструкции может образоваться несколько деревьев, в основе у каждого — по одному корневому элементу. Но такие операции нужно осуществлять предельно внимательно, чтобы не перепутать части баз данных между собой. Надо понять, какой потомок к какому родительскому элементу относится. И при этом следует помнить, что не должно быть элемента без родительской части структуры.

Подобные манипуляции могут привести к избыточности. Так что единственно возможным выходом из ситуации становится дублирование.

Иерархические данные и управление

Управление иерархической моделью осуществляется с помощью 2 инструментов. Это языковые средства. Они нужны для манипулирования и описания данных.

Также в контексте решения вопросов управления необходимо принимать во внимание физическую структуру ИБД. Она описывает логическую структуру и структуру хранения БД.

Обозначенный способ доступа определяет то, каким образом будет организована связь между физическими записями. Есть несколько способов обеспечения доступа. Это иерархические:

  • прямой способ;
  • индексно-прямой;
  • индексно-последовательный;
  • последовательный.

Кроме того, в отдельную категорию обособлены индексные способы.

Чтобы управлять, нужно описание ИБД. У указанной структуры нужно установить имя. Также необходимо прописать способ доступа к каждому элементу. Плюс в описание необходимо внести определение типов сегментов данных, которые включены в БД по выстроенной иерархии. Делать описание начинают с корня.

Необходимо принять во внимание, что у каждой физической базы данных может быть только 1 корень. Однако у иерархической системы возможно несколько физических баз.

Если говорить об управлении, нужно выделить операторов манипулирования. Это операторы, которые отвечают за:

  • поиск данных;
  • поиск информации с возможностью модификации;
  • модификация данных.

Указанный набор операций не назовёшь обширным. Но его достаточно, чтобы находить информацию и в целом управлять ИБД.

В контексте операторов поиска можно привести типичные примеры, которые помогут быстрее понять, о чём речь:

  • отыскать конкретное дерево или элемент;
  • перейти от одного дерева к другому;
  • отыскать экземпляр по заданным параметрам.

Кроме того, существуют операторы поиска с возможностью модификации. В данном случае тоже можно привести примеры:

  • найти экземпляр сегмента и удержать для произведения модификации в последующем;
  • отыскать экземпляр с удержанием для модификации, экземпляр будет от того же родителя.

Есть стандартные операторы модификации. Традиционно работа с ними идёт во второй группе. Это операции с экземпляром сегмента:

  • добавление нового экземпляра в выбранную позицию;
  • обновление уже имеющегося;
  • удаление.

Иерархическая модель подразумевает поддержку на автоматическом уровне целостности структуры ссылок, которые соединяют предков и потомков в общую систему. Необходимо учитывать, что ни один потомок не может появиться в подобной системе без родителя. Соответственно, любые разрывы нельзя допускать. Именно по этой причине систему нужно проверять на целостность. В ней не должно возникать внутренних противоречий. В противном случае работа с подобной БД будет затруднена, а её устойчивость окажется под большим вопросом.