IMS DB-논리 데이터베이스
IMS 데이터베이스에는 각 세그먼트 유형이 상위를 하나만 가질 수 있다는 규칙이 있습니다. 이것은 물리적 데이터베이스의 복잡성을 제한합니다. 많은 DL / I 애플리케이션에는 세그먼트가 두 개의 상위 세그먼트 유형을 가질 수있는 복잡한 구조가 필요합니다. 이러한 한계를 극복하기 위해 DL / I는 DBA가 세그먼트가 물리적 및 논리적 부모를 모두 가질 수있는 논리적 관계를 구현할 수 있도록합니다. 하나의 물리적 데이터베이스 내에서 추가 관계를 만들 수 있습니다. 논리 관계를 구현 한 후 새로운 데이터 구조를 논리 데이터베이스라고합니다.
논리적 관계
논리적 관계에는 다음과 같은 속성이 있습니다.
논리적 관계는 물리적이 아닌 논리적으로 관련된 두 세그먼트 사이의 경로입니다.
일반적으로 별도의 데이터베이스간에 논리적 관계가 설정됩니다. 그러나 특정 데이터베이스의 세그먼트간에 관계가있을 수 있습니다.
다음 이미지는 두 개의 서로 다른 데이터베이스를 보여줍니다. 하나는 학생 데이터베이스이고 다른 하나는 도서관 데이터베이스입니다. Student 데이터베이스의 Books Issued 세그먼트와 Library 데이터베이스의 Books 세그먼트간에 논리적 관계를 만듭니다.
이것은 논리적 관계를 만들 때 논리적 데이터베이스가 보이는 방식입니다-
논리적 하위 세그먼트
논리적 자식 세그먼트는 논리적 관계의 기초입니다. 물리적 데이터 세그먼트이지만 DL / I의 경우 두 개의 상위가있는 것처럼 보입니다. 위 예의 Books 세그먼트에는 두 개의 상위 세그먼트가 있습니다. 발행 된 도서 세그먼트는 논리적 상위이고 라이브러리 세그먼트는 물리적 상위입니다. 하나의 논리적 하위 세그먼트 발생에는 하나의 논리적 상위 세그먼트 발생 만 있고 하나의 논리적 상위 세그먼트 발생에는 많은 논리적 하위 세그먼트 발생이있을 수 있습니다.
논리 트윈
논리적 쌍은 논리적 상위 세그먼트 유형의 단일 발생에 모두 종속 된 논리적 하위 세그먼트 유형의 발생입니다. DL / I는 논리적 하위 세그먼트를 실제 물리적 하위 세그먼트와 유사하게 표시합니다. 이를 가상 논리적 하위 세그먼트라고도합니다.
논리적 관계의 유형
DBA는 세그먼트 간의 논리적 관계를 생성합니다. 논리적 관계를 구현하기 위해 DBA는 관련된 물리적 데이터베이스에 대해 DBDGEN에서이를 지정해야합니다. 논리적 관계에는 세 가지 유형이 있습니다.
- Unidirectional
- 양방향 가상
- 양방향 물리적
단방향
논리적 연결은 논리적 자식에서 논리적 부모로 이동하며 반대 방향으로 갈 수 없습니다.
양방향 가상
양방향으로 액세스 할 수 있습니다. 물리적 구조의 논리적 자식과 해당 가상 논리적 자식은 쌍을 이룬 세그먼트로 볼 수 있습니다.
양방향 물리적
논리적 자식은 물리적 부모와 논리적 부모 모두에 물리적으로 저장된 하위입니다. 응용 프로그램에서는 양방향 가상 논리적 자식과 같은 방식으로 나타납니다.
프로그래밍 고려 사항
논리 데이터베이스를 사용하기위한 프로그래밍 고려 사항은 다음과 같습니다.
데이터베이스에 액세스하기위한 DL / I 호출은 논리 데이터베이스에서도 동일하게 유지됩니다.
프로그램 사양 블록은 호출에서 사용하는 구조를 나타냅니다. 어떤 경우에는 논리 데이터베이스를 사용하고 있음을 식별 할 수 없습니다.
논리적 관계는 데이터베이스 프로그래밍에 새로운 차원을 추가합니다.
두 개의 데이터베이스가 함께 통합되므로 논리적 데이터베이스로 작업 할 때는주의해야합니다. 한 데이터베이스를 수정하는 경우 동일한 수정 사항이 다른 데이터베이스에 반영되어야합니다.
프로그램 사양은 데이터베이스에서 허용되는 처리를 나타내야합니다. 처리 규칙을 위반하면 공백이 아닌 상태 코드를 받게됩니다.
연결된 세그먼트
논리적 자식 세그먼트는 항상 대상 부모의 전체 연결된 키로 시작합니다. 이를 DPCK (Destination Parent Concatenated Key)라고합니다. 논리적 하위에 대한 세그먼트 I / O 영역의 시작 부분에서 항상 DPCK를 코딩해야합니다. 논리적 데이터베이스에서 연결된 세그먼트는 서로 다른 물리적 데이터베이스에 정의 된 세그먼트 사이를 연결합니다. 연결된 세그먼트는 다음 두 부분으로 구성됩니다.
- 논리적 자식 세그먼트
- 대상 상위 세그먼트
논리적 자식 세그먼트는 다음 두 부분으로 구성됩니다.
- 대상 상위 연결 키 (DPCK)
- 논리적 하위 사용자 데이터
업데이트 중에 연결된 세그먼트로 작업 할 때 단일 호출로 논리적 자식과 대상 부모 모두에서 데이터를 추가하거나 변경할 수 있습니다. 이것은 또한 DBA가 데이터베이스에 대해 지정한 규칙에 따라 다릅니다. 인서트의 경우 올바른 위치에 DPCK를 제공하십시오. 대체 또는 삭제의 경우 연결된 세그먼트의 어느 한 부분에서 DPCK 또는 시퀀스 필드 데이터를 변경하지 마십시오.