본문 바로가기

데이터 Story/모델링 매뉴얼

소속 엔터티의 엔터티 명

실체 자체를 관리하는 엔터티가 아닌, 실체의 소속 데이터를 관리하는 엔터티의 이름은 대상 실체 엔터티 명+소속 실체 엔터티 명형식으로 정한다. 엔터티 명 앞에는 어디에 소속됐는지를 의미하는 대상 엔터티를 사용하고, 뒤에는 소속된 엔터티를 사용해서 정한다.

 

위와 같이 소속을 나타내는 데이터는 실체 엔터티가 아니기 때문에 실체접미어는 붙이지 않는다.

 

[그림 도서관직원] 도서관직원 엔터티는 도서관에 소속된 직원을 관리하는 엔터티다.

 

[그림 도서관직원]

 

도서관직원 엔터티에서 관리하려고 하는 데이터는 직원 데이터인데, 도서관에 소속된 직원이다. 따라서 소속된 실체는 직원이고 어디에 소속됐는지를 의미하는 대상은 도서관이므로 엔터티 명은 도서관직원으로 정한다.

 

[그림 예산부서사원] 예산부서사원 엔터티는 예산 부서에 속한 사원을 관리하는 엔터티다.

 

[그림 예산부서사원]

 

예산부서사원 엔터티는 사원을 의미하지만 사원 자체 데이터를 관리하는 엔터티는 아니다. 사원 데이터는 별도로 존재해야 하며, 사원이 어디에 소속됐는지를 나타낸다.

 

이렇게 실체의 소속 개념을 관리하는 엔터티는 실체 엔터티가 아니라 관계 엔터티나 내역 엔터티에 가깝다. 엔터티 명 역시 그에 맞게 정해야 한다. 사원을 관리한다고 예산부서사원실체 등으로 정하면 안 된다. 예산을 관리하는 부서에 소속된 사원을 의미하는 엔터티 명으로 예산부서사원, 예산부서소속사원, 예산부서관계사원 등이 적절하다.

 

실체의 역할을 관리하는 엔터티와 마찬가지로 실체의 소속을 관리하는 엔터티 명 또한 실체 엔터티로 정하지 않아야 한다. 소속 데이터를 실체 엔터티로 정하면 모델이 전반적으로 혼란스러워진다.