맨위로가기

데이터 언어 인터페이스

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

데이터 언어 인터페이스(DL/I)는 계층형 데이터베이스 접근을 위한 언어이다. COBOL, PL/I, C, 어셈블리 언어 등에서 DL/I 명령을 사용할 수 있으며, GU, GN, ISRT, DELT, REPL 등의 주요 명령어를 제공한다. 계층형 데이터베이스의 빠른 속도와 용량 효율성을 제공하지만, 전용 기술을 필요로 하고 SQL과 같은 표준 질의 언어가 부재하다는 단점이 있다. DL/I는 IMS-DB, DL/I VSE 등의 데이터베이스 관리 시스템에서 사용된다.

더 읽어볼만한 페이지

  • IBM 소프트웨어 - IBM 시스템 R
  • IBM 소프트웨어 - PL/I
    PL/I는 1960년대 IBM이 과학 및 상업 분야의 다양한 프로그래밍 요구를 위해 개발한 고급 프로그래밍 언어로, 포트란, 코볼, 알골의 특징을 융합하여 시스템 프로그래밍, 이벤트 기반 프로그래밍 등 다양한 분야에 사용될 수 있도록 설계되었다.
데이터 언어 인터페이스
개요
유형데이터베이스 관리 기능
개발IBM
출시1966년
영향계층형 데이터베이스 모델
언어어셈블리어
상세 정보
설명데이터 언어 인터페이스 (Data Language Interface, DL/I)는 IBM 메인프레임 운영 체제, 특히 z/OS의 IMS 데이터베이스와 z/VSE의 DL/I 데이터베이스에 사용되는 데이터베이스 관리 기능이다.
특징계층형 데이터베이스 모델을 구현했다.

2. 명칭

DL/I 또는 DL/1으로 표기한다. IBM의 제품 매뉴얼 등에서는 DL/I가 주로 사용된다. 이는 동시대 IBM의 프로그래밍 언어PL/I의 명명 규칙을 따른 것이다.

3. 특징

DL/I는 계층형 데이터베이스 접근을 위한 언어이다. COBOL, PL/I, C, System/390의 어셈블리 언어 등에서 DL/I 명령을 사용할 수 있다.

3. 1. 명령어 종류

PL/I을 제외한 모든 언어에서 데이터 언어 인터페이스(DL/I) 명령어는 COBOL, PL/I, C, System/390의 어셈블리 언어 등에서 사용할 수 있으며, 함수 코드는 네 개의 문자 필드로 구성된다.[1]

  • GU (Get Unique): 특정 레코드를 직접 검색한다.[1]
  • GN (Get Next): 현재 위치에서 다음 레코드를 순차적으로 검색한다.[1]
  • ISRT (Insert): 새로운 레코드를 삽입한다.[1]
  • DELT (Delete): 레코드를 삭제한다.[1]
  • REPL (Replace): 레코드 내용을 수정한다.[1]
  • 기타: GNP (Get Next within Parent), GHU (Get Hold Unique), GHN (Get Hold Next), GHNP (Get Hold Next within Parent), PURG 등이 있다.[1]

3. 2. 장점

계층형 데이터베이스는 대규모 데이터베이스에서도 빠른 속도와 적은 용량을 차지하며, 높은 추정 정확도를 제공한다.[1] 레코드 단위 읽기/쓰기를 지원하여 레코드 처리 프로그래밍이 용이하다. (\[\[SQL]]과 같은 테이블 커서 조작은 불필요)[1]

3. 3. 단점

데이터 언어 인터페이스는 전용 기술을 필요로 한다는 단점이 있다. 현재 계층형 데이터베이스 자체가 많지 않고, 질의 언어도 SQL처럼 표준화되어 있지 않다. 따라서 레코드 필터링은 SQL의 WHERE 절에 해당하는 기능이 약하므로 애플리케이션에서 직접 수행해야 한다.[1]

4. 함수 코드

PL/I을 제외한 모든 언어에서 DL/I 호출 시 첫 번째 매개변수는 함수 코드이며, 4개의 문자 필드로 구성된다. PL/I의 경우 언어 특성상 첫 번째 매개변수는 뒤따르는 매개변수의 개수를 포함하는 풀워드(Fixed Bin(31))여야 한다.[1]

다음은 함수 코드의 예시이다.


  • "GU " (Get Unique)
  • "GN " (Get Next)
  • "REPL" (Replace)
  • "ISRT" (Insert)
  • "DELT" (Delete)
  • 기타 ("GNP ", "GHU ", "GHN ", "GHNP", "PURG")[1]

5. 호출 예시

COBOL 프로그램에서의 DL/I 호출은 다음과 같은 형식으로 이루어진다.

```cobolfree

02100 CALL “CBLTDLI” USING GU, Stores-Database-PCB, Stores-Segment-Area, Stores-Root-SSA

```

PL/I 프로그램에서의 호출은 다음과 같은 형식으로 이루어진다.

```

CALL PLITDLI(FOUR, GU, Stores-Database-PCB, Stores-Segment-Area, Stores-Root-SSA);

6. 사용 제품

참조

[1] 웹사이트 IBM z/VSE Products and components https://web.archive.[...] IBM 2009-06-27
[2] 웹인용 IBM z/VSE Products and components http://www-03.ibm.co[...] IBM 2009-06-27



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com