1. 데이터 모델링(Data Modeling)의 이해
🔹 데이터 모델링이란?
현실 세계의 복잡한 비즈니스 요구사항(사람, 사물, 행위 등)을 추상화, 단순화, 명확화하여 컴퓨터 시스템이 이해하고 처리할 수 있는 데이터베이스 구조로 설계하는 전체 공정입니다.
특징
- 추상화( Abstraction) : 정보를 일정한 형식에 맞춰 표현
- 단순화(Silmplification) : 누구나 이해할 수 있게 표기법으로 규격화
- 명확화(Clarity) : 오해를 방지하고 한 가지 의미로 해석되게 함
🔹 점진적으로 발전하는 3단계 파이프라인
데이터 모델링은 한 번에 완성되지 않으며, 비즈니스 관점에서 하드웨어 관점으로 구체화되는 생명 주기를 가집니다.
- 개념적 데이터 모델링 (Conceptual Modeling)
- 목적: 핵심 엔터티(Entity)를 도출하고 비즈니스의 큰 그림을 그리는 단계
- 특징: 세부 속성보다는 주요 주체 간의 '관계'에 집중하며, 기술적 요소(DBMS 종류 등)는 전혀 고려하지 않는 사용자 중심적 단계
- 논리적 데이터 모델링 (Logical Modeling)
- 목적: 비즈니스 규칙을 가장 구체적이고 엄격하게 장립하는 단계
- 특징: 모든 속성, 기본키(PK), 외래키(FK)를 상세히 정의합니다. 특정 hardware/DBMS에 종속되지 않는 가장 이상적인 구조를 지향하며, 정규화(Normalization)를 통해 데이터 중복을 완전히 제거
- 물리적 데이터 모델링 (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 |