иерархическая модель базы данных — физические указатели

Я читаю книгу о базах данных, и мне было интересно, может ли кто-нибудь объяснить что-то, что я не могу понять/визуализировать. Я использовал реляционные базы данных и понимаю внешние ключи и т. д. Мой вопрос: что такое «физический указатель» в иерархической модели данных?

Более ранняя иерархическая модель данных подходит для структур данных, которые по своей природе являются иерархическими, причем каждая структура данных размещается на определенном уровне иерархии. Однако в сфере бизнеса многие структуры данных и их взаимосвязи не могут быть легко размещены в иерархическом порядке. Модель сетевых данных эволюционировала, чтобы избавиться от произвольных ограничений иерархической модели. Тем не менее, в обеих этих моделях вам нужны физические указатели для соединения связанных вхождений данных. Это серьезный недостаток, поскольку вам приходится переписывать физические адреса в записях данных каждый раз, когда вы реорганизуете данные, перемещаете данные в другую область хранения или переходите на другой носитель данных. Реляционная модель устанавливает соединения. между связанными вхождениями данных с помощью логических связей, реализованных через внешние ключи.

Понния, П. (2003) Проектирование и разработка баз данных: основное руководство для ИТ-специалистов [онлайн], Хобокен, Нью-Джерси, John Wiley & Sons. Доступно по адресу http://onlinelibrary.wiley.com/book/10.1002/0471728993.


person SANM2009    schedule 13.12.2017    source источник


Ответы (1)


Физический указатель — это любое значение, указывающее, где что-то находится, например. адрес памяти, позиция в массиве или коллекции, путь к файловой системе, OID и т. д.

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

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

person reaanb    schedule 14.12.2017
comment
Какой язык и инструмент используется для создания и выполнения операций с базами данных, использующими иерархическую модель? как и для реляционных, у нас есть SQL-сервер и другие программные инструменты и язык SQL. - person RafiO; 03.04.2019
comment
@RafiO Иерархические данные обычно доступны и управляются программно, вместо того, чтобы иметь собственный язык запросов. Если вы работали с данными XML или JSON, вы будете немного знакомы. - person reaanb; 04.04.2019
comment
спасибо @reaanb bro. Мне до сих пор не ясно, что подразумевается под адресом, что сказано в иерархической модели родительского узла, хранящего адрес дочернего узла. - person RafiO; 07.04.2019
comment
@RafiO Адрес — это значение, которое можно использовать для доступа к такой структуре, как узел или запись. Когда одна структура хранит адрес другой, она создает ссылку, которую можно использовать для перехода от одной структуры к другой для получения связанных данных. В иерархических и сетевых моделях ссылки, как правило, эффективны для навигации, но очень неэффективны или невозможны для поиска в обратном направлении, то есть для поиска всех связанных структур, указывающих на данную. С другой стороны, реляционная модель полагается не на адреса, а на сравнение значений (например, равенство) для связывания записей по запросу. - person reaanb; 27.04.2019
comment
Является ли этот адрес таким же, как адрес, который мы храним в переменной указателя в С++? Сохраняем ли мы адрес узла, где он хранится на жестком диске. - person RafiO; 05.05.2019
comment
@RafiO Адреса жесткого диска или ОЗУ - один из способов его реализации. Это также могут быть индексы массива. - person reaanb; 06.05.2019