ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데이터 모델링 17 - 데이터에는 유형, 종속관계, 계층구조가 존재한다2
    Data Base/관계형 데이터 모델링 2023. 9. 22. 13:39

    데이터의 종속과 계층 구조

    데이터 간에는 다양한 연관 관계가 존재한다. 그 중에서 데이터의 존재적 관점에 집중해서(대출 - 대출 상환처럼 다른 데이터의 발생에 영향을 미치는 데이터의 관점으로) 데이터 간 종속성에 대해 알아보자. 참고로 정규화 이론의 기반인 함수적 종속성이 속성 간 종속 관계(즉, 엔티티 안에서의 종속성)를 추적하는 것이라면, 앞으로 살펴볼 내용은 개체(인스턴스)수준의 종속성을 따지는 것이다.

     

    그림 8-9 주소를 회원에 종속된 정보로 관리하는 경우와 별개로 관리하는 경우

     

    엔티티에는 크게 다른 엔티티에 의존하지 않고 스스로 존재하는 강한(strong)엔티티와 반드시 상위 엔티티가 있어야 존재할 수 있는 약한(week)엔티티가 있다. 종속이란는 개면이 다소 추상적일 수 있어 덧붙이자면, 약한 엔티티는 자신의 속성만으로 식별자(key)를 명세할 수 없는 불완전한 개체 유형이다. 이는 데이터 모델링에서 굉장히 중요한 개념으로, 식별자와 관계 등에 많은 영향을 끼친다. 1)개체 집합을 어떻게 정의하느냐에 따라(그림 8-9 참조), 2)업무에서 관리하는 데이터의 범위에 따라, 3)업무 요건이 어떠하냐에 따라 강한 엔티티가 약한 엔티티가 될 수 있고, 그 반대가 될 수도 있다. 

     

    그림9-2 상위 엔티티인 <상품>에 종속된 <상품가격>엔티티

    [그림 9-2]는 상위 엔티티에 그 존재가 종속된 약한 엔티티의 대표적 사례인 <상품>과 <상품가격>이다.  부모 엔티티인 <상품>에서 인스턴스가 하나 삭제되면 약한 엔티티인 <상품가격>의 관련 인스턴스도 삭제되어야 한다. 종속성 때문에 부모와 생사를 함께하기 때문이다. 이와 같이 하위 엔티티가 상위 엔티티의 주 식별자를 자신의 주 식별자로 상속하며 상위 엔티티에 그 존재가 완전히 종속된 약한 엔티티일 경우, 상위 엔티티를 부모라고 한다.

     

    약한 엔티티는 주로 상위 엔티티의 식별자를 자신의 식별자로 상속받는다. 반면 강한 엔티티는 통상 자기 자신의 식별자를 명세한다. 주로 실체에 해당하는 본질 데이터를 정의한 엔티티는 강한 엔티티로, 그 실체가 발생시킨 업무 행위 데이터는 약한 엔티티로 분류할 수 있다. 이둘을 분류하는 것은 그 자체가 목적이 아니고, 데이터의 성격을 이해하고 체계화하는 과정으로 이해해야한다.

     

    이런 자립과 종속은 온전히 논리적 개념의 영역의로 현실세계의 물리적 실체와 일대일 대응되는 것은 아니다. 예를 들어 상품역시 부모가 있고 그 부모가 부품이라고 생각한다면 엔티티의 종속관계를 잘못 이해한 것이다. 

     

    그림 9-3 다계층구조의 모델

    실무에서는 [그림 9-3]과 같이 다계층구조를 갖는 ERD를 쉽게 접할 수 있다. 이 그림에서 엔티티 <C>는 <A>와<B>를 부모로 해서 태어난 자식 엔티티인 동시에, <D>를 만나 자식인 <E>를 창조할 수 있는 부모 엔티티이기도 하다. 이와 같이 데이터 모델에 다계층구조가 형성되는 이유는 무엇일까? 어떤 행위의 주체(A)와 대상(B)을 각각 주어와 목적어로 하여 태어난 업무 행위(C)가, 어떤 경우에는 다른 행위(E)의 주어가 될 수 있기 때문이다. 즉. 구매, 납부, 입금, 반품 수준의 하위 업무 행위가 어떤 경우에는 고객이나 상품처럼 상위에서 다른 행위의 주체가 될 수 있다. 

     

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

    댓글

Designed by Tistory.