본문 바로가기

데이터 Story/모델링 이론

어떤 경우에 통합을 고려하는가? - 두 번째

지난 번에 설명한 데이터 성격이 유사하다는 것이 데이터 통합을 고려할 가장 중요한 요소입니다.

 

- 데이터의 성격(본질)이 유사할 때, 즉 집합의 정의가 유사할 때

 

[그림1]고객이 요청한 알림 서비스를 관리하는 엔터티입니다.



[그림1]

 

고객알림서비스 엔터티는 고객별 알림 서비스를 관리하는 엔터티이고, 계좌알림서비스 엔터티는 계좌별 알림 서비스를 관리하는 엔터티입니다. 어떤 종류의 알림 서비스를 원하는지와 어떻게 알림 서비스를 받는지, 서비스 신청 일자와 알림을 몇 번 반복하는지 등의 데이터 성격은 두 엔터티가 동일합니다.

 

단지 고객을 지정해 서비스를 하는지, 계좌를 지정해 서비스를 하는지가 달라 주 식별자가 달라졌습니다. 그래서 엔터티가 통합되지 못한 예제인데 통합 대상입니다(주 식별자가 다른 여러 엔터티를 통합하는 방법은 별도로 설명하겠습니다).

 
사실 데이터의 본질이 유사한지 따지는 것 자체가 어려운 일입니다. 지금 몇 장에 걸쳐 설명하고있는 내용이기도 하고요.

 

엔터티에서 관리하는 데이터의 본질은 속성으로 나타납니다. 따라서 속성이 유사하면 본질이 유사할 가능성이 높습니다. 더욱이 기초 속성1)이 유사하면 통합을 고려할 수 있습니다.

 

[그림2]는 속성이 유사한 예제이고요. 이전 글의 계좌 엔터티나 고객 엔터티와 마찬가지로 대표적인 통합 대상 엔터티입니다.



[그림2]

 

[그림3]은 속성은 다소 다르지만 기초 속성이 유사한 통합 대상 엔터티입니다.


[그림3]

 

모두 결국 데이터의 본질이 유사하다고 볼 수 있습니다.

 

[그림4]는 이제까지의 예제와 달리 데이터 본질 측면에서는 유사성이 가장 떨어집니다.


[그림4]

 

하지만 역시 몇몇 기초 속성이 유사해 통합 대상인데요. 데이터 성격이 다소 달라서, 고객이 약정한 서비스를 함께 보여주지 않는다면 통합을 숙고해야 합니다. 즉 데이터를 같이 본다는 측면이 통합을 하는 명분이 됩니다.

 

사실 성격이 완전히 다른 데이터를 같이 볼 이유는 없죠. 비슷하니까 같이 보게 됩니다. 데이터를 같은 방법으로 사용한다면 유사한 데이터일 가능성이 높습니다.

 

일반적으로 [그림4]와 같은 엔터티를 부가서비스라는 상위 개념으로 일반화하는 건 좋은 생각입니다. 한번 더 일반화를 한다면 서비스라는 개념이 되겠고요.

 

아래 [그림5]도 일반화를 한 예제입니다.



[그림5]

 

고객의 집주소·회사주소 등은 매우 유사해서 고객우편주소 엔터티로의 일반화가 자연스럽고요. 고객의 개인이메일·회사이메일·홈페이지·메신저 등도 유사한 편이라 고객전자주소 엔터티로 일반화가 됩니다. 집전화·회사전화·휴대전화·팩스도 마찬가지로 고객전화번호 엔터티로 일반화됩니다.

 

이를 한 번 더 일반화한 게 고객연락처 엔터티입니다.

 

엄격히 보면 집 주소와 이메일 주소는 유사한 데이터가 아닙니다. 전화번호는 더욱 그렇고요. 하지만 고객한테 연락할 곳이라는 개념에서는 유사성이 있습니다.

 

[그림4]와 마찬가지로 여러 연락처를 함께 볼(사용) 가능성도 높습니다.

 

데이터를 일반화(Generalization)하면 엔터티가 통합됩니다.

일반화 강도에 대한 고민은 항상 하지만 기본적으로 일반화하는 것을 검토합니다.

 

이번에는 주로 데이터 성격이 유사한 경우를 설명드렸습니다.

통합을 고려해야 할 다양한 경우를 이어서 설명하겠습니다.

 

 

1) 기초 속성(Basic Attributes): 엔터티의 본질을 설명하는 속성으로 업무 식별자와 후보 식별자, 엔터티의 성격을 대표할 수 있는 핵심 속성, 업무를 정의하는 코드 속성 등이 기초 속성에 포함된다.