데이터 엔지니어링/Database

3. ERD 개요

427paul 2026. 6. 4. 22:30

1. 데이터 모델링(Data Modeling)의 이해

🔹 데이터 모델링이란?

현실 세계의 복잡한 비즈니스 요구사항(사람, 사물, 행위 등)을 추상화, 단순화, 명확화하여 컴퓨터 시스템이 이해하고 처리할 수 있는 데이터베이스 구조로 설계하는 전체 공정입니다.

특징

  • 추상화( Abstraction) : 정보를 일정한 형식에 맞춰 표현
  • 단순화(Silmplification) : 누구나 이해할 수 있게 표기법으로 규격화
  • 명확화(Clarity) : 오해를 방지하고 한 가지 의미로 해석되게 함

🔹 점진적으로 발전하는 3단계 파이프라인

데이터 모델링은 한 번에 완성되지 않으며, 비즈니스 관점에서 하드웨어 관점으로 구체화되는 생명 주기를 가집니다.

  1. 개념적 데이터 모델링 (Conceptual Modeling)
    • 목적: 핵심 엔터티(Entity)를 도출하고 비즈니스의 큰 그림을 그리는 단계
    • 특징: 세부 속성보다는 주요 주체 간의 '관계'에 집중하며, 기술적 요소(DBMS 종류 등)는 전혀 고려하지 않는 사용자 중심적 단계
  2. 논리적 데이터 모델링 (Logical Modeling)
    • 목적: 비즈니스 규칙을 가장 구체적이고 엄격하게 장립하는 단계
    • 특징: 모든 속성, 기본키(PK), 외래키(FK)를 상세히 정의합니다. 특정 hardware/DBMS에 종속되지 않는 가장 이상적인 구조를 지향하며, 정규화(Normalization)를 통해 데이터 중복을 완전히 제거
  3. 물리적 데이터 모델링 (Physical Modeling)
    • 목적: 설계된 논리 모델을 실제 데이터베이스 하드웨어에 이식하는 단계
    • 특징: 실제 저장 공간, 데이터 타입/크기 지정, 인덱스 전략 등 컴퓨터의 성능 최적화를 최우선으로 고려하며, 필요한 경우 조회 성능 극대화를 위해 반정규화(De-normalization)를 수행

2. ERD(Entity Relationship Diagram)의 이해

🔹 ERD의 정의 및 구성 요소

1976년 피터 첸에 의해 제안된 기법으로, 데이터 모델링의 결과물을 눈으로 볼 수 있게 표준화된 기호와 도형으로 도식화한 데이터베이스 최종 설계도(블루프린트)입니다.

  • 엔터티 (Entity): 관리 대상이 되는 독립적인 사물이나 사건 (ex: 학생, 상품, 주문) ➔ [도형: 직사각형]
  • 속성 (Attribute): 엔터티가 가진 세부 정보 및 특성 (ex: 이름, 학번, 가격) ➔ [도형: 타원]
  • 관계 (Relationship): 엔터티 간의 논리적인 연관성 (ex: 학생이 과목을 '수강한다') ➔ [도형: 마름모]

🔹 왜 실무에서 ERD가 반드시 필요한가?

  • 공통의 커뮤니케이션 도구: 기획자, 개발자, 고객이 각자 다른 용어를 쓰더라도 ERD라는 단 하나의 도면을 통해 오해 없이 데이터 구조를 일관되게 이해할 수 있음
  • 파급효과(Leverage Effect) 최소화:
    • 개발이 다 끝난 후에 데이터 구조를 바꾸면 API, UI, 비즈니스 로직 전체가 흔들려 수천 배의 수정 비용이 듦.
    • ERD 설계 단계에서 모순을 미리 발견하면 비용을 극적으로 아낄 수 있음
  • 성능 시뮬레이션 및 데이터 독립성: 실제 테이블을 생성하기 전, 테이블 간 조인(Join)의 효율성이나 인덱스 배치 전략을 미리 시뮬레이션할 수 있는 기초 자산이 됨

🛠️ 데이터 모델링 vs ERD 개념 명확히 쪼개기

구분 데이터 모델링 (Data Modeling) ERD (Entity Relationship Diagram
본질적 개념 데이터 구조를 설계해 나가는 추상적 아이디어 및 방법론 모델링 과정을 거쳐 눈에 보이게 찍어낸 시각적 산물
실질적 역할 비즈니스 업무 규칙 분석, 정규화, 성능 최적화 전략 수립 엔터티, 속성, 관계를 표준 기호와 도형으로 도식화
현실 비유 아키텍트의 생각의 흐름과 아키텍처 설계 과정 그 결과물로 탄생한 최종 건축 도면 (Blue Print)

'데이터 엔지니어링 > Database' 카테고리의 다른 글

6. 파이썬 기반 크롤러  (1) 2026.06.05
5. ERD 정규화 및 비정규화  (0) 2026.06.05
4. ERD 설계  (0) 2026.06.04
2. SQL 기초  (0) 2026.05.29
1. Database 개요  (0) 2026.05.29