ISAM

ISAM

ISAM(Indexed Sequential Access Method의 약자)은 하나 이상의 에 의해 순차적으로 또는 랜덤하게 레코드를 검색할 수 있도록 데이터의 컴퓨터 파일을 작성, 유지 및 조작하는 방법입니다.인덱스 파일에서 필요한 파일 레코드를 빠르게 검색할 수 있도록 키 필드의 인덱스가 유지됩니다.IBM은 원래 메인프레임 컴퓨터용 ISAM을 개발했지만, 대부분의 컴퓨터 시스템에서 구현이 가능합니다.

ISAM이라는 용어는 다음과 같은 몇 가지 관련 개념에 사용됩니다.

  • IBM ISAM 제품과 이 제품이 [1]채택하는 알고리즘.
  • 애플리케이션 개발자가 직접 애플리케이션 프로그래밍 인터페이스를 사용하여 데이터 파일 내의 레코드를 찾기 위해 인덱스를 검색하는 데이터베이스 시스템.반면 관계형 데이터베이스는 자동으로 [2]인덱스를 선택하는 쿼리 최적화 도구를 사용합니다.
  • 데이터에 [3]대한 순차적 액세스와 키 있는 액세스를 모두 허용하는 인덱싱 알고리즘입니다.대부분의 데이터베이스는 이 목적을 위해 B-트리의 일부 변형을 사용합니다.단, 원래 IBM ISAM 및 VSAM 구현에서는 사용되지 않았습니다.
  • 일반적으로 데이터베이스에 대한 색인입니다.색인은 거의 모든 데이터베이스에서 사용됩니다.

조직

ISAM 시스템에서 데이터는 원래 키 시퀀스로 순차적으로 기억된 고정길이 필드로 구성된 레코드로 편성된다.인덱스로 알려진 레코드의 2차 세트에는 각 레코드의 위치에 대한 포인터가 포함되어 있어 데이터 세트 전체를 검색할 필요 없이 개별 레코드를 검색할 수 있습니다.이것은 다른 레코드에 대한 포인터가 레코드 자체에 저장되었던 동시대의 탐색 데이터베이스와는 다르다.ISAM의 주요 개선점은 인덱스가 작고 빠르게 검색할 수 있다는 것입니다.아마도 메모리에서 완전히 검색할 수 있기 때문에 데이터베이스는 필요한 레코드에만 액세스할 수 있습니다.데이터를 추가로 수정할 경우 해당 테이블과 인덱스만 변경할 필요가 없습니다.

ISAM 파일이 생성되면 인덱스노드는 수정되며 나중에 발생하는 삽입 및 삭제 중에는 포인터가 변경되지 않습니다(리프 노드의 내용만 나중에 변경됩니다).그 결과 일부 리프 노드에 삽입된 내용이 노드의 용량을 초과하면 새 레코드가 오버플로우 체인에 저장됩니다.테이블에서 삭제되는 것보다 삽입되는 수가 많을 경우 이러한 오버플로우 체인은 점차 커질 수 있으며 이는 레코드 [4]취득에 필요한 시간에 영향을 미칩니다.

관계형 데이터베이스는 테이블 간 링크의 유효성을 유지하기 위한 로직을 추가하여 ISAM 프레임워크 상에 쉽게 구축할 수 있습니다.일반적으로 링크로 사용되는 필드인 외부 키는 빠른 검색을 위해 색인화됩니다.이것은 단순히 관련 데이터에 대한 포인터를 레코드에 직접 저장하는 것보다 느리지만, 데이터의 물리적 레이아웃에 대한 변경은 포인터의 갱신을 필요로 하지 않으며, 엔트리는 여전히 유효합니다.

ISAM은 주로 데이터베이스 파일에 대한 직접 접근으로 구성되므로 이해 및 구현이 간단합니다.단점은 각 클라이언트 머신이 액세스하는 각 파일에 대한 자체 연결을 관리해야 한다는 것입니다.따라서 이러한 파일에 대한 삽입이 충돌하여 데이터베이스 상태가 일관되지 않을 수 있습니다.이를 방지하기 위해 일부 ISAM 구현에서는[5][6] 파일 전체 또는 개별 레코드 잠금 기능이 제공됩니다.여러 레코드를 잠그면 교착 방지 체계를 엄격하게 준수하지 않으면 교착 상태가 발생할 위험이 있습니다.잠금 및 교착상태의 문제는 일반적으로 클라이언트의 요청을 처리하고 순서를 유지하는 클라이언트-서버 프레임워크를 추가하면 해결됩니다.완전한 ACID 트랜잭션 관리 시스템은 일부 ISAM 클라이언트-서버 [5]구현에 의해 제공됩니다.이는 기본 데이터 저장소 상의 클라이언트 계층인 데이터베이스 관리 시스템(DBMS)의 기본 개념입니다.

