본문 바로가기

데이터 Story/모델링 이론

식별자 종류 – 주 식별자

주 식별자(Primary Identifier)는 엔터티에 하나만 존재하는 대표 식별자입니다. 업무 식별자나 후보 식별자와 달리 물리적인 개념이 강해 PK(Primary Key)라고 생각해도 될 거 같습니다.

 

주 식별자 역할은 두 가지 관점으로 생각할 수 있습니다. 하나는 자신의 엔터티를 바라보는 관점이고요. 다른 하나는 다른 엔터티에서 바라보는 관점입니다.

 

전자는 자신의 엔터티 내에서 인스턴스를 식별하는 PK 역할이고요. 후자는 다른 엔터티에서 바라볼 때 그 엔터티와의 관계를 식별하는 FK(Foreign Key) 역할입니다.

 

주 식별자는 물리적으로 인스턴스를 대표하는 역할을 하기 때문에 인스턴스를 조회할 때 사용하고요. 또한 다른 엔터티와 조인(Join)할 때도 주 식별자를 사용합니다.

 

주 식별자를 선정하는 방법은 두 가지가 있습니다. 하나 또는 여러 개의 후보 식별자 중에서 대표로 지정할 수가 있고요. 적당한 후보가 없다면 인조 식별자를 만들어 주 식별자로 사용할 수도 있습니다. 주 식별자를 선정하는 방법은 이후에 자세히 설명하겠습니다.

 

주 식별자는 몇 가지 특성이 있습니다.

 

가장 기본적인 특성은 엔터티에 주 식별자가 반드시 존재해야 한다는 것입니다. 더 정확히 표현하면 엔터티에는 물리적인 주 키(Primary Key)가 반드시 존재해야 합니다. 간혹 PK가 없는 엔터티를 볼 수 있는데요. 이는 엔터티 무결성을 지키지 않은, 기본이 지켜지지 않은 모델입니다.

 

그리고 주 식별자는 하나만 존재해야 합니다. 이것이 또한 물리적으로 PK가 존재해야 하는 이유이기도 합니다. 하나만을 지정해야 다른 엔터티와의 조인(Join)이 가능합니다.

 

또한 주 식별자 속성은 당연히 널(Null) 값을 허용하지 않습니다.

 

주 식별자는 정규화의 기준이 되는 속성입니다. 정규화라는 행위가 먼저이고 그 결과에 따라 주 식별자가 정해지는지, 아니면 주 식별자가 정해지고 정규화가 진행되는지 애매한 점은 있지만, 최소한 정규형이 맞는지를 검증할 때는 주 식별자가 명확한 기준이 됩니다.

 

주 식별자(PK)는 외래 식별자(FK)와 함께 많이 알려진 식별자입니다. 실제로 많이 사용하는 식별자라 개념을 이해하는 것은 어렵지 않습니다. 어떤 속성을 주 식별자로 선택할지가 어려운 부분인데요. 주 식별자 선정 원칙은 별도로 설명하겠습니다.