데이터 모델의 중요한 요소 중의 하나가 엔티티(Entity)이다. 이와 같은 엔티티는 근본 엔티티, 중심 엔티티 등 여러 가지 형태로 존재하며, 이런 형태 말고도 다르게 구분할 수도 있다.
엔티티의 구성이야말로 시스템 구축 과정에서 필수라고 여겨지므로, 이번 강의에서는 데이터 모델링을 수행하는 과정에서 자주 등장하는 코드 엔티티와 코드들에 어떠한 RULE을 정의하는 RULE 엔티티에 대해 살펴본다.
코드 엔티티와 RULE 엔티티는 매우 많이 사용하게 되므로 정확히 이해하고 구성해야 한다.
모델링을 하면서 코드 엔티티의 개수가 많아진다면 관계는 복잡해진다. 관계가 복잡해지면 두 가지 문제점이 발생할 수 있다.
[그림1] 복잡한 관계로 인한 두 가지 문제점 위와 같은 이유에서 코드 엔티티는 데이터의 정합성을 높이면서 최소의 개수로 엔티티를 도출해야 한다.
코드 엔티티의 개수가 많다면 애플리케이션 작성 시 복잡해진다. 물론 조인을 수행해 원하는 데이터를 추출하는 경우 성능 저하가 발생할 가능성은 높아진다. 따라서 여러 개의 코드 엔티티를 하나의 엔티티로 통합하는 것이 유리할 수도 있다.
[그림 2]의 예제와 같이 모든 코드 엔티티가 코드_ID 속성과 코드명 속성으로 구성된다면 하나의 코드 엔티티로 생성해 해당 코드 엔티티는 코드번호 Attribute, 구분명 Attribute, 코드_ID Attribute 및 코드명 Attribute로 구성한다.
이와 같이 구성한다면 모든 코드 값을 하나의 엔티티에서 관리할 수 있을 것이다. 이 경우 코드 엔티티에서 구분명 Attribute의 경우에는 중복된 데이터를 저장하게 되므로 근본 엔티티로 분할할 수 있게 된다. 물론 이 과정을 정규화라고 한다.
데이터 모델링을 수행하는 과정에 회원 엔티티 또는 가맹정 엔티티 등은 가맹점 이름 또는 회원 이름을 추출하기 위해 코드 엔티티와 같이 사용하게 된다. 이와 같이 사용되는 코드 엔티티는 실제로는 코드 엔티티는 아니다.
그렇기 때문에 해당 엔티티는 하나로 동질성을 가지고 있더라도 하나의 엔티티로 통합해서는 안 된다. 두 엔티티를 하나의 엔티티로 통합하는 순간, 성능 저하 및 데이터 정합성이 위험해지는 엄청난 문제들이 발생할 것이다.
코드 값에 Rule을 적용하는 것은 [그림 4]와 같이 두 가지 방법이 존재한다.
이와 같이 코드 엔티티 및 RULE 엔티티를 구성하게 된다.
- 강좌 URL : http://www.gurubee.net/lecture/2749
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.