본문 바로가기

데이터 Story/모델링 이론

엔터티 분류(실체/행위/가공/기준)

엔터티를 분류하는 목적은 크게 두 가지가 있습니다. 엔터티의 성격을 파악하는 데 도움이 되기 때문이고요. 모델링 작업 순서를 정하는 데 도움이 되기 때문입니다. 상향식 방법으로 모델링을 수행할 때는 단계적으로 접근하기 위해 엔터티를 분류하는 게 의미가 있습니다.

 

저는 모델링을 수행하면서 전체 엔터티를 체계적으로 분류했던 적은 없었던 거 같습니다. 업무에서 핵심적으로 사용하는 소수의 엔터티만 선정합니다. 워낙 기간에 쫒겨 일을 해서 그런 것도 같지만 사실 분류 자체를 중요하게 생각하지 않습니다.

 

엔터티를 분류하는 것 자체가 중요한 것은 아닙니다. 그건 부가적인 것일 뿐 본질적인 것이 아니기 때문입니다. 진짜 본질인 엔터티 정의가 정확하면 잘못 분류하는 것은 문제되지 않습니다.

 

저는 엔터티를 분류할 때의 기준을 데이터의 성격으로 봅니다. 엔터티 용도나 중요도, 엔터티 생성 순서 등의 기준으로 분류할 수도 있지만요. 하지만 기준을 어떤 것으로 삼든 기준을 일관되게 적용해 정확하게 분류하는 것은 사실상 불가능합니다. 제 책에 이 내용을 쓰면서 가장 단순할 거 같은 남녀의 구분을 생각해 보았는데요. 쉽지 않았습니다.

 

무엇인가를 분류할 때 주의해야 할 게 어떤 범주에도 들어가지 않는 ‘기타’라는 부분이 있을 수 있다는 것입니다. ‘기타’ 집합이 소수라고 소홀히 하면 안 되며 관리 대상에 포함시켜야 합니다.

 

제가 모델링을 하면서 나름대로 나누는 엔터티 분류법은 다음과 같습니다.

 

-  실체 엔터티: 실제 물체(보이는 실상)에 대한 본질적인 데이터를 관리하는 엔터티

-  행위 엔터티: 행위나 활동에 의해서 발생된 원천 데이터를 관리하는 엔터티

-  가공 엔터티: 원천 데이터를 추출, 집계한 데이터를 관리하는 엔터티

-  기준 엔터티: 실체나 행위 데이터의 기준이 되는 데이터를 관리하는 엔터티

 

저는 엔터티를 정의할 때 머릿속에서 위의 분류 중에 어떤 엔터티라는 것을 떠올립니다. 실체 엔터티 같은데 분석해보니 확실히 실체 엔터티로 볼 수 있다면 그 엔터티는 정의가 끝났다고 봅니다.

 

하지만 어떤 분류인지 얼핏 떠오르지 않는다면, 만약 끝까지 명확해지지 않는다면 그 엔터티는 정의를 하지 못한 것이라 계속 고민하게 됩니다. 위의 분류 중에서 하나에 끼워맞추기 위해 정의를 스스로 선언하기도 하고요. 결국 어디에도 들어가지 못하는 엔터티도 있습니다.

 

제가 남들보다 비교적 자신있게 생각하는 부분이 엔터티 정의인데요(엔터티 설명 적는 거 아닙니다). 엔터티를 정의할 때 많은 고민을 합니다. 바둑 두면서 수읽기 하는 거와 비슷하게요. 제 경험으로는 위의4가지 분류가 가장 도움이 돼서 감히 책에도 썼습니다. ㅎㅎ

 

그밖에 다른 분류법도 있습니다(오픈메이드컨설팅 금은섭수석 제공). 나름의 기준이 있기 때문에 좋은 분류라고 생각하는데요. 각자 가장 쉽게 이해되는 분류법을 사용하면 좋을 거 같습니다. 잘 활용하는 게 중요합니다. 특히 상향식 방법론을 사용할 때 작업 순서를 정하는 데 필요하니까요. 저와 같이 엔터티를 정의하는 데 사용하면 좋습니다.

 

- 핵심/행위/목적

- Key/Main/Action

- 기본/중심/행위

- 기준/중심/행위/가공



'데이터 Story > 모델링 이론' 카테고리의 다른 글

행위 엔터티란?  (0) 2011.02.16
실체 엔터티란?  (0) 2011.02.16
종속 엔터티의 식별(Identifying) 관계  (5) 2011.02.16
종속 엔터티의 종류  (2) 2011.02.16
자립 엔터티 & 종속 엔터티  (2) 2011.02.16