소걔

책의 마지막에 있는 "찾아보기" 가 인덱스에 비유된다면 책의 내용은 데이터 파일에 해당한다고 볼수 있다. 그리고 책의 "찾아보기"와 DBMS 의 인덱스의 공통점 가운데 중요한 것이 정렬이다. sortedList 의 장점과 단점을 통해 인덱스의 장단점을 살펴보자. 데이터가 저장될 때마다 항상 값을 정렬해야 하므로 저장하는 과정이 복잡하고 느리지만, 이미 정렬되어 있어서 아주 빨리 원하는 값을 찾아올 수 있다. DBMS 도 인덱스가 많은 테이블은 당연히 INSERT나 UPDATE 그리고 DELETE 문장의 처리가 느려진다. 하지만 이미 정렬된 "찾아보기"용 인덱스를 가지고 있기때문에 SELECE 문장은 매우 빠르게 처리할 수 있다. 인덱스를 역할별로 구분해본다면 프라이버리 키와 보조키로 구분해 볼 수 있다.

프라이머리 키는 이미 잘 알고 있는 것처럼 그 레코드를 대표하는 칼럼의 값으로 만들어진 인덱스를 의미한다. 이 칼럼은 테이블에서 해당 레코드를 식별할 수 있는 기준값이 되기 때문에 우리는 이를 식별자라고도 부른다. 프라이머리 키는 NULL값을 허용하지 않는 것이 특징이다. 프라이머리키를 제외한 나머지 모든 인덱스는 보조 인덱스로 분류한다. 유니크 인덱스는 프라이머리 키와 성격이 비슷하고 프라이머리 키를 대체해서 사용할 수도 있다고 해서 대체키 라고도 하는데 별도로 분류하기도 하고 그냥 보조 인덱스로 분류하기도 한다.