계층 구조 및 관계형 데이터베이스의 만들 또는 비교

다음 정보는 IMS 데이터베이스의 계층 구조 모델과 표준 관계형 데이터베이스 모델 간의 차이점을 설명합니다.

데이터베이스 세그먼트 정의는 관계형 테이블이 테이블의 행 세트에 대한 열을 정의하는 방법과 유사한 세그먼트 인스턴스 세트에 대한 필드를 정의합니다. 이 방식으로 세그먼트는 관계형 테이블과 관련되고 세그먼트의 필드는 관계형 테이블의 열과 관련됩니다.

IMS 세그먼트의 이름은 SQL 쿼리에서 테이블 이름이 되고 필드의 이름은 SQL 쿼리에서 컬럼 이름이 됩니다.

계층 구조 데이터베이스의 세그먼트와 관계형 데이터베이스의 테이블 간의 기본적인 차이점은 계층 구조 데이터베이스에서 세그먼트가 서로 내재적으로 결합된다는 점입니다. 관계형 데이터베이스에서 두 개의 테이블을 명시적으로 조인해야 합니다. 계층 구조 데이터베이스의 세그먼트 인스턴스는 이미 상위 세그먼트 및 하위 세그먼트와 결합되어 있으며, 이들은 모두 동일한 계층 구조 경로를 따라 있습니다. 관계형 데이터베이스에서 테이블 간의 이 관계는 외부 키 및 기본 키로 캡처됩니다.

이 절에서는 Deal세션스 샘플 데이터베이스를 데이터베이스의 관계형 표시와 비교합니다. 판매 대리점 샘플 DBD는 <installation location>\IMS Explorer samples 디렉토리의 IMS Enterprise Suite Explorer for Development에서 사용 가능합니다.

중요: 이 정보는 관계형 및 계층 구조 데이터베이스 간의 비교만 제공합니다.

판매 대리점 샘플 데이터베이스에는 다음 그림에 표시된 다섯 가지 세그먼트 유형이 들어 있습니다. 루트 세그먼트는 딜러 세그먼트입니다. 딜러 세그먼트 아래에는 하위 세그먼트인 모델 세그먼트가 있습니다. 모델 세그먼트 아래에는 주문, 판매 및 재고 세그먼트와 같은 하위가 있습니다.

다음 그림은 Deal이어 샘플 데이터베이스의 구조 및 각 세그먼트를 보여줍니다.

그림 1. Deal쉽 샘플 데이터베이스의 세그먼트
그림 설명을 시작합니다. 이 그림은 주변 텍스트에서 설명됩니다. 그림 설명을 종료합니다.

딜러 세그먼트는 자동차를 판매하는 딜러를 식별합니다. 세그먼트에는 DLRNAME 필드의 딜러 이름과 DLRNO 필드의 고유한 딜러 번호가 포함됩니다.

딜러는 각각 해당 모델 세그먼트를 갖는 자동차 유형을 운반합니다. 모델 세그먼트의 MODTYPE 필드에 유형 코드가 들어 있습니다.

판매 대리점에 대해 주문되는 각 자동차에는 주문 세그먼트가 있습니다. 판매업체의 재고에서 판매할 수 있는 각 자동차에 대해 재고 세그먼트가 작성됩니다. 자동차가 판매되면 판매 세그먼트가 작성됩니다.

다음 그림은 그림 1에 표시된 IMS 데이터베이스 레코드의 관계형 표시를 보여줍니다.

그림 2. Deal마이너 샘플 데이터베이스의 관계형 표현
그림 설명을 시작합니다. 이 그림은 주변 텍스트에서 설명됩니다. 그림 설명을 종료합니다.

세그먼트에 관계형 데이터베이스의 기본 키와 유사한 고유 키가 없는 경우, 해당 관계형 테이블을 해당 컬럼 (필드) 목록에 생성된 기본 키가 추가된 것으로 보십시오. 생성된 기본 키의 예는 위의 그림에 있는 모델 테이블 (세그먼트) 에 있습니다. 관계형 데이터베이스의 참조 무결성과 유사하게, 예를 들어, 특정 모델 (상위) 세그먼트의 하위가 되지 않으면 데이터베이스에 Order (하위) 세그먼트를 삽입할 수 없습니다.

또한 필드 (열) 이름이 변경되었습니다. IMS Explorer for Development를 사용하여 세그먼트 및 필드의 이름을 더 의미있는 이름으로 바꿀 수 있습니다.

계층 구조 데이터베이스에서 세그먼트의 발생은 관계형 데이터베이스에 있는 테이블의 행 (또는 튜플) 에 해당합니다.

다음 그림은 세 개의 Deal십 데이터베이스 레코드를 보여줍니다.

그림 3. 판매 Sample 오프셋 작업 확인 상태 확인 상태 테이블 확인될 확인 테이블 확인 확인 확인
그림 설명을 시작합니다. DealerNumber 및 DealerName, 필드가 있는 딜러 세그먼트에는 모델이라는 하위 세그먼트가 있습니다. 모델 세그먼트에는 ModelTypeCode 필드가 있습니다. 그림 설명을 종료합니다.

딜러 세그먼트 발생에는 종속 모델 세그먼트 발생이 있습니다.

다음 그림은 종속 모델 세그먼트 발생의 관계형 표시를 보여줍니다.

그림 4. Deal어커런스 데이터베이스에서 세그먼트 어커런스의 관계형 표현
그림 설명을 시작합니다. DealerNumber 및 DealerName, 열이 있는 딜러 테이블에는 모델이라는 관련 테이블이 있습니다. 모델 테이블에는 ModelTypeCode 열이 있습니다. 그림 설명을 종료합니다.

SQL 호출의 SELECT문을 표시하는 다음 예에서 모델은 쿼리에서 테이블 이름으로 사용되는 세그먼트 이름입니다.

SELECT * FROM Model

다음 예제인 ModelTypeCode는 모델 세그먼트에 포함된 필드의 이름이며 SQL 쿼리에서 열 이름으로 사용됩니다:

SELECT * FROM Model WHERE ModelTypeCode = '062579'

앞의 두 예에서 Model 및 ModelTypeCode는 각각 DBD에서 SEGM 및 FIELD 문의 EXTERNALNAME 매개 변수로 할당되는 별칭 이름입니다. EXTERNALNAME 매개변수는 필드 또는 세그먼트를 참조할 때 사용할 클라이언트 애플리케이션의 외부 별명 이름을 지정하는 선택적 매개변수이며 호스트 자원 이름에 대한 8자제한을 준수할 필요가 없습니다. 외부 별명 이름은 IMS 카탈로그가 활성 상태인 경우에만 사용됩니다. IMS 카탈로그가 활성 상태이지만 세그먼트 또는 필드에 대한 EXTERNALNAME 매개변수에 별명 이름이 지정되지 않은 경우 대신 자원에 8자의 IMS 이름을 사용하십시오.