데이터 모델링을 수행하기 위해서는 ERD 작성이 필요하며, 프로젝트를 진행하는 동안 작성된 ERD를 통해 프로젝트 참가 인원들이 데이터 모델링 관련 정보를 공유하게 된다. 이와 같이 중요한 ERD는 초기부터 정확히 정의돼야 할 것이다.
이번 시간부터는 데이터 모델링에 활용되는 ERD 표기법과 Entity의 개념을 살펴본다. 특히 Entity의 개념은 데이터 모델링에서 매우 중요한 요소이므로 정확히 이해해야 한다.
데이터 모델링을 수행하는 과정에서 실제로 작업은 ERD로 표현된다. ERD를 통해 Entity를 배치하고 Entity 사이에 Relationship을 설정하는 것이다.
이와 같은 순서를 통해 ERD를 작성하고 프로젝트 중에 계속 협의 수단으로 사용하게 된다.
ERD를 표기하는 방법으로 Subject Area를 이용하는 방법이 있다. Subject Area를 이용하는 방법은 전체 업무를 몇 개의 범주로 구분해 각각 ERD를 작성하는 것이다.
Entity가 많은 시스템의 경우 하나로 ERD를 작성한다면 매우 복잡해질 수 있다. 이와 같은 경우 업무별 또는 시간별로 구분하고 Subject Area를 분리해 ERD를 작성할 수 있다.
실제 프로젝트에 Entity의 개수가 많은 경우에는 Subject Area를 다수 활용하게 된다. [그림 2]의 예에서 카드 업무에 대해 데이터 모델링을 수행하는 과정에서 해당 데이터 모델링의 Entity가 많을 경우 카드 승인 업무와 카드 정산 업무를 분리해 Subject Area를 이용함으로써 각각 데이터 모델링을 수행할 수 있다.
Subject Area를 구분하는 경우 서로 다른 Subject Area 사이에 많은 Relationship이 존재한다면 매우 불리할 수 있다.
Entity가 되기 위해서는 어떤 조건을 만족해야 할까?
[그림 3]의 일곱 가지 조건을 만족해야만 Entity 자격이 되며, 데이터 모델링에서 Entity로 구현될 수 있다. Entity로 선정된 후 Entity는 Physical Modeling에서 테이블로 변경된다.
- 업무에 필요한 정보 : 통신회사일 경우는 통신에 대한 통화내역 데이터는 필요하지만 HR 시스템에서는 통화내역 데이터가 필요 없다. 결국 시스템에서 반드시 필요한 데이터를 저장하는 경우에만 Entity로 정의할 수 있다.
- 영속적으로 존재 : 영구히 존속하는 데이터를 가진 경우에만 Entity가 될 수 있다. 임시 Entity는 ERD에 구현하지 않는다. 또한 성능을 고려해 가상으로 만든 Entity는 ERD에서는 구현하지 않는다. 결국 데이터 정합성과 관련이 없는 Entity는 ERD에 구현하지 않는다.
- 객관적인 집합 : 누가 봐도 정확히 구분되는 집합이어야 한다. 예를 들어 부서 테이블에 국내 부서만 포함되는지 해외 부서도 포함되는지 또는 부서이력을 포함하는지 등 객관적인 집합에 대한 정의가 필요하다.
Entity 개념은 이와 같이 이해할 수 있다. Entity 개념에 대한 추가적인 사항은 다음 시간에 살펴본다.
- 강좌 URL : http://www.gurubee.net/lecture/2719
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.