Учебники

IMS DB — логическая база данных

В базе данных IMS есть правило, согласно которому у каждого типа сегмента может быть только один родительский элемент. Это ограничивает сложность физической базы данных. Многие приложения DL / I требуют сложной структуры, которая позволяет сегменту иметь два родительских типа сегмента. Чтобы преодолеть это ограничение, DL / I позволяет администратору баз данных реализовывать логические отношения, в которых сегмент может иметь как физических, так и логических родителей. Мы можем создать дополнительные отношения в одной физической базе данных. Новая структура данных после реализации логических отношений называется логической базой данных.

Логическая связь

Логическое отношение имеет следующие свойства —

  • Логические отношения — это путь между двумя сегментами, которые связаны логически, а не физически.

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

Логические отношения — это путь между двумя сегментами, которые связаны логически, а не физически.

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

На следующем рисунке показаны две разные базы данных. Одна — это база данных студентов, а другая — база данных библиотеки. Мы создаем логическую связь между сегментом «Выпущенные книги» из базы данных «Студент» и сегментом «Книги» из базы данных «Библиотека».

стандартная и библиотечная база данных

Вот как выглядит логическая база данных при создании логических отношений —

Логическая база данных

Логический дочерний сегмент

Логический дочерний сегмент является основой логических отношений. Это физический сегмент данных, но для DL / I кажется, что у него два родителя. Сегмент Книги в приведенном выше примере имеет два родительских сегмента. Сегмент выпущенных книг является логическим родителем, а сегмент библиотеки — физическим родителем. Одно вхождение логического дочернего сегмента имеет только одно вхождение логического родительского сегмента, и одно вхождение логического родительского сегмента может иметь много вхождений логического дочернего сегмента.

Логические близнецы

Логические двойники — это вхождения типа логического дочернего сегмента, все они подчинены одному вхождению типа логического родительского сегмента. DL / I делает логический дочерний сегмент похожим на фактический физический дочерний сегмент. Это также известно как виртуальный логический дочерний сегмент.

Типы логических отношений

DBA создает логические отношения между сегментами. Для реализации логической связи администратор базы данных должен указать ее в DBDGEN для задействованных физических баз данных. Есть три типа логических отношений —

  • однонаправленный
  • Двунаправленный Виртуальный
  • Двунаправленный Физический

однонаправленный

Логическое соединение переходит от логического потомка к логическому родителю и не может быть наоборот.

Двунаправленный Виртуальный

Это позволяет получить доступ в обоих направлениях. Логический дочерний элемент в его физической структуре и соответствующий виртуальный логический дочерний элемент могут рассматриваться как парные сегменты.

Двунаправленный Физический

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

Вопросы программирования

Программные соображения для использования логической базы данных следующие:

  • Звонки DL / I для доступа к базе данных остаются такими же с логической базой данных.

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

  • Логические отношения добавляют новое измерение программированию базы данных.

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

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

Звонки DL / I для доступа к базе данных остаются такими же с логической базой данных.

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

Логические отношения добавляют новое измерение программированию базы данных.

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

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

Каскадный сегмент

Логический дочерний сегмент всегда начинается с полного сцепленного ключа родительского целевого объекта. Это известно как сцепленный родительский ключ (DPCK). Вы должны всегда кодировать DPCK в начале области ввода / вывода вашего сегмента для логического дочернего элемента. В логической базе данных объединенный сегмент устанавливает связь между сегментами, которые определены в разных физических базах данных. Объединенный сегмент состоит из следующих двух частей:

  • Логический дочерний сегмент
  • Целевой родительский сегмент

Логический дочерний сегмент состоит из следующих двух частей:

  • Родительский каскадный ключ (DPCK)
  • Логические дочерние данные пользователя

логичный ребенок

Когда мы работаем со связанными сегментами во время обновления, может быть возможно добавить или изменить данные как в логическом дочернем элементе, так и в родительском получателе с помощью одного вызова. Это также зависит от правил администратора баз данных, указанных для базы данных. Для вставки поместите DPCK в правильное положение. Для замены или удаления не изменяйте данные DPCK или поля последовательности ни в одной части объединенного сегмента.