데이터 모델링 관점에 있어 도메인(Domain)은 데이터 표준화 측면에서 매우 중요한 요소다.
도메인이 체계화 및 표준화되지 않으면 물리 모델 구현 관점에서 속성과 엔티티의 이름이 표준화되지 않을 수 있고 데이터 타입의 정확성까지 잃을 수 있기 때문이다. 이러한 문제를 피하기 위해서는 도메인의 정확한 정의와 개념을 이해해야 한다.
도메인은 동일한 테이블 타입을 가지는 속성을 분리하는 것을 의미한다. 이러한 도메인 분리 과정에는 일정한 규칙이 존재하는 데, 도메인은 크게 Unique identifier, 코드 속성, 일반 속성으로 분리할 수 있다.
이 3개의 요소가 도메인을 구성하는 가장 기본 적인 요소다.
대부분의 프로젝트에서는 굳이 도메인을 적용할 필요가 없다. 도메인 적용 여부에 따라 별다른 문제가 없기 때문이다.
그러나 도메인을 사용하면 동일하거나 유사한 속성에 동일한 데이터 타입을 할당할 수 있어 데이터의 일관성과 정합성을 유지할 수 있는 이점이 있다.
특히 데이터 모델링을 수행한 후 애플리케이션을 개발할 경우, 도메인 적용 유무가 때때로 큰 차이를 가져오곤 한다(〈그림 2〉,〈그림 3〉참조).
예컨대 도메인을 사용하지 않았고 속성이 동일한데 데이터 타입이 서로 다른 경우를 가정해보자(〈그림 3〉참조). 여기서 해당 속성들을 조인 조건으로 처리하면 어떤 일이 발생할까?
〈그림 3〉처럼 두 속성은 데이터 타입이 서로 다르기 때문에 어느 한쪽 속성의 데이터 타입이 변하게 된다. 또한 TO_NUMBER 함수 나 TO_CHAR 함수도 사용해야 할 것이다.
이 경우 거래 내역 엔티티의 고객번호 속성에 함수가 사용되므로 해당 고객번호 속성에 인덱스가 있어도 이용할 수 없어 성능저하가 발생할 수 있다.
이러한 문제를 예방하기 위해서는 도메인을 이용해 동일하거 나 유사한 속성에 같은 데이터 타입을 사용해야 한다.
도메인을 사용해도 반드시 동일한 데이터 타입이 할당되는 것이 아니지만, 이와 같은 실수를 줄일 수 있을 것이다.
도메 인은 다음과 같은 절차를 통해 정의 할 수 있다.
즉, 모든 속성을 나열하고 속성을 명사로 분리해야 한다. 이때, 보통 2〜3개의 명사로 속성을 나열하면 도메인 설정에 문제가 발생하지 않는다.
또한 공통 〈그림 2> 도메인 사용 절차적으로 발생하는 명사를 하나의 도메인으로 생성해야 한다. 이 경우 최소 공배수를 구한 다음 해당 명사만으로 도메인을 구성하면 된다〈그림 3> 참조).
도메인은 크게 어렵지 않지만 표준화를 위해서는 이를 적용하는 것이 바람직하다. 이를 통해서만 실수를 줄이고 데이터의 정합성까지 유지할 수 있기 때문이다 .
- 강좌 URL : http://www.gurubee.net/lecture/2872
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.