Computer >> 컴퓨터 >  >> 프로그래밍 >> SQL

RDBMS 대리 키(Surrogate Key) 완벽 이해하기

데이터베이스를 설계하다 보면 대리 키(Surrogate Key)라는 개념을 자주 접하게 됩니다. 대리 키는 데이터베이스 내에서 각 레코드를 고유하게 식별하기 위한 목적으로만 존재하는 키입니다. 자동 증가 값(Auto Increment), GUID(Globally Unique Identifier) 등이 대표적인 예입니다.

대리 키의 특징

대리 키는 비즈니스 로직과는 아무런 관련이 없으며, 실제 의미를 가지지 않습니다. 오직 해당 레코드가 '존재한다'는 사실을 나타내는 역할만 수행합니다. 즉, 대리 키는 데이터 분석과 관리를 위해 순수하게 기술적인 목적으로 사용되는 식별자라고 할 수 있습니다.

이러한 특성 덕분에 대리 키는 다음과 같은 장점을 가집니다.

  • 업무 규칙 변경에 영향받지 않고 안정적으로 유지됩니다.
  • 기본 키로 사용되기에 적합하며 조인 성능이 우수합니다.
  • 자연 키(Natural Key)와 달리 값이 변하지 않아 참조 무결성 관리가 용이합니다.

예제

다음은 상품 가격 정보를 저장하는 <ProductPrice> 테이블의 예시입니다.

KeyProductIDPrice
505_921987200
698_561256170
304_571898250
458_661666110

위 테이블에서 Key 컬럼이 바로 대리 키입니다. 각 행을 고유하게 구분하는 역할만 하며, 그 자체로는 어떤 비즈니스적 의미도 담고 있지 않습니다.

대리 키의 다른 예시

대리 키로 활용될 수 있는 요소들은 다양합니다.

  • 카운터(Counter): 일련번호처럼 순차적으로 증가하는 값도 대리 키로 사용할 수 있습니다.
  • 시스템 날짜/타임스탬프(System date/time stamp): 레코드 생성 시점의 시간 값을 활용하는 방식입니다.
  • 랜덤 영숫자 문자열(Random alphanumeric string): UUID처럼 무작위로 생성된 문자열도 널리 사용됩니다.

마무리

대리 키는 단순해 보이지만 데이터베이스 설계에서 매우 중요한 역할을 합니다. 비즈니스 의미 없이 오직 고유 식별에만 집중함으로써, 데이터 모델의 유연성과 안정성을 확보할 수 있습니다. 실무에서는 자동 증가 정수나 GUID를 대리 키로 사용하는 경우가 가장 많으니, 프로젝트 특성에 맞게 적절히 선택하는 것이 좋습니다.