이 책을 읽고 작성한 글입니다.
인덱스는 한국어로 색인이라는 의미를 가지고 있습니다. 가끔 어떤 책들은 맨 뒷 페이지에 중요한 용어들을 모아 놓은 부분을 볼 수 있습니다. 이런 부분을 색인이라고 하는데 데이터베이스의 인덱스도 이와 비슷하게 데이터 속에서 중요한 부분을 따로 정리하여 쿼리 속도를 향상 시킵니다.
신문기사 수집 과정의 비유를 통해 인덱스에 대해 더 잘 이해해보도록 하겠습니다.
흥미로운 신문 기사를 찾아서 쪽마다 번호가 있는 공책에 기사를 하나씩 모으는 취미를 가지고 있다고 생각해봅시다. 가끔씩은 이전에 보았던 기사를 찾기도 하는데, 이전에 모아 놓았던 기사를 찾기 위해서는 모든 페이지를 일일이 살펴보아야 했습니다. 처음에는 시간이 얼마 안걸려서 별로 문제가 되지 않았지만, 시간이 지나고 기사가 쌓여가면서 원하는 기사를 찾는데 많은 시간이 소요되었습니다.
그래서 더 좋은 방법을 찾았습니다. 바로 색인을 만드는 것입니다.
우선 간단하게 제목과 쪽수를 적은 색인을 만들어보았습니다.
위와 같이 제목을 가나다 순으로 배치한 색인을 만들어보았습니다. 제목을 알고있거나 첫 단어라도 알고있다면 이전보다 더 빠르게 원하는 기사를 찾을 수 있게 되었습니다. 이전에는 제목을 알고 있어도 페이지를 넘기며 모든 정보를 짧게라도 살펴봐야했지만 이제 색인 안에서 해결할 수 있습니다.
제목을 알고 있는 기사를 찾는다면 문제가 없지만, 일반적인 경우 제목보다는 어떤 종류의 기사인지만 알고 싶은 경우가 많았습니다. 예를 들어 경제에 대한 기사를 찾고자 할 때는 제목만으로 기사의 종류를 구분하기 어려웠기 때문에 다시 모든 기사를 하나하나 살펴서 찾아야했습니다. 그래서 기사의 분류에 따라 색인을 하나 더 만들어봤습니다.
이런 방식으로 찾기 원하는 정보에 맞춰 색인을 만들면 더 빠르게 원하는 기사를 찾아 볼 수 있습니다.
근데 만약 과학 분야의 기사 중에서 "스마트폰" 이라는 단어로 시작하는 기사를 더 빨리 찾고 싶다면 어떻게 해야할까요? 위에서 만든 2가지 색인을 모두 가지고 있다해도 결국 하나의 색인만을 사용해야합니다.
1. 제목을 가나다 순으로 정렬한 색인에서 스마트폰으로 시작하는 기사를 고른 뒤, 하나하나 과학 분류에 속하는지 확인한다.
2. 분류 색인에 과학 분류에 속한 기사를 하나하나 페이지를 펼쳐서 제목을 확인한다.
만약 두 가지 색인을 하나로 합칠 수 있다면 어떨까요?
분류-제목 색인을 만들어봤습니다. 이전에 만든 색인이 단순 색인 이었다면 이번에는 두가지 항목을 이용한 복합 색인을 만들었습니다.
그리고 복합 색인을 만들면서 2가지 사실을 알게되었습니다.
1. 분류-제목 색인이 있다면 더 이상 분류만을 기준으로 한 색인이 필요가 없었다.
2. 분류-제목 색인과 제목-분류 색인은 다르다.
이처럼 복합 색인을 만들 때에는 어떤 정보를 기준으로 먼저 묶을지가 중요합니다. 특히 먼저 묶는 정보가 더 큰 범위를 포괄하고 있을 경우 유용합니다.
하지만
색인을 만들고 새로운 기사를 추가할 때마다 이전에는 하지 않았던 작업을 추가적으로 해야했습니다.
바로 색인에 방금 추가한 기사의 정보를 업데이트 하는 작업입니다.
색인을 업데이트 하는 작업이 귀찮았지만 기사의 내용을 찾을 때가 기사를 추가할 때보다 더 빈번했기 때문에 기꺼이 매번 색인을 업데이트 했습니다.
위에서의 비유는 데이터 베이스 인덱스의 많은 특징을 내포합니다.
신문 기사를 테이블의 로우, 생성한 색인을 인덱스에 대입해 생각하면 다음과 같은 인덱스의 기본 특징을 추론할 수 있습니다.
신문기사 수집의 비유를 통해 인덱스의 개념에 대해 알아보았습니다. 인덱스는 데이터베이스를 공부할 때 상당히 중요한 개념이므로 제대로 이해하고 쓰는게 좋습니다!
제가 잘못이해하고 있거나 잘못 작성한 부분이 있다면 지적, 비판, 피드백 뭐든 해주시면 감사하겠습니다!