ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데이터 모델링21 - Account, 개체 그룹핑 모델링 이해 2
    Data Base/관계형 데이터 모델링 2023. 9. 25. 15:10

    서비스, 청구를 통해서 알아보는 업무처리를 묶는 단위 개체의 중요성

    그림 10-1 3인가족의 이동통신 서비스

     

    상위 개체 집합이 누락되었을 때의 문제점을 이해하였으니, 이를 바탕으로 앞선 게시글에서 살펴본 한 가족의 통신 서시스 사용 상황을 조금 확장해보자. 

     

    그림 10-3 청구 단위를 독립시켜 가족 전체의  수납을 하나로 통합

    엄마,아빠, 딸 모두 같은 이동통신사의 서비스를 이용한다. 딸은 아빠 명의로 가입하였고 그 요금은 엄마가 낸다. 정확하게 다시 표현하면 딸이 사용한 서비스 요금을 지불할 의무는 엄마에게 있으므로 통신사는 엄마 앞으로 사용료를 청구한다. 이때 엄마는 본인사용료와 딸의 사용료가 합쳐진 단위로 청구를 요청 받는다. 여기에 더해 아빠는 업무용 번호를 하나더 사용하며, 청구는 이 둘을 묶은 단위로 요청받기를 희망한다. 또한 엄마와 아빠의 개별 엋구 건을 하나로 통합한 수납 처리가 가능하다면 더 편리할 것이다. 이러한 요구사항을 만족하게 하기 위해서는 다음 두가지가 충족이 되어야 한다.

     

    1. 여러 조건과 상품을 묶어 특정인이 사용하는 서비스를 관리할 수 있다.

    2. 개별 서비스 계약을 묶을 단위로 청구하기 위해 서비스와는 별도인 청구 단위가 존재한다.

     

    이러한 청구 단위가 있담녀 엄마와 아빠의 청구까지 묶어서 가족의 수납을 하나로 통합할 수 있는 등의 업무 유연성이 가미된다.

     

    업무 처리를 묶는 단위로서 상위 개체를 잘 정의할 수 있는 능력, 그리고 분류와 묶음에 대한 통찰은 데이터 모델링을 할때 특별히 요구되는 역량이라고 할 수 있다. 데이터 모델의 적정성을 검증하는 관점이 여러 가지 있지만, 1)행위와 2)행위의 주체가 정확히 식별되었는지와 3)업무 처리를 묶는 단위 개체 집합이 명확한지를 주의 깊게 살펴보는 것을 추천한다. 이는 전체 모델 구조의 골격에 해당하는 가장 중요한 핵심이기 때문이다.

     

    개체를 묶는 방법

    그림 10-4 두 개의 논리적 그룹을 포함한 개체 집합

    그림 10-5 개체 집합을 그룹 관계로 구조화

    게시글 [데이터 모델링4-데이터 관점에서 모델링]에서 개체를 그룹핑하는 관점은 데이터를 의미적으로 한정화하면서 구조화하는 디멘션으로 구현될 수 있다고 했다. 따라서 그림 [10-4]의 A와 B라는 두 논리적 그룹은 상위의 디멘션처럼 정의하여 [그림 10-5]와 같은 그룹 관계로 구조화할 수 있다.

     

    그런데 그룹핑 단위요 개체 집합(A와 B)이 별도로 존재하는 것이 아니라, 전체집합 내부의 다른 개체라면 어떻게 처리할 수 있을까? 예를어 상위 그룹핑인 그룹 A와 그룹B가 존재하지 않고 8이 그룹 A를 대신하고, 9가 그룹 B를 대신하는 개념이라면 8과 9는 [그림 10-6]과 같이 상위 개체로 정의할 수 있다.

     

    그림 10-6 개체 8과 9가 그룹 A와 B를 대신하는 상위 개체일 경우

    그림 10-7 대표 개체가 해당 집합 안에 포함된 경우

    그렇다면 상위 개체를 정의하지 않고 [그림 10-7]처럼 해당 그룹의 대표 개체를 정의하는 방법은 어떤 걸까? 

     

    이는 [표 10-1]과 같은 상황이다. 즉, <주문>이라는 상위 개체 없이 <주문내역>개체에서 대표 상품 개에에 주문 관련 속성을 저장하는 것과 같다. 하지만 그룹을 대표하는 개체가 변경활 수도 있고 그 에 따른 파급력이 크기 때무에 유연성이 떨어지기 마련이다. 물론 대표가 개체가 변경될 여지가 전혀 없다면 고려해볼 수는 있으나, 구조적으로는 안정적이지 못하다.

     

    [출처 - 프로젝트의 성패를 결정짓는 데이터 모델링 이야기 , 김상래 저]

    댓글

Designed by Tistory.