Table Type은 Internal Table의 개별 Entry에 접근하는 방법을 결정하며, 3가지 종류로 구분된다.
2-2-1. Standard Tables
순차적인 인덱스를 가지는 테이블이며, Tree 구조를 이루고 있다. Index를 이용하여 테이블 Entry를 찾을 경우 가장 바람직한 테이블 구조이다. Read, MODIFY 그리고 DELETE entries 구문을 사용할 때도 Index를 사용하게 된다. 물론 테이블의 값을 찾을 때 인덱스를 이용한다. Standard Table의 키는 항상 Non-unique로 선언하여야 한다.(WITH UNIQUE 구문 사용이 불가능하다.)
Index를 이용하여 검색하기 때문에 테이블의 라인 수에 비례적으로 탐색속도가 유지된다.
2-2-2. Sorted Tables
Standard Table과 Sorted Table은 Index 테이블이다. 그 중 Sorted Tabled은 Key값으로 항상 정렬된 테이블 타입이다. 즉, 프로그래머가 원하는 키 값으로 항상 Sort된 결과로 Internal Table에 저장해야 하는 경우에 사용한다. Standard Table 과 동일하게 Index를 가지고 있으며, Index 또는 Key 로 해당 Row를 찾아 갈 수 있다. 내부적으로 BINARY SEARCH를 이용하기 때문에 Table Entry의 수와 탐색속도는 정의 관계를 가진다. Sorted Table로 선언할 때는 Unique / Non-unique를 반드시 명시하여야 한다. Sorted Table은 이미 Sort 되어 있기 때문에 구문에서 Sort를 사용하면 오류가 발생한다.
2-2-3. Hashed Tables.
Hashed Table은 순차적인 Index를 가지고 있지 않다. 오직 해싱 값으로 계산된 키 값으로만 탐색이 가능하다. 응답 속도는 Table의 Entry수와 상관없이 항상 동일하다.해싱 값은 hash 알고리즘으로 계산된 것으로 메모리에 저장된 주소 값으로 데이터를 바로 읽을 수 있도록 도와준다. Hashed Table은 반드시 Unique하게 선언하여야 한다.
정리한 내용이 있어서 공유합니다.
-------------------------------------