데이터 모델의 중요한 요소 중 하나는 Entity이다. Entity는 여러 가지 형태로 탄생되며 이와 같이 탄생된 Entity에 의해 데이터베이스의 생명이 결정된다. 그렇기 때문에 정보 시스템을 구축함에 있어서 Entity는 매우 중요한 역할을 하게 된다. Entity의 효과적인 구성은 곧 데이터의 효과적인 구축과 동일하다고 말할 수 있다
이번 시간에는 데이터 모델링에서 Entity의 통합 중 종류 및 특징에 대해 살펴본다. Entity 통합은 데이터의 정합성은 약화되며 성능은 강화될 수 있으므로 정확한 분석을 수행해 적용해야 한다.
Entity의 Attribute가 유사한 경우 통합이 가능하다.
Primary Key가 다르고 해당 Primary Key를 Attribute로 가지고 있지 않더라도 2개의 Entity를 통합해 하나의 Entity로 구성할 수 있다.
[그림1]의 예제와 같이 개인 계좌번호와 법인 계좌번호가 다른 경우일지라도 해당 Entity들이 유사한 Data로 구성된다면 2개의 Entity를 통합해 하나의 Entity로 구성할 수 있다.
이 예제에서 Entity를 통합하지 않고 Data를 추출하고자 한다면 하나의 계좌에 대해 2개의 테이블을 대상으로 UNION ALL을 수행해야 한다.
하지만 Entity를 통합해 구분 Attribute로 법인과 개인 Data를 구분했을 경우 계좌의 데이터를 확인하고자 한다면 UNION ALL 등을 사용하지 않고 간단하게 계좌번호+구분+일자 인덱스를 이용해 결과를 추출할 수 있을 것이다.
Entity 통합의 대전제는 성능에 있다. 이는 조인의 사용을 감소시켜 성능을 향상시키는 구조다. 반면에 Entity 분할은 중복된 Data를 제거해 Data의 정합성을 최적화시키는 것이다.
이 두 가지 모두 Data Modeling에서 제외할 수 없는 요소다. 그렇기 때문에 Entity 통합과 분할에 대한 적절한 조화를 이뤄야 한다.
Entity 통합과 분할의 비교에서는 일반적으로 다음과 같은 현상이 발생한다.
항목 | 통합 Entity | 분할 Entity | 비고 |
---|---|---|---|
온라인 처리 | 유리 | 불리 | |
배치 처리 | 불리 | 유리 | |
업무 유연성 (Entity 별) | 불리 | 유리 | |
업무 유연성 (전체) | - | - | |
관리 | 불리 | 유리 | |
저장 공간 | 불리 | 유리 | |
Data 정합성 | 불리 | 유리 | |
업무분석 | 불리 | 유리 |
이는 일반적인 Entity 분할과 통합의 비교이며 상황에 따라 일부는 변할 수 있다.
Entity 통합의 목적은 다음과 같이 네 가지로 정리할 수 있다.
엔티티 통합은 이와 같이 성능적인 장점은 있지만 중복 데이터를 저장할 수 있으므로 항상 충분히 고려한 후에 선정해야 할 것이다.
- 강좌 URL : http://www.gurubee.net/lecture/2748
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.