IMS DB - Banco de Dados Lógico

O banco de dados IMS tem uma regra de que cada tipo de segmento pode ter apenas um pai. Isso limita a complexidade do banco de dados físico. Muitos aplicativos DL / I requerem uma estrutura complexa que permite que um segmento tenha dois tipos de segmento pai. Para superar essa limitação, DL / I permite que o DBA implemente relacionamentos lógicos nos quais um segmento pode ter pais físicos e lógicos. Podemos criar relacionamentos adicionais em um banco de dados físico. A nova estrutura de dados após a implementação do relacionamento lógico é conhecida como Banco de Dados Lógico.

Relação Lógica

Um relacionamento lógico tem as seguintes propriedades -

  • Um relacionamento lógico é um caminho entre dois segmentos que estão relacionados logicamente e não fisicamente.

  • Normalmente, um relacionamento lógico é estabelecido entre bancos de dados separados. Mas é possível ter um relacionamento entre os segmentos de um banco de dados específico.

A imagem a seguir mostra dois bancos de dados diferentes. Um é o banco de dados do Aluno e o outro é um banco de dados da Biblioteca. Criamos uma relação lógica entre o segmento Livros publicados da base de dados do Aluno e o segmento Livros da base de dados da Biblioteca.

Esta é a aparência do banco de dados lógico quando você cria um relacionamento lógico -

Segmento Lógico Criança

O segmento filho lógico é a base de um relacionamento lógico. É um segmento de dados físico, mas para DL / I, parece que tem dois pais. O segmento Livros no exemplo acima possui dois segmentos pais. O segmento dos livros emitidos é o pai lógico e o segmento da Biblioteca é o pai físico. Uma ocorrência de segmento filho lógico tem apenas uma ocorrência de segmento pai lógico e uma ocorrência de segmento pai lógico pode ter muitas ocorrências de segmento filho lógico.

Logical Twins

Os gêmeos lógicos são as ocorrências de um tipo de segmento filho lógico, todas subordinadas a uma única ocorrência do tipo de segmento pai lógico. DL / I faz o segmento filho lógico parecer semelhante a um segmento filho físico real. Isso também é conhecido como segmento filho lógico virtual.

Tipos de relacionamentos lógicos

Um DBA cria relacionamentos lógicos entre segmentos. Para implementar um relacionamento lógico, o DBA deve especificá-lo nos DBDGENs dos bancos de dados físicos envolvidos. Existem três tipos de relacionamentos lógicos -

  • Unidirectional
  • Virtual bidirecional
  • Físico bidirecional

Unidirecional

A conexão lógica vai do filho lógico para o pai lógico e não pode acontecer o contrário.

Virtual bidirecional

Permite acesso em ambas as direções. O filho lógico em sua estrutura física e o filho lógico virtual correspondente podem ser vistos como segmentos emparelhados.

Físico bidirecional

A criança lógica é um subordinado fisicamente armazenado tanto para seus pais físicos quanto lógicos. Para programas de aplicativos, ele aparece da mesma forma que um filho lógico virtual bidirecional.

Considerações de programação

As considerações de programação para usar um banco de dados lógico são as seguintes -

  • As chamadas DL / I para acessar o banco de dados também permanecem iguais com o banco de dados lógico.

  • O bloco de especificação do programa indica a estrutura que usamos em nossas chamadas. Em alguns casos, não podemos identificar que estamos usando um banco de dados lógico.

  • Os relacionamentos lógicos adicionam uma nova dimensão à programação do banco de dados.

  • Você deve ter cuidado ao trabalhar com bancos de dados lógicos, pois dois bancos de dados são integrados. Se você modificar um banco de dados, as mesmas modificações devem ser refletidas no outro banco de dados.

  • As especificações do programa devem indicar qual processamento é permitido em um banco de dados. Se uma regra de processamento for violada, você receberá um código de status não em branco.

Segmento Concatenado

Um segmento filho lógico sempre começa com a chave concatenada completa do pai de destino. Isso é conhecido como Chave Concatenada Pai de Destino (DPCK). Você precisa sempre codificar o DPCK no início de sua área de E / S de segmento para um filho lógico. Em um banco de dados lógico, o segmento concatenado faz a conexão entre segmentos que são definidos em diferentes bancos de dados físicos. Um segmento concatenado consiste nas duas partes a seguir -

  • Segmento filho lógico
  • Segmento pai de destino

Um segmento filho lógico consiste nas duas partes a seguir -

  • Chave concatenada principal de destino (DPCK)
  • Dados lógicos do usuário filho

Quando trabalhamos com segmentos concatenados durante a atualização, pode ser possível adicionar ou alterar os dados no filho lógico e no pai de destino com uma única chamada. Isso também depende das regras que o DBA especificou para o banco de dados. Para uma inserção, coloque o DPCK na posição correta. Para uma substituição ou exclusão, não altere o DPCK ou os dados do campo de sequência em nenhuma parte do segmento concatenado.