본문 바로가기

데이터 Story/모델링 매뉴얼

엔터티에 인스턴스를 생성하는 기준이 되는 속성을 주 식별자로 설계

 

엔터티에 인스턴스를 생성하는 기준이 되는 속성을 주 식별자로 설계하는 것은 주 식별자를 선택하는 중요한 기준 중의 하나다.

 

인스턴스를 생성하는 기준은 업무 식별자를 의미하기도 한다. 어떤 속성 값이 바뀔 때 새로운 인스턴스를 추가해야 하는지를 나타낸다. 어떤 값이 바뀔 때 인스턴스를 하나 추가하는지를 따져 해당 속성을 주 식별자로 선택한다.

 

만약 부서를 관리하는 사원을 별도의 엔터티에서 관리할 때, 부서번호가 다를 때마다 인스턴스가 입력된다면 아래 엔터티와 같이 주 식별자를 선택한다.


[그림1]

 

부서관리사원 엔터티에 인스턴스를 추가해야 할 때는 부서번호 값이 추가될 때다. 만약 ‘100’번 부서번호가 존재한다면 부서관리사원 엔터티에 부서번호가 ‘100’번인 인스턴스를 추가하면 안 된다. 이는 엔터티 간의 관계비를 의미하기도 한다. 특정 부서에는 관리 사원이 한 명만 필요하다는 것을 의미한다.

 

만약 부서관리사원 엔터티에 인스턴스를 추가하는 기준이 부서번호와 사원번호라면, 즉 부서번호 값이 같더라도 사원번호 값이 다르면 인스턴스를 추가할 수 있다면 주 식별자는 아래의 부서관리사원 엔터티와 같다.

 

[그림2]

 

부서번호와 사원번호가 모두 달라야 인스턴스를 생성할 수 있어 주 식별자를 부서번호+사원번호 속성으로 설계한다.

 

인스턴스를 추가하는 기준은 업무 식별자를 의미한다. 엔터티 종류와 무관하게 주 식별자를 정할 때 따져야 하는 기초적이고 중요한 방법이다. 업무 식별자를 고려하고 변경이력 데이터까지 고려해서 주 식별자를 결정하게 된다.

 

업무적으로 인스턴스의 유일성을 보장하는 속성을 주 식별자로 설계하는 것은 모든 엔터티의 주 식별자 설계 원칙이다.