ISAM은 IBM에서 VSAM(가상 스토리지 액세스 방식)이라는 방법으로 대체되었습니다.이후 IBM은 SQL/DS를 개발한 후 DB2를 개발하여 IBM의 주요 데이터베이스 관리 시스템으로 홍보했습니다.VSAM은 DB2에서 [citation needed]사용되는 물리적 액세스 방법입니다.

오픈VMS

OpenVMS 운영 체제는 RMS(Record Management Services)와 함께 Files-11 파일 시스템을 사용합니다.RMS는 애플리케이션과 디스크 상의 파일 사이에 추가 레이어를 제공하여 여러 3GL 및 4GL 언어에 걸쳐 일관된 데이터 구성 및 액세스 방법을 제공합니다.RMS는 데이터에 액세스하는 4가지 방법을 제공합니다.시퀀셜, 상대 레코드 번호 액세스, 레코드 파일주소 액세스, 인덱스 액세스입니다.

데이터 읽기 또는 쓰기의 인덱스 접근 방식은 파일이 사전에 정의된 적절한 키를 사용하여 실제로 ISAM 파일로 구성되어 있는 경우에만 원하는 결과를 제공합니다.이전에 정의한 키를 통한 데이터 접근은 매우 빠릅니다.해시 테이블 내의 여러 키, 중복 키 및 키 압축이 지원됩니다.기존 파일에서 키를 정의/재정의하는 유틸리티가 제공됩니다.레코드는 삭제할 수 있지만 "쓰레기 수집"은 별도의 유틸리티를 통해 수행됩니다.

설계에 관한 고려 사항

IBM 엔지니어들은 최소한의 컴퓨터 메모리를 사용하도록 ISAM 시스템을 설계했다.단점은 입출력 채널, 제어 장치 및 디스크가 더 바쁘게 유지된다는 것입니다.ISAM 파일은 데이터 레코드의 컬렉션과 2~3레벨의 인덱스로 구성됩니다.트랙 인덱스는 인덱싱하는 실린더의 각 디스크 트랙에 대한 가장 높은 키를 포함합니다.실린더 인덱스는 실린더에서 가장 높은 키와 해당 트랙 인덱스의 디스크 주소를 저장합니다.보통 큰 파일에만 사용되는 선택적 마스터 인덱스는 실린더 인덱스 트랙에서 가장 높은 키와 해당 실린더 인덱스의 디스크 주소를 포함합니다.파일이 로드되면 데이터 레코드는 이동되지 않고 삽입된 레코드는 별도의 오버플로 영역에 배치됩니다.키를 사용하여 레코드를 찾기 위해 디스크의 인덱스를 복잡한 자체 수정 채널 [7]프로그램으로 검색합니다.이로 인해 채널, 컨트롤 유닛 및 디스크의 비지 타임이 증가했습니다.이후 시스템에서 물리적 메모리 및 가상 메모리 크기가 증가하면 이는 비효율적인 것으로 간주되었으며, VSAM은 메모리 사용량과 디스크 작업 간의 균형을 변경하기 위해 개발되었습니다.

ISAM은 나중에 OS/360에 대한 CP-67 지원에 어려움을 겪었습니다.이는 CP-67이 I/O 작업을 시작할 때 채널 프로그램 전체를 고정 메모리에 복사하고 가상 주소를 실제 [8]주소로 변환했기 때문입니다.

ISAM 스타일의 실장

「 」를 참조해 주세요.

레퍼런스

  1. ^ Chin, Y.H. (1975). "Analysis of VSAM's free-space behavior". VLDB '75: Proceedings of the 1st International Conference on Very Large Data Bases: 514–515. doi:10.1145/1282480.1282529. S2CID 11082747.
  2. ^ Bogue, Robert L. (2004-02-13). "Explore the differences between ISAM and relational databases". Retrieved 17 October 2014.
  3. ^ Larson, Per-Åke (1981). "Analysis of index-sequential files with overflow chaining". ACM Transactions on Database Systems. 6 (4).
  4. ^ Ramakrishnan Raghu, Gerhke Johannes - 데이터베이스 관리 시스템, McGraw-Hill Higher Education (2000), 제2판 (en) 페이지 252
  5. ^ a b c "FairCom ISAM API for C - Developers Guide".{{cite web}}: CS1 maint :url-status (링크)
  6. ^ "C-ISAM Programmers Manual" (PDF).{{cite web}}: CS1 maint :url-status (링크)
  7. ^ IBM Corporation (1973). DOS/VS LIOCS Volume 3: DAM and ISAM Logic. pp. 63–72. Retrieved Dec 30, 2018.
  8. ^ IBM Corporation (1972). IBM Virtual Machine Facility /370: Planning Guide (PDF). p. 45. Retrieved Jan 8, 2018.
  9. ^ Graf, Peter. "pblIsamFile Implementation". mission-base.com. Retrieved Sep 8, 2017.