가공 엔터티는 원천(Raw) 데이터가 아닌 데이터를 관리하는 엔터티입니다. 원천 데이터인 실체 엔터티와 행위 엔터티의 데이터를 가공한 데이터를 관리하는 엔터티로 주로 집계, 요약, 임시 데이터를 관리하는 엔터티가 가공 엔터티입니다.
가공 엔터티는 다양한 방법으로 사용됩니다. 업무에서 많이 쓰이는 것은 DW 시스템에서는 많은 부분을 차지하는 집계 데이터를 관리하는 엔터티입니다.
집계 엔터티를 사용하는 이유는 조회 시간을 줄이기 위해서입니다. 만약 바로 원천 데이터를 집계해도 크게 불편하지 않다면 굳이 집계 엔터티를 사용할 이유는 없습니다. 이 판단도 매우 중요합니다.
그리고 업무 처리 대상을 한정시키기 위해 대상 데이터만 별도로 보관하는 작업용 엔터티가 많이 존재합니다. 처리 예정 내역을 관리하거나 오류를 대비해 대상을 별도로 관리하곤 하는데요. 일단 이런 작업용 엔터티를 없앨 수 없는지를 먼저 고려하는 것이 중요할 거 같습니다. 작업용 엔터티가 없다고 생각하고 처리할 수 있는지를 고려해보면 많은 엔터티가 필요치 않을 것입니다.
어떤 데이터의 부분 집합을 별도로 보관하는 엔터티도 많고요. 조회 성능을 고려해서 데이터를 분산시키기 위해 엔터티를 복사해서 사용하기도 합니다. 성능 관련된 문제는 비정규형으로서 선별적으로 채택해야 합니다.
가공 엔터티는 보통 디멘젼(Dimension) 역할을 하는 엔터티 이외의 엔터티와는 관계가 발생하지 않습니다. 집계 엔터티가 행위 엔터티와 관계가 존재하거나 다른 집계 엔터티와 관계가 존재하면 잘못된 관계가 아닌지 주의해야 합니다.
그리고 가공 엔터티의 주 식별자는 집계를 하려는 기준이기 때문에 복잡할 수도 있습니다. 복잡한 게 문제가 되지 않고요.
가공 엔터티는 통합할 만한 충분한 가치가 있다고 생각됩니다. 실체나 행위 엔터티는 통합하려는 경향이 강해서 많이 통합하는데요. 가공 엔터티는 주로 시간적인 이유로 통합을 고려하지 않습니다.
특히 집계 성격의 데이터는 시스템 전체에서 많은 부분을 차지하기 때문에 통합을 적극적으로 고려하는 것이 좋습니다. 집계 엔터티의 통합이 중요한 가장 커다란 이유는 데이터의 중복 발생으로 말미암아 데이터 정합성이 문제가 되기 때문입니다.
현실적으로 원천 엔터티조차 분석하는 시간이 충분하지 않아 가공 엔터티에 신경 쓸 여력이 없는 것이 사실이지만, 원천 엔터티가 깔끔해도 가공 엔터티가 무분별하면 시스템 전반적으로 문제가 발생하기 때문에 가공 엔터티도 신경써서 분석해야 합니다.
'데이터 Story > 모델링 이론' 카테고리의 다른 글
엔터티 도출 원칙 1 (0) | 2011.02.16 |
---|---|
기준 엔터티란? (0) | 2011.02.16 |
행위 엔터티란? (0) | 2011.02.16 |
실체 엔터티란? (0) | 2011.02.16 |
엔터티 분류(실체/행위/가공/기준) (0) | 2011.02.16 |