원문

[개발자를 위한 인덱스 생성과 SQL 작성 노하우 이병국 글봄크리에이티브 - 교보문고 (kyobobook.co.kr)](http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788996560081)

indexBook

물리적분류에서 논리적분류

분류는 물리적 분류와 논리적 분류로 나눌 수 있다. 물리적 분류는 시각적인 분류이기도 하다. 세상이 복잡해지면서 논리적 분류가 나타났다.

물리적 분류

책장을 통해 책을 분류한다면 다음과 같이 분류할 수 있을 것이다. 이처럼 책을 직접 분류하는 것을 물리적 분류라고 한다. 원하는 책을 빠르게 찾기 위해서는 평소에 늘 분류하고 유지하는 노력이 필요하다.

index01

물리적 분류의 다른예를 들어보자. 라디오 방송국에서 음반을 분류한다고 가정한다. 그렇다면 어떤 기준으로 분류를 해야할까?

index02

  • 가수를 기준으로 여러 연도별로 분류한다.
  • 가요 팝송 등 장르 기준으로 가수별로 분류한다.
  • 연도를 기준으로 해당 시기의 가수별로 분류한다.
  • etc

등등 많은 물리적 분류 방법이 존재하지만 이러한 분류를 동시에 충족시킬 수 있는 물리적 분류는 존재하지 않는다. 동일한 시공간에서는 오로지 하나의 물리적 분류만 가능하다. 하지만 실사용에는 저러한 다양한 분류가 필요된다.

분류대상과 분류정보의 분리

라디오 방송국 음반 분류는 분류할 수 있는 방법이 많다. 분류 대상(음반)과 분류 정보(색인)의 관계는 1:N 관계이다. 음반을 나라별, 가수별, 연도별, 장르별, 인기순위별 등 여러 분류로 나눌 수 있어야한다. 이를 나눌 수 있는 유일한 방법은 분류 대상(음반)과 분류 정보(색인)을 분리하는 것이다. 이는 논리적 분류로서 디지털 세계에서 대량의 복잡한 자료를 다양하게 분류하는데 매우 적합하다.

다음 그림은 음반 자료실에 분류 대상(음반)이 실제로 보관된 물리적인 장소이고, 여기에 음반이 순차적으로 보관돼 있다. 주변에 있는 분류 정보(색인)에는 각각의 분류 특성에 맞는 정보가 들어 있다. 물론 음반의 물리적 위치 정보도 가지고 있다. 이와 같이 분류 대상(음반)과 분류 정보(색인)를 분리함으로써 다양한 분류가 동시에 가능하게 됐다.

index03

논리적 분류는 컴퓨터 대중화와 함꼐 널리 이용되고 있다. DB에서도 논리적 분류가 활용되고 있다.

물리적 분류와 논리적 분류

물리적 분류는 동일한 시공간에서 유일하게 한 가지 분류만 가능하다고 했고 논리적 분류는 컴퓨터 사용과 더불어 정보화 시대에 적합한 분류 방식이다.

인덱스는 논리적 분류

DB에서 인덱스는 논리적 분류의 특성을 가지고 있다. DB에서 인덱스는 매우 중요한 요소이며 의미 또한 깊다. 개발자에게 인덱스는 빈번하게 사용하는 DB의 핵심요소이기 때문이다.

앞서 말한에 빗대어 말하면 분류 대상은 테이블이고 분류 정보는 인덱스와 동일한 의미이다. 인덱스는 테이블 종속적이다. 테이블을 삭제하면 인덱스는 자동으로 함께 삭제된다.

테이블에는 분류 대상이 있고, 인덱스에는 분류 정보가 있다. 테이블은 분류 정보를 가지고 있지 않다. 이처럼 분리가 되어있으면 하나의 테이블에 대해 다양한 분류와 정보가 가능하다.