본문 바로가기

데이터 Story/모델링 이론

엔터티를 정의할 때 도움이 되는 분류법

엔터티를 구분하는 방법은 여러 가지가 있습니다.
 
뭔가를 분류하는 것은 그것을 이해하는 데 보통 도움을 줍니다.
저는 다음과 같이 엔터티를 분류합니다.
-
 
- 만질 수 있는 것 & 만질 수 없고 개념으로 존재하는 것
-- 자립 엔터티 & 종속 엔터티
-- 실체 엔터티 & 행위 엔터티 & 가공 엔터티 & 기준 엔터티
 
다각도로 분류해 보는 것이 좋기 때문에 분류법도 다양합니다.
 
엔터티를 정의할 가장 우선적으로 판단하는 것은 보이는 물체냐라는 것입니다.
사람, 사물과 같이 실제로 존재하는 물건인지, 만져서 느낄 수 있는지부터 따져보게 됩니다.
 
이런 성격의 엔터티는 계약서나 카드, 통장 등을 포함시킨다고 해도 실제로 그다지 많지는 않습니다.
그보다 개념으로 존재하는 것(Conceptual)을 표현한 데이터가 훨씬 많습니다.
행위는 다소 애매하지만 물체나 실상은 아니며 개념과 비슷할 거 같습니다.
 
어쨌든 만질 수 있는지부터 따져보면 약간 도움이 됩니다.
 
또 다른 측면에서의 분류에는 자립 엔터티와 종속 엔터티가 있습니다.
자립 엔터티(Independent Entity)는 다른 엔터티에 의존적이지 않고 스스로 존재하는 엔터티입니다.
종속 엔터티(Dependent Entity)는 상위(부모) 엔터티가 존재하지 않으면 존재할 수 없는 엔터티입니다.
 
존재 종속(Existence Dependency)도 중요한 개념입니다.
엔터티 B가 존재하려면 엔터티 A가 반드시 존재해야 하면 B는 A에 존재 종속(Existence Dependency)됐다고 합니다.
이때 엔터티 B는 분명 종속 엔터티입니다. 반면에 엔터티 A는 자립 엔터티일 수도 있고 종속 엔터티일 수도 있습니다.
 
자립 엔터티와 종속 엔터티에 대한 자세한 설명은 다음에 하겠는데요.
자립 엔터티인지, 다른 어떤 엔터티엔가 존재 종속된 종속 엔터티인지를 판별하는 것은 대단히 중요합니다.
 
‘만질 수 있냐 없냐’로 간단히 성격을 판단하고 ‘데이터가 자립했는지 아닌지’를 심도 있게 판단해야 합니다.
여기까지 분석되면 엔터티 정의하기가 수월해집니다.
 
마지막 분류인 실체, 행위, 가공, 기준 엔터티로 구분하는 것은 일반적으로 많이 알려진 분류법입니다.
핵심, 행위, 목적 등으로 분류할 수도 있고요.
 
엔터티가 어디에 속하는지를 고민해보는 것은 엔터티를 정의하는 데 도움이 됩니다.
엔터티를 정의할 때 위와 같은 다양한 분류법으로 분석을 해보는 것이 좋습니다.
어떤 분류에 속한다는 것을 선언하는 것이 중요한 게 아니라 단지 어떤 데이터인지를 잘 분석하기 위해서요.
 
흔히 데이터 구조가 중요하다는 말을 많이 합니다.
유연해서 확장성도 좋은 구조, 견고해서 흔들리지 않는 구조를 만들어야 하는데요.
 
이런 구조가 되려면 엔터티 정의가 제대로 이루어져야 합니다.
엔터티를 구성한 데이터의 성격이 바뀌지 않는 한 엔터티 정의가 바뀌면 안 됩니다.
 
종속 엔터티인데 자립 엔터티로 잘못 정의하거나 실체 엔터티인데 행위 엔터티로 잘못 정의하면 데이터 구조가 튼튼할 수 없습니다.
데이터의 성격만을 판단해 엔터티를 정확히 정의하는 것이 모델링의 시발점입니다.