본문 바로가기
데이터 모델링/데이터 모델링 강의

1. 엔터티 설계의 첫 관문. 실체 엔터티(3)

by Toddler_AD 2024. 11. 19.
  • 실물의 개수와 실체 엔터티의 인스턴스 개수
    • 실체 엔터티는 몇 가지 특징이 있다.
    • 이 특징을 모두 알고 나면, 실체 엔터티의 정체는 더욱 뚜렷해질 것이라 믿는다.
    • 실체 엔터티의 중요한 특징 가운데 기억하기 쉬운 것은 엔터티에서 관리하고 있는 인스턴스의 개수와 실제 존재했던 실체의 개수가 같다는 것.
      • 물리적으로 같아야 한다기 보다는 논리적으로 그렇다는 뜻.
      • 간단히 설명하면, 우리 회사의 사원이 30명이면, 사원 엔터티의 인스턴스개수도 30개가 된다는 뜻.
      • 그렇다면, 퇴사한 사원은 어떻게 되는가?
      • 퇴사한 사원도 사람이기 때문에 실체이며, 사원이었기 때문에 사원 엔터티에 존재해야 한다.
      • 그 사원의 상태만 '퇴사'로 구분할 수 있으면 되는 것.
      • 따라서, 더 정확하게 표현하면 우리 회사의 사원이었던 사람의 수와 사원 엔터티의 인스턴스 개수가 같게 된다.
        • 서버로 예를 들면,
        • 20개의 서버 중 세 개를 폐기했더라도, 서버 엔터티의 수는 20개이다.
        • 실체 엔터티의 인스턴스는 존재했던 그 자체를 의미한다.
        • 폐기된 세 개에 대한 인스턴스는 폐기 상태로 관리하면 된다.
    • 물리적으로 한번 존재한 실체는 하나의 인스턴스로 계속 존재하고, 엔터티의 인스턴스는 물리적으로 삭제하지 않기 때문에 실체가 소멸되면 해당 인스턴스의 상태만 변경돼서 계속 존재하게 된다.
      • 사원 엔터티의 인스턴스 개수와 지금껏 사원이었던 사람의 숫자가 같고,
      • 현재 사원의 숫자와 사원 엔터티의 인스턴스 중,
      • 상태가 근무 중인 인스턴스의 개수가 같게 되는 셈이다.
    • 이렇게 존재했던 실체의 개수가 엔터티의 개수와 같도록 관리하는 것이 실체 엔터티의 가장 커다란 특징이다.
    • 이는 변경이력 데이터와도 연관된다.
      • 고객 엔터티에 실체인 고객 데이터가 한 번 존재하고 나면, 이름이나 주민등록번호 같은 일부 속성의 값이 변경될 수 있다.
      • 이런 속성 값의 변경은 실체 엔터티의 인스턴스 개수에 영향을 미치지 않는다.
      • 속성 값의 변경이 실체의 존재에는 영향을 미치지 못하는 것.
      • 이름이 '홍길순'에서 '홍길동'으로 바뀌어도, 그 사람은 그대로 존재하는 것.
      • 두 사람이 있는 것이 아니다.
    • 이는 실체의 변경이력 데이터는 실체 자체에 영향을 미치지 않는다는 것을 의미한다.
      • [그림 2]와 같이 실체 엔터티인 고객 엔터티의 변경이력 데이터는 별도의 엔터티에서 관리해야 한다. 

  • 이는 실체의 변경이력 데이터는 실체 자체에 영향을 미치지 않는다는 것을 의미한다.
    • 고객명 속성만 변경된다면, [그림 3]과 같이 고객명 속성만 별도의 변경이력 엔터티에서 관리하면 된다.

  • 이는 실체의 변경이력 데이터는 실체 자체에 영향을 미치지 않는다는 것을 의미한다.
    • [그림 4] 모델 처럼 고객의 변경이력 데이터를 고객 엔터티 자체에서 관리하도록 설계하면 안된다.

  • 실물의 개수와 실체 엔터티의 인스턴스 개수
    • 고객 엔터티를 [그림 4]와 같이 설계한다면, 고객 엔터티의 하위 엔터티에 미치는 영향을 어렵지 않게 짐작할 수 있다.
      • 고객 엔터티는 매우 익숙하기 때문에 [그림 4]와 같이 변경이력 데이터를 원천 데이터와 함께 관리하도록 관리하지 않는다는 점을 이해해야 한다.
    • 실체 엔터티임에도 불구하고 [그림 4] 엔터티처럼 실체 엔터티 자체에서 변경이력 데이터를 관리하도록 설계해야 하는 경우가 있을 수 있다.
      • 하지만, 이는 업무 특성에 따른 변형된 설계일 뿐 데이터 성격 자체를 설계한 것은 아니다.
    • 실체 데이터는 한 번 존재하면 지속해서 하나의 인스턴스로 존재해야 하는 데이터이다.
    • 고객의 속성 값에 대한 변경이력 데이터가 고객의 숫자에 영향을 미치면 안 된다는 점을 잊지 말아야 한다.
    • 실체 엔터티의 핵심적인 특성이다.