ERD 개요 및 데이터 모델링
1. 데이터 모델링의 이해
1.1 정의 및 개요
- 정의
- 현실 세계에 존재하는 사람, 사물, 행위 등의 비즈니스 요구사항을 추상화하여,
- 컴퓨터가 이해하고 처리할 수 있도록 약속된 표기법(기호, 도형)에 맞추어
- 데이터베이스 구조로 추상화, 단순화, 명확화하는 전체 설계 공정
- 핵심 3대 특징
- 추상화(Abstraction): 복잡한 현실 세계를 일정한 형식에 맞춰 간략하게 표현
- 단순화(Simplification): 누구나 이해할 수 있게 복잡성을 제거하고 제한된 표기법으로 규격화
- 명확화(Clarity): 대상의 의미를 명확하게 하여 오해를 방지하고 한 가지 의미로 해석되게 함
1.2 데이터 모델링의 3단계 구성
- 데이터 모델링은 한 번에 완성되는 것이 아님
- 추상적인 개념에서 구체적인 물리적 코드로 점진적으로 발전하는 3단계 파이프라인을 가짐
개념적 데이터 모델링 (Conceptual Modeling)
- 목적 : 핵심 엔터티를 도출하고 비즈니스의 큰 그림을 그리는 단계
- 특징
- 사용자 중심적
- 상세한 속성보다는 핵심 주체들 간의 ‘관계’에 집중
- 기술적인 요소(DBMS 종류 등)는 전혀 고려하지 않음
- 주요 기술 : 엔터티-관계 모델링(E-R Modeling)
논리적 데이터 모델링 (Logical Modeling)
- 목적 : 비즈니스 규칙을 가장 구체적이고 엄격하게 정립하는 단계
- 특징
- 테이블의 모든 속성, 기본키(PK)/외래키(FK) 정의
- 특정 DBMS에 종속되지 않는 가장 이상적인 데이터 구조를 만듦
- 주요 기술 : 정규화(Normalization)를 통해 중복 데이터를 완전히 제거하고 무결성을 확보
물리적 데이터 모델링 (Physical Modeling)
- 목적 : 설계된 모델을 실제 하드웨어와 DBMS에 이식하는 단계
- 특징 : 컴퓨터의 성능(성능 최적화, 저장 공간, 인덱스)을 고려
- 주요 기술 : 테이블 명명 규칙 적용, 데이터 타입 및 크기 지정, 조회 성능 극대화를 위한 반정규화(De-normalization) 및 인덱스 전략 수립

1.3 중요성과 필요성
잘못된 데이터 모델링은 프로젝트 후반부에 시스템 전체를 무너뜨리는 부실 공사의 원인이 됨
- 파급효과(Leverage Effect) 최소화
- 개발이 상당 부분 진행된 상태에서 데이터 구조를 변경하면 시스템 전반(API, UI, 비즈니스 로직)이 흔들림
- 모델링 단계에서 문제를 발견해야 수정 비용을 수천 배 아낄 수 있음
- 복잡한 비즈니스의 문서화
- 거대한 기업 시스템의 업무 규칙을 코드가 아닌 데이터 구조 자체로 명확하게 문서화하여 보존
- 업무 규칙의 예: 반품은 배송 완료 후 7일 이내에만 가능하며, 마일리지는 소멸함
- 거대한 기업 시스템의 업무 규칙을 코드가 아닌 데이터 구조 자체로 명확하게 문서화하여 보존
- 데이터 독립성 확보
- 애플리케이션(프로그램 코드)이 바뀌더라도 데이터 구조는 안정적으로 유지되도록 설계 🡲 시스템의 유지보수성을 극대화
1.4 데이터 모델링의 활용
- 신규 시스템 구축 (SI)
- 고객의 요구사항을 수렴하여 데이터 아키텍처를 뼈대부터 잡을 때 사용
- 레거시 시스템 고도화 (Reverse Engineering)
- 오래되고 엉망이 된 기존 데이터베이스를 역으로 추적하여 모델링 도구로 분석한 뒤,
- 구조적 문제점을 진단하고 개선
- 데이터 표준화 지침 수립
- 기업 내 여러 부서에서 사용하는 데이터 명칭을 통일하는 전사 데이터 거버넌스의 핵심 도구로 활용
- 예: 어떤 부서는 ‘고객명’, 어떤 부서는 ‘회원아이디’
- 기업 내 여러 부서에서 사용하는 데이터 명칭을 통일하는 전사 데이터 거버넌스의 핵심 도구로 활용
2. ERD의 이해 개요
2.1 정의 및 개요
- ERD(Entity Relationship Diagram)
- 엔터티(Entity), 관계(Relationship), 속성(Attribute)을 정의하고 이들의 관계를 도식화한 것
- 1976년 피터 첸(Peter Chen)에 의해 처음 제안됨
- 복잡한 비즈니스 로직을 시각화하고, 데이터 간의 구조를 설계하는 설계도
- 전략적 관점에서 데이터의 ‘존재’와 ‘관계’를 규명하는 시각적 도구
- 현재 관계형 데이터베이스(RDBMS) 설계의 표준으로 자리 잡고 있으며,
- 데이터베이스를 구축할 때 가장 기초가 되는 데이터 모델링의 정수로 평가됨
- 엔터티(Entity), 관계(Relationship), 속성(Attribute)을 정의하고 이들의 관계를 도식화한 것
- 핵심 구성 요소
- 엔터티 (Entity) : 관리 대상이 되는 ‘사물’이나 ‘사건’ (예: 학생, 주문, 상품)
- 속성 (Attribute) : 엔터티가 가진 세부 정보 (예: 학생의 이름, 학번, 전공)
- 관계 (Relationship) : 엔터티 간의 연관성 (예: 학생이 수강한다 과목을)

