IMS DB - Base de données logique

La base de données IMS a une règle selon laquelle chaque type de segment ne peut avoir qu'un seul parent. Cela limite la complexité de la base de données physique. De nombreuses applications DL / I nécessitent une structure complexe qui permet à un segment d'avoir deux types de segments parents. Pour surmonter cette limitation, DL / I permet au DBA d'implémenter des relations logiques dans lesquelles un segment peut avoir des parents physiques et logiques. Nous pouvons créer des relations supplémentaires dans une base de données physique. La nouvelle structure de données après implémentation de la relation logique est connue sous le nom de base de données logique.

Relation logique

Une relation logique a les propriétés suivantes -

  • Une relation logique est un chemin entre deux segments qui sont liés logiquement et non physiquement.

  • En général, une relation logique est établie entre des bases de données distinctes. Mais il est possible d'avoir une relation entre les segments d'une base de données particulière.

L'image suivante montre deux bases de données différentes. L'une est une base de données d'étudiants et l'autre est une base de données de bibliothèque. Nous créons une relation logique entre le segment Livres émis de la base de données des étudiants et le segment Livres de la base de données Bibliothèque.

Voici à quoi ressemble la base de données logique lorsque vous créez une relation logique -

Segment enfant logique

Le segment enfant logique est la base d'une relation logique. Il s'agit d'un segment de données physique mais pour DL / I, il semble qu'il ait deux parents. Le segment Livres de l'exemple ci-dessus a deux segments parents. Le segment Livres émis est le parent logique et le segment Bibliothèque est le parent physique. Une occurrence de segment enfant logique n'a qu'une seule occurrence de segment parent logique et une occurrence de segment parent logique peut avoir plusieurs occurrences de segment enfant logique.

Jumeaux logiques

Les jumeaux logiques sont les occurrences d'un type de segment enfant logique qui sont toutes subordonnées à une seule occurrence du type de segment parent logique. DL / I rend le segment enfant logique similaire à un segment enfant physique réel. Ceci est également connu sous le nom de segment enfant logique virtuel.

Types de relations logiques

Un DBA crée des relations logiques entre les segments. Pour implémenter une relation logique, l'administrateur de base de données doit la spécifier dans les DBDGEN des bases de données physiques concernées. Il existe trois types de relations logiques -

  • Unidirectional
  • Virtuel bidirectionnel
  • Physique bidirectionnel

Unidirectionnel

La connexion logique va de l'enfant logique au parent logique et ne peut pas aller dans l'autre sens.

Virtuel bidirectionnel

Il permet l'accès dans les deux sens. L'enfant logique dans sa structure physique et l'enfant logique virtuel correspondant peuvent être considérés comme des segments appariés.

Physique bidirectionnel

L'enfant logique est un subordonné physiquement stocké de ses parents physiques et logiques. Pour les programmes d'application, il apparaît de la même manière qu'un enfant logique virtuel bidirectionnel.

Considérations de programmation

Les considérations de programmation pour l'utilisation d'une base de données logique sont les suivantes:

  • Les appels DL / I pour accéder à la base de données restent les mêmes avec la base de données logique.

  • Le bloc de spécification du programme indique la structure que nous utilisons dans nos appels. Dans certains cas, nous ne pouvons pas identifier que nous utilisons une base de données logique.

  • Les relations logiques ajoutent une nouvelle dimension à la programmation des bases de données.

  • Vous devez être prudent lorsque vous travaillez avec des bases de données logiques, car deux bases de données sont intégrées ensemble. Si vous modifiez une base de données, les mêmes modifications doivent être reflétées dans l'autre base de données.

  • Les spécifications du programme doivent indiquer quel traitement est autorisé sur une base de données. Si une règle de traitement n'est pas respectée, vous obtenez un code d'état non vide.

Segment concaténé

Un segment enfant logique commence toujours par la clé concaténée complète du parent de destination. Ceci est connu sous le nom de clé concaténée parente de destination (DPCK). Vous devez toujours coder le DPCK au début de votre zone d'E / S de segment pour un enfant logique. Dans une base de données logique, le segment concaténé établit la connexion entre des segments définis dans différentes bases de données physiques. Un segment concaténé se compose des deux parties suivantes:

  • Segment enfant logique
  • Segment parent de destination

Un segment enfant logique se compose des deux parties suivantes -

  • Clé concaténée parente de destination (DPCK)
  • Données logiques de l'utilisateur enfant

Lorsque nous travaillons avec des segments concaténés pendant la mise à jour, il peut être possible d'ajouter ou de modifier les données à la fois dans l'enfant logique et dans le parent de destination avec un seul appel. Cela dépend également des règles spécifiées par le DBA pour la base de données. Pour un insert, placez le DPCK dans la bonne position. Pour un remplacement ou une suppression, ne modifiez pas le DPCK ou les données du champ de séquence dans l'une ou l'autre partie du segment concaténé.