IMS DB - Base de datos lógica
La base de datos IMS tiene una regla según la cual cada tipo de segmento puede tener solo un padre. Esto limita la complejidad de la base de datos física. Muchas aplicaciones DL / I requieren una estructura compleja que permita que un segmento tenga dos tipos de segmento principal. Para superar esta limitación, DL / I permite al DBA implementar relaciones lógicas en las que un segmento puede tener padres tanto físicos como lógicos. Podemos crear relaciones adicionales dentro de una base de datos física. La nueva estructura de datos después de implementar la relación lógica se conoce como Base de datos lógica.
Relación lógica
Una relación lógica tiene las siguientes propiedades:
Una relación lógica es una ruta entre dos segmentos que están relacionados de forma lógica y no física.
Por lo general, se establece una relación lógica entre bases de datos independientes. Pero es posible tener una relación entre los segmentos de una base de datos en particular.
La siguiente imagen muestra dos bases de datos diferentes. Uno es una base de datos de estudiantes y el otro es una base de datos de biblioteca. Creamos una relación lógica entre el segmento Libros emitidos de la base de datos de estudiantes y el segmento Libros de la base de datos de la biblioteca.
Así es como se ve la base de datos lógica cuando crea una relación lógica:
Segmento hijo lógico
El segmento hijo lógico es la base de una relación lógica. Es un segmento de datos físicos, pero para DL / I, parece como si tuviera dos padres. El segmento Libros en el ejemplo anterior tiene dos segmentos principales. El segmento de libros emitidos es el padre lógico y el segmento de biblioteca es el padre físico. Una ocurrencia de segmento hijo lógico tiene sólo una ocurrencia de segmento padre lógico y una ocurrencia de segmento padre lógico puede tener muchas ocurrencias de segmento hijo lógico.
Gemelos lógicos
Los gemelos lógicos son las ocurrencias de un tipo de segmento hijo lógico que están todas subordinadas a una sola ocurrencia del tipo de segmento padre lógico. DL / I hace que el segmento secundario lógico parezca similar a un segmento secundario físico real. Esto también se conoce como segmento secundario lógico virtual.
Tipos de relaciones lógicas
Un DBA crea relaciones lógicas entre segmentos. Para implementar una relación lógica, el DBA debe especificarlo en los DBDGEN para las bases de datos físicas involucradas. Hay tres tipos de relaciones lógicas:
- Unidirectional
- Virtual bidireccional
- Físico bidireccional
Unidireccional
La conexión lógica va del hijo lógico al padre lógico y no puede ir al revés.
Virtual bidireccional
Permite el acceso en ambas direcciones. El niño lógico en su estructura física y el niño lógico virtual correspondiente pueden verse como segmentos emparejados.
Físico bidireccional
El niño lógico es un subordinado almacenado físicamente tanto de sus padres físicos como lógicos. Para los programas de aplicación, aparece de la misma manera que un niño lógico virtual bidireccional.
Consideraciones de programación
Las consideraciones de programación para usar una base de datos lógica son las siguientes:
Las llamadas DL / I para acceder a la base de datos siguen siendo las mismas que las de la base de datos lógica.
El bloque de especificación del programa indica la estructura que usamos en nuestras llamadas. En algunos casos, no podemos identificar que estamos usando una base de datos lógica.
Las relaciones lógicas agregan una nueva dimensión a la programación de bases de datos.
Debe tener cuidado al trabajar con bases de datos lógicas, ya que dos bases de datos están integradas juntas. Si modifica una base de datos, las mismas modificaciones deben reflejarse en la otra base de datos.
Las especificaciones del programa deben indicar qué procesamiento está permitido en una base de datos. Si se infringe una regla de procesamiento, obtiene un código de estado que no está en blanco.
Segmento concatenado
Un segmento hijo lógico siempre comienza con la clave concatenada completa del padre de destino. Esto se conoce como clave concatenada principal de destino (DPCK). Siempre debe codificar el DPCK al comienzo del área de E / S de su segmento para un hijo lógico. En una base de datos lógica, el segmento concatenado realiza la conexión entre segmentos que están definidos en diferentes bases de datos físicas. Un segmento concatenado consta de las siguientes dos partes:
- Segmento hijo lógico
- Segmento principal de destino
Un segmento hijo lógico consta de las dos partes siguientes:
- Clave concatenada principal de destino (DPCK)
- Datos de usuario de niño lógico
Cuando trabajamos con segmentos concatenados durante la actualización, es posible agregar o cambiar los datos tanto en el hijo lógico como en el padre de destino con una sola llamada. Esto también depende de las reglas que el DBA especificó para la base de datos. Para un inserto, proporcione el DPCK en la posición correcta. Para reemplazar o eliminar, no cambie el DPCK o los datos del campo de secuencia en ninguna parte del segmento concatenado.