권순용의 데이터모델링 이야기
Entity 분할의 종류와 특징 0 0 99,999+

by axiom 엔티티 Entity [2014.05.11]


데이터 모델의 중요한 요소 중 하나는 Entity이다. Entity는 여러 가지 형태로 탄생되며 이와 같이 탄생된 Entity에 의해 데이터베이스의 생명이 결정된다. 그렇기 때문에 정보 시스템을 구축함에 있어서 Entity는 매우 중요한 역할을 하게 된다. Entity의 효과적인 구성은 곧 데이터의 효과적인 구축과 동일하다고 말할 수 있다

이번 시간에는 데이터 모델링에서 Entity의 통합 중 종류 및 특징에 대해 살펴본다. Entity 통합은 데이터의 정합성은 약화되며 성능은 강화될 수 있으므로 정확한 분석을 수행해 적용해야 한다.

Entity의 Attribute가 유사한 경우 통합이 가능하다.

Entity 통합의 종류

Primary Key가 다르고 해당 Primary Key를 Attribute로 가지고 있지 않더라도 2개의 Entity를 통합해 하나의 Entity로 구성할 수 있다.

[그림1]의 예제와 같이 개인 계좌번호와 법인 계좌번호가 다른 경우일지라도 해당 Entity들이 유사한 Data로 구성된다면 2개의 Entity를 통합해 하나의 Entity로 구성할 수 있다.

  • [그림1] Entity 통합의 종류
  •  Entity 통합의 종류

이 예제에서 Entity를 통합하지 않고 Data를 추출하고자 한다면 하나의 계좌에 대해 2개의 테이블을 대상으로 UNION ALL을 수행해야 한다.

하지만 Entity를 통합해 구분 Attribute로 법인과 개인 Data를 구분했을 경우 계좌의 데이터를 확인하고자 한다면 UNION ALL 등을 사용하지 않고 간단하게 계좌번호+구분+일자 인덱스를 이용해 결과를 추출할 수 있을 것이다.

Entity 통합의 비교

Entity 통합의 대전제는 성능에 있다. 이는 조인의 사용을 감소시켜 성능을 향상시키는 구조다. 반면에 Entity 분할은 중복된 Data를 제거해 Data의 정합성을 최적화시키는 것이다.

이 두 가지 모두 Data Modeling에서 제외할 수 없는 요소다. 그렇기 때문에 Entity 통합과 분할에 대한 적절한 조화를 이뤄야 한다.

  • [그림2] Entity 통합의 비교
  •  Entity 통합의 비교

Entity 통합과 분할의 비교에서는 일반적으로 다음과 같은 현상이 발생한다.

  • - 온라인 처리 : 통합 Entity에서 온라인 처리를 수행할 경우 조인을 이용하지 않아도 되므로 Entity 분할에 비해 성능이 유리할 수 있다.
  • - 배치 처리 : 배치 처리 시에는 테이블의 전체 크기가 작은 분할 Entity가 유리할 수 있다.
  • - 업무 유연성(Entity별) : Entity별로 업무가 변경될 경우에는 해당 Entity만 수정하면 되므로 Entity 분할이 유리할 수 있다.
  • - 업무 유연성(전체) : 전체 업무 유연성은 두 가지 모두 동일하다.
  • - 관리 : Entity 분할의 경우에는 Data가 분리되어 있으므로 각각의 Entity에 별도의 작업이 가능해 유리하다.
  • - 저장 공간 : Entity 분할의 경우 분할 형태에 따라 Entity의 크기가 감소하므로 저장 공간은 감소할 수 있다.
  • - Data 정합성 : Entity 분할의 경우에는 중복된 Data를 제거하게 되므로 Data의 정합성은 강화된다.
  • - 업무 분석 : Entity 분리로 각각의 Entity에서 관리하는 Data의 성격이 명확해질 수 있으므로 Entity 분할이 업무 분석에 유리할 수 있다.

  • [표1] 통합 Entity와 분할 Entity의 비교
  • 항목 통합 Entity 분할 Entity 비고
    온라인 처리 유리 불리
    배치 처리 불리 유리
    업무 유연성 (Entity 별) 불리 유리
    업무 유연성 (전체) - -
    관리 불리 유리
    저장 공간 불리 유리
    Data 정합성 불리 유리
    업무분석 불리 유리

이는 일반적인 Entity 분할과 통합의 비교이며 상황에 따라 일부는 변할 수 있다.

Entity 통합의 목적

Entity 통합의 목적은 다음과 같이 네 가지로 정리할 수 있다.

  • - 유사한 정보를 하나의 Entity에서 관리 : 유사한 정보를 하나의 Entity에서 관리한다면 조회 작업을 보다 수월하게 처리할 수 있을 것이다.
  • - Entity 사이의 Data 중복 제거 가능 : Entity들 사이에 동일한 Data가 각각 저장돼 있다면 Entity 통합을 통해 하나의 Data만을 저장하게 되므로 중복된 Data가 제거될 수 있다.
  • - Subset 발생 시 즉시 적용 가능 : 하나의 Entity에 다른 종류의 Data가 발생하면 Subset을 관리하는 구분 Attribute에만 해당 값을 설정해 바로 애플리케이션에서 적용할 수 있다.
  • - ERD의 단순화 : Entity의 개수가 감소하게 되므로 ERD가 좀더 단순화되면서 판독성이 높아지게 된다.
  • - 성능 향상 : Entity를 통합하는 가장 큰 이유 중에 하나다. 이는 추출하고자 하는 데이터가 Entity 통합을 통해 하나의 Entity에만 존재하게 함으로써 조인을 발생시키지 않고 원하는 Data를 추출하게 하는 것이다. 이는 보통 온라인 처리에서 Entity 분할에 비해 성능이 향상될 수 있다.

엔티티 통합은 이와 같이 성능적인 장점은 있지만 중복 데이터를 저장할 수 있으므로 항상 충분히 고려한 후에 선정해야 할 것이다.

- 강좌 URL : http://www.gurubee.net/lecture/2748

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입