본문 바로가기

generalization

서브타입은 어떻게 도출하는가? 서브타입을 도출하는 방법은 크게 두 가지입니다. 두 개 이상의 유사한 엔터티에서 공통 속성을 분류하는 방법과, 복잡한 엔터티에서 유사한 속성끼리 분류하는 방법이 있습니다. 전자는 엔터티를 통합(Generalization)하는 행위이고, 후자는 엔터티를 상세화(Specialization) 또는 논리화(Logicalization)하는 행위입니다. 모든 엔터티가 서브타입이 존재하는 것은 아닙니다. 서브타입이 도출되는 엔터티는 소수인데요. 통합할 수 있고 상세화할 수 있는 엔터티에서는 서브타입을 반드시 도출해야 합니다. 물리 모델링 단계에서 다시 하나의 엔터티로 통합되더라도 과정 중에는 도출해야 합니다. 모델링은 과정을 의미하니까요. [그림1] 모델에는 유사한 엔터티가 있습니다. 두 개 이상의 엔터티가 유사하다.. 더보기
어떤 경우에 통합을 고려하는가? – 다양한 경우 이번 글에서는 통합을 고려할 수 있는 다양한 경우를 설명하겠습니다. 다양한 케이스를 소개하지만 결국은 데이터의 본질이 유사하다는 것으로 통하게 됩니다. 역할을 관리하는 엔터티는 [그림1]과 같이 통합 모델을 사용할 때가 많습니다. [그림1] 사원은 특정 계좌에 대해 관리사원·유치사원·주문사원 등 여러 가지 역할을 할 수 있습니다. 여러 역할에 따른 엔터티가 개별로 존재하는 것이 아니라 계좌관계사원 엔터티와 같은 통합 엔터티로 존재하는 것이 바람직합니다. [그림2]와 같이 대칭적인 업무를 관리하는 데이터도 통합을 고려할 수 있습니다. [그림2] 이경우 업무 성격은 대칭적이지만 데이터 성격은 유사합니다. [그림2]는 식별자가 같지만 식별자가 다르더라도(매출전표번호와 매입전표번호) 통합할 수 있습니다. 매도와.. 더보기
어떤 경우에 통합을 고려하는가? - 두 번째 지난 번에 설명한 데이터 성격이 유사하다는 것이 데이터 통합을 고려할 가장 중요한 요소입니다. - 데이터의 성격(본질)이 유사할 때, 즉 집합의 정의가 유사할 때 [그림1]은 고객이 요청한 알림 서비스를 관리하는 엔터티입니다. [그림1] 고객알림서비스 엔터티는 고객별 알림 서비스를 관리하는 엔터티이고, 계좌알림서비스 엔터티는 계좌별 알림 서비스를 관리하는 엔터티입니다. 어떤 종류의 알림 서비스를 원하는지와 어떻게 알림 서비스를 받는지, 서비스 신청 일자와 알림을 몇 번 반복하는지 등의 데이터 성격은 두 엔터티가 동일합니다. 단지 고객을 지정해 서비스를 하는지, 계좌를 지정해 서비스를 하는지가 달라 주 식별자가 달라졌습니다. 그래서 엔터티가 통합되지 못한 예제인데 통합 대상입니다(주 식별자가 다른 여러 엔.. 더보기
일반화(Generalization)와 상세화(Specialization) 데이터 통합과 관련된 용어로 일반화(Generalization)와 상세화(Specialization)가 있습니다. 이에 대해 간략하게 언급하겠습니다. 많은 분야에서 사용하는 용어일텐데, 이번 글에서는 데이터 모델링에서 사용하는 의미로 한정하겠습니다. 일반적인 용어를 공개적으로 설명하는 것은 용기가 필요하니 약간의 장치가 있어야죠. ㅎㅎ 모델링에서 일반화한다는 것은 데이터 통합을 의미합니다. 유사한 것을 묶는 것을 일반화라고 합니다. 원래 유사한 것을 묶을 수도 있고, 인위적으로 유사하게 만들어 묶을 수도 있습니다. 정의를 어떻게 하냐에 따라 유사한 것일 수도 있고, 유사하게 만든 것일 수도 있습니다(이 부분이 데이터 통합도 어렵게 하고 이에 대한 설명도 어렵게 하죠). 사전에서 찾은 '일반화하다'의 뜻은.. 더보기
데이터 통합(서브타입)에 대한 주절거림 데이터 통합은 모델링에서 가장 어려운 주제 중의 하나입니다. 또한 모델러 개개인의 능력 차이가 발생하는 부분입니다. 보통 통합하려는 데이터는 핵심적으로 사용되는 데이터일 가능성이 큽니다. 통합에 대한 이슈가 발생할 수 있는 데이터는 더욱 핵심 데이터이고요. 핵심적이지 않은 데이터는 무관심해서 통합과 관련된 이슈가 발생하지 않습니다. 정규화는 이론에 대한 이견은 거의 없고(조금 있고), 다만 적용 여부에 대한 논란(어느 정규형까지 적용해야 하는지에 대한 논란)이 많습니다. 데이터 통합은 모델러마다 이견이 생길 수 있습니다. 통합해야 좋다, 통합하면 안 좋다는 이견은 언제나 있습니다. 물론 전문가 간에는 의견이 거의 일치한다고 봅니다. 어쨌든 모델러 간에 의견 일치가 어려운 부분이 데이터 통합입니다. 데이터.. 더보기