2.2 ERD의 필요성
- 커뮤니케이션 도구
- 기획자, 개발자, 고객이 서로 다른 용어를 사용하더라도
- ERD라는 공통의 설계도를 통해 데이터 구조를 명확히 이해할 수 있음
- 데이터 무결성 확보
- 설계 단계에서 중복 데이터를 방지
- 데이터 간의 논리적 모순을 미리 발견할 수 있음
- 시스템 확장성:
- 요구사항이 변경되어 데이터 구조를 수정해야 할 때,
- 영향도를 한눈에 파악하여 효율적으로 대응할 수 있음
2.3 ERD의 중요성
ERD는 단순한 그림을 넘어 시스템의 성패를 결정짓는 중요한 역할
- 성능 최적화
- 물리적 데이터베이스를 생성하기 전, 조인(Join)의 효율성이나 인덱스 전략을 미리 시뮬레이션할 수 있는 기초 자료가 됨
- 문서화 자산
- 유지보수 단계에서 시스템의 전체 구조를 파악하는 가장 강력한 가이드라인이 됨
- 설계도 없는 건축물이 위험하듯, ERD 없는 DB는 운영 중 막대한 비용을 초래함
- 데이터 표준화
- 기업 내에서 사용하는 용어와 데이터 형식을 통일하여 데이터의 일관성을 유지함
2.4 데이터 모델링과 ERD의 연관성
| 구분 | 데이터 모델링 (Data Modeling) | ERD (Entity Relationship Diagram) |
|---|---|---|
| 개념 | 데이터 구조를 설계하는 추상적 아이디어 및 방법론 | 모델링 결과를 눈으로 볼 수 있게 만든 시각적 산물 |
| 역할 | 업무 규칙 분석, 정규화, 성능 최적화 전략 수립 | 엔터티, 속성, 관계를 표준 기호로 도식화 |
| 관계성 | 생각의 흐름이자 아키텍처 엔진 | 엔진의 구동 결과가 반영된 블루프린트(도면) |
- 데이터 모델링은 ‘사고와 설계의 과정(Process)’이고, ERD는 그 결과물로 나온 ‘시각적 도면(Artifact)’
- ERD는 데이터 모델링이라는 거대한 철학이자 기술을 화면에 기호로 찍어내는 도구
- 또한 ERD는 데이터베이스라는 건물을 짓기 위한 최종 설계도
- 이를 통해 데이터의 흐름을 통제하고, 효율적인 시스템 운영의 기반을 마련할 수 있음
- 중요한 것은 이 그림 뒤에 숨겨진 데이터 모델링의 논리와 비즈니스 규칙을 이해하는 것
- 뛰어난 개발자와 아키텍트에게 ERD 작성 능력은 코딩 실력만큼이나 필수적인 역량