DB IMS - Database logico

Il database IMS ha una regola per cui ogni tipo di segmento può avere un solo genitore. Ciò limita la complessità del database fisico. Molte applicazioni DL / I richiedono una struttura complessa che consenta a un segmento di avere due tipi di segmento padre. Per superare questa limitazione, DL / I consente al DBA di implementare relazioni logiche in cui un segmento può avere genitori fisici e logici. Possiamo creare relazioni aggiuntive all'interno di un database fisico. La nuova struttura dati dopo l'implementazione della relazione logica è nota come database logico.

Relazione logica

Una relazione logica ha le seguenti proprietà:

  • Una relazione logica è un percorso tra due segmenti che sono correlati logicamente e non fisicamente.

  • Di solito viene stabilita una relazione logica tra database separati. Ma è possibile avere una relazione tra i segmenti di un particolare database.

L'immagine seguente mostra due diversi database. Uno è un database degli studenti e l'altro è un database della libreria. Creiamo una relazione logica tra il segmento Libri emessi dal database Studente e il segmento Libri dal database Biblioteca.

Ecco come appare il database logico quando crei una relazione logica:

Segmento figlio logico

Il segmento figlio logico è la base di una relazione logica. È un segmento di dati fisici ma per DL / I sembra che abbia due genitori. Il segmento Libri nell'esempio precedente ha due segmenti principali. Il segmento dei libri emessi è il padre logico e il segmento della libreria è il padre fisico. Una ricorrenza del segmento figlio logico ha una sola occorrenza del segmento padre logico e un'occorrenza del segmento padre logico può avere molte occorrenze del segmento figlio logico.

Gemelli logici

I gemelli logici sono le occorrenze di un tipo di segmento figlio logico che sono tutte subordinate a una singola occorrenza del tipo di segmento padre logico. DL / I fa sembrare il segmento figlio logico simile a un segmento figlio fisico effettivo. Questo è anche noto come segmento figlio logico virtuale.

Tipi di relazioni logiche

Un DBA crea relazioni logiche tra i segmenti. Per implementare una relazione logica, il DBA deve specificarla nei DBDGEN per i database fisici coinvolti. Esistono tre tipi di relazioni logiche:

  • Unidirectional
  • Virtuale bidirezionale
  • Fisica bidirezionale

Unidirezionale

La connessione logica va dal figlio logico al genitore logico e non può essere invertito.

Virtuale bidirezionale

Consente l'accesso in entrambe le direzioni. Il figlio logico nella sua struttura fisica e il figlio logico virtuale corrispondente possono essere visti come segmenti accoppiati.

Fisica bidirezionale

Il figlio logico è un subordinato immagazzinato fisicamente ai suoi genitori fisici e logici. Ai programmi applicativi, appare allo stesso modo di un figlio logico virtuale bidirezionale.

Considerazioni sulla programmazione

Le considerazioni sulla programmazione per l'utilizzo di un database logico sono le seguenti:

  • Le chiamate DL / I per accedere al database rimangono uguali anche al database logico.

  • Il blocco di specifica del programma indica la struttura che usiamo nelle nostre chiamate. In alcuni casi, non possiamo identificare che stiamo usando un database logico.

  • Le relazioni logiche aggiungono una nuova dimensione alla programmazione del database.

  • È necessario prestare attenzione quando si lavora con i database logici, poiché due database sono integrati insieme. Se modifichi un database, le stesse modifiche devono essere riflesse nell'altro database.

  • Le specifiche del programma dovrebbero indicare quale elaborazione è consentita su un database. Se una regola di elaborazione viene violata, ottieni un codice di stato non vuoto.

Segmento concatenato

Un segmento figlio logico inizia sempre con la chiave concatenata completa del genitore di destinazione. Questo è noto come DPCK (Destination Parent Concatenated Key). È necessario codificare sempre il DPCK all'inizio dell'area di I / O del segmento per un figlio logico. In un database logico, il segmento concatenato effettua la connessione tra segmenti definiti in database fisici diversi. Un segmento concatenato è costituito dalle seguenti due parti:

  • Segmento figlio logico
  • Segmento principale di destinazione

Un segmento figlio logico è costituito dalle seguenti due parti:

  • Chiave concatenata padre di destinazione (DPCK)
  • Dati utente figlio logico

Quando lavoriamo con segmenti concatenati durante l'aggiornamento, potrebbe essere possibile aggiungere o modificare i dati sia nel figlio logico che nel genitore di destinazione con una singola chiamata. Ciò dipende anche dalle regole specificate dal DBA per il database. Per un inserto, fornire il DPCK nella posizione corretta. Per una sostituzione o un'eliminazione, non modificare il DPCK oi dati del campo della sequenza in nessuna parte del segmento concatenato.