데이터 모델링은 영속성을 갖는 데이터에 대한 시스템 구조를 사람이 이해할 수 있도록 형상화하는 과정이다
많은 프로젝트에서 ER 모델을 통해 데이터 모델링을 수행하며, 관계형 모델과 관계형 데이터베이스를 통해 데이터를 저장하고 관리한다
데이터 모델링 작업은 현업 인터뷰, 업무 지침서, 용어집, 산출물 등 현행 업무를 파악하여 개념들을 정리하고 분류하여 엔터티, 속성, 관계로 형상화하는 과정이다
상품
, 가입
처럼 복합 정보를 포괄적으로 수용하고 있는 경우 엔터티로 식별한다
생년월일
, 가입금액
등 단일 정보는 속성으로 식별한다
상품
, 예금/대출
관계처럼 어떤 개념(상품)이 다른 개념(예금/대출)을 포함하거나 개인
, 기업
처럼 동등한 지위를 가지는 개념을 식별하여 별도 엔터티로 도출한다
또는 슈퍼타입과 서브타입으로 집합을 정의한다
ER 모델은 표현하고자 하는 현실 세계의 업무를 개체
(Entity)와 관계
(Relationship)라는 두 가지 개념으로 표현한다
개체와 개체 간의 관계를 표현하는 ER 표기법
을 사용하여 표현한다
ERD
(Entity-Relationship Diagram)는 ER 모델에서 사용하는 실체와 관계를 도형을 사용하여 도식화한다
ER 모델은 업무적인 요구사항을 표현하고 있어야 한다
ER 모델에 언급되고 있는 개념들이 요구사항을 만족하는지 검토한다
ex. 상품 단가가 변경되면 주문 시 상품 수량뿐만 아니라 상품 금액을 같이 관리해야 한다
ER 모델의 개념대로 데이터모델을 작성해야 한다
ex. 한 명의 직원이 두 개 이상 부서의 부서장으로 겸임할 수 있고, 부서장이 공석인 경우도 있다
요구사항의 모든 특성이 ER 모델에 한 번만 나타나도록 설계해야 한다
중복이 나타나면 중복 데이터를 문서화 한다
ex. 부서와 직원 엔터티에서 특정 부서의 직원 수는 직원 엔터티에서 특정 부서에 속한 직원 수를 구하면 되므로 부서에서 직원 수 속성을 가질 필요는 없다
별도의 보조자료 없이 설명이나 증명을 하지 않아도 요구사항에 대한 뜻이나 의미를 명확히 설명할 수 있어야 한다
ex. 쇼핑몰에서 주문한 사람과 받는 사람이 다를 수 있으므로, 배송정보를 별도로 관리하여 요구사항을 반영할 수 있다
새로운 요구사항을 쉽게 반영할 수 있도록 유연한 모델을 설계해야 한다
대표적인 방법이 엔터티를 일반화하여 엔터티를 통합하는 것이다
ex. 고객 유형 속성을 추가하여 개인, 법인 말고도 단체 등을로 고객 범위를 확장할 수 있고, 유형에 따라 주민등록번호, 법인등록번호, 단체등록번호 등으로 식별할 수 있다
ER 모델은 요구사항을 자연스럽게 표현하고 추가적인 설명 없이도 ER 모델의 의미를 쉽게 이해할 수 있도록 명확하게 설계해야 한다
ex. 주소1, 주소2 보다는 고객기본주소, 고객상세주소 등으로 속성명을 부여하는 것이 더 직관적이다
ER 모델을 읽기 쉽고 그 뜻을 쉽게 알아차릴 수 있도록 표현해야 한다