본문 바로가기

데이터 Story/모델링 이론

자립 엔터티 & 종속 엔터티

자립(Independent Entity 또는Strong Entity, Dominant Entity) 엔터티는 다른 엔터티에 의존적이지 않고 스스로 존재하는 엔터티라고 했습니다. 어떤 엔터티에도 존재 종속(Existence Dependency)되지 않는 엔터티입니다.

 

종속(Dependent Entity 또는Weak Entity, Subordinate Entity) 엔터티는 상위(부모) 엔터티가 존재하지 않으면 존재할 수 없는 엔터티입니다.

 

자립 엔터티와 종속 엔터티는 비즈니스에서 관리하는 데이터의 범위에 따라 자립 엔터티가 종속 엔터티가 될 수도 있고 종속 엔터티가 자립 엔터티가 될 수도 있습니다.

 

특정 대학의 교수 엔터티는 자립 엔터티입니다. 교수 엔터티 상위에 반드시 존재해야 할 엔터티가 존재하지 않습니다. 하지만 전국 대학의 교수를 관리한다면 교수 엔터티는 종속 엔터티가 될 수 있습니다.

 

대학에 소속된 교수를 관리하니 대학이 상위 엔터티에 존재해야 하고요. 주민번호가123456인 홍길동교수는 여러 대학에서 강의할 수 있으므로 주 식별자가 ‘대학번호+주민번호’와 같이 될 수 있습니다.

 

이 경우에도 실제 업무에 따라 주 식별자가 단순히 주민번호가 될 수도 있지만 종속 엔터티는 주로 상위 엔터티의 주 식별자를 식별자로 상속합니다. 반면에 자립 엔터티일 경우에는 상위 엔터티의 주 식별자를 식별자로 상속하면 잘못된 것입니다.

 

[그림1] 예제에서 고객 엔터티는 직업 엔터티의 종속 엔터티가 아닙니다. 직업 엔터티가 부모 엔터티인 것처럼 보이지만 직업 엔터티가 없어도 고객 엔터티는 존재할 수 있으므로 고객 엔터티는 종속 엔터티가 아니라 자립 엔터티입니다.


 

[그림1]

 

위와 같은 관계는 흔히 얘기하는 부모/자식 관계가 아니라 참조 관계(Referential Relationships)라고 합니다. 그래서 직업 엔터티의 주 식별자인 직업코드는 고객 엔터티에 주 식별자로 상속하지 않고 참조 데이터로서 일반 속성으로 관리합니다.

 

이렇게 직업 엔터티와 같이 참조되는 엔터티를 부모 엔터티라고 표현하지 않고 상위 엔터티라고 표현합니다. 존재 종속 관계가 있어야 부모 엔터티라고 표현하며 일반적으로 상위(부모) 엔터티라고 표현합니다.

 

단순히 참조 정보를 관리하는 관계와 부모 관계를 관리하는 관계는 구분해야 합니다. 이를 분명하게 구분하면 엔터티 정의와 주 식별자, 관계 정의, 식별자 상속 등과 같은 복잡한 문제가 풀리기도 합니다.

 

종속 엔터티는 부모 엔터티와 종속 관계가 있는 엔터티입니다. 이때 부모 엔터티의 인스턴스가 삭제되면 종속 엔터티의 인스턴트도 삭제해야 합니다. 존재 종속(Existence Dependency)됐기 때문에 생사를 같이 하게 됩니다.

 

많은 CASE 툴에서 자립 엔터티와 종속 엔터티를 달리 표현할 만큼 엔터티의 성격을 가름하는 요소 중의 하나이므로 엔터티를 정의할 때 주의해서 살펴야 합니다.