권순용의 데이터모델링 이야기
Entity의 종류 1 1 1 3,890

by axiom 데이터모델링 엔티티 Entity [2014.05.06]


데이터 모델링의 증요한 요소는 Entity에 있다. Entity들은 서로의 관계를 가지고 계속해서 데이터를 생성하고 관리하게 된다. 이와 같 은 Entity는 데이터 정합성의 중심에 있으며 Entity의 도출 및 종류 분석은 매우 의미 있는 작업일 것이다. 이번 강의부터는 데이터 모 델링에서 Entity 종류에 대해 획인해보자.

Entity의 종류에는 Key Entity, Main Entity, Action Entity, Production Entity가 있다.

  • [그림1] Entity의 네가지 종류
  • Entity의 네가지 종류

Entity는 Data 연관관계를 가지면서 생성되므로 Tree 구조와 비슷하며, 부모가 없는 Entity를 Key Entity라고 한다. 예를 들어 카드 회사의 Entity의 경우 고객정보,제휴사 또는 가맹점이 Key Entity가 된다.

부모 Entity와 자식 Entity를 모두 가지고 있는 Entity를 Main Entity 라고 한다. Main Entity의 예로는 카드 거래내역 Entity, 카드 마스터 Entity가 있다. Main Entity는 대용량 Table로 진화할 확률이 높은 Entity이며 항상 최적화 대상으로 고려해야 한다.

Action Entity의 특징은 자식 Entity를 가지지 않는 것이며, Action Entity의 예로 이력테이블을 들 수 있다. Action Entity 또한 대용량 Table로 진화할 기능성이 높다. Production Entity는 Modeling 관계가 없다. 예로는 통계 Entity, 요약테이블 Entity가 있다. 그럼[그림 2]의 예제를 확 인해 보자.

  • [그림2] Entity 관련 예제
  • Entity 관련 예제

Key Entity

[그림 3]에서 인덱스가가맹점 이름+거래일자로 되어 있기 때문에 Where 조건에 거래일자만 제공된다면 인덱스를 제대 로 활용할 수 없게 된다. 따라서 거래내역 테이블 조희 시 Full table scan을 수행하게 되어 부하를 유발할 수 있다.

  • [그림3] Key Entity의 활용
  • Key Entity의 활용

이를 해결하기 위해서는 가맹점이라는 Key Entity를 활용하 자. Key Entity는 코드성 데이터의 집합이라 대용량 테이블이 아닌 경우가 대부분이다. 따라서 가맹점 테이블을 Full table scan하는 것은 부하가 크지 않게 된다.

이 경우 가맹점 이름 값 을 제공받아 가맹점이름+거래일자 인덱스를 사용해 효과적으 로 데이터를 액세스할 수 있게 된다.

Main Entity

Main Entity는 Key Entity 데이터가 1 〜2건 증가하면 급증 하게 된다. 따라서 Main Entity는 탄생에서부터 프로젝트 오 픈에 이르기까지 많은 관심을 가져야만 하는 관리대상이다.

  • [그림4] Main Entity의 성능 저하
  • Main Entity의 성능 저하

지금까지 살펴본 것처럼 Entity는 다양한 형태로 존재하며 Entity의 종류에 따라 Entity의 특성이 결정될 수 있다. 다음 시간에는 Action Entity부터 차례로 확인해 보자.

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

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

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

by 초보 개발자 [2017.08.01 14:18:59]

항상 좋은 글 감사드립니다.

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