ERD 개요 및 데이터 모델링

1. 데이터 모델링의 이해

1.1 정의 및 개요

  • 정의
    • 현실 세계에 존재하는 사람, 사물, 행위 등의 비즈니스 요구사항을 추상화하여,
    • 컴퓨터가 이해하고 처리할 수 있도록 약속된 표기법(기호, 도형)에 맞추어
    • 데이터베이스 구조로 추상화, 단순화, 명확화하는 전체 설계 공정
  • 핵심 3대 특징
    1. 추상화(Abstraction): 복잡한 현실 세계를 일정한 형식에 맞춰 간략하게 표현
    2. 단순화(Simplification): 누구나 이해할 수 있게 복잡성을 제거하고 제한된 표기법으로 규격화
    3. 명확화(Clarity): 대상의 의미를 명확하게 하여 오해를 방지하고 한 가지 의미로 해석되게 함

1.2 데이터 모델링의 3단계 구성

  • 데이터 모델링은 한 번에 완성되는 것이 아님
  • 추상적인 개념에서 구체적인 물리적 코드로 점진적으로 발전하는 3단계 파이프라인을 가짐
  1. 개념적 데이터 모델링 (Conceptual Modeling)

    • 목적 : 핵심 엔터티를 도출하고 비즈니스의 큰 그림을 그리는 단계
    • 특징
      • 사용자 중심적
      • 상세한 속성보다는 핵심 주체들 간의 ‘관계’에 집중
      • 기술적인 요소(DBMS 종류 등)는 전혀 고려하지 않음
    • 주요 기술 : 엔터티-관계 모델링(E-R Modeling)
  2. 논리적 데이터 모델링 (Logical Modeling)

    • 목적 : 비즈니스 규칙을 가장 구체적이고 엄격하게 정립하는 단계
    • 특징
      • 테이블의 모든 속성, 기본키(PK)/외래키(FK) 정의
      • 특정 DBMS에 종속되지 않는 가장 이상적인 데이터 구조를 만듦
    • 주요 기술 : 정규화(Normalization)를 통해 중복 데이터를 완전히 제거하고 무결성을 확보
  3. 물리적 데이터 모델링 (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) : 관리 대상이 되는 ‘사물’이나 ‘사건’ (예: 학생, 주문, 상품)
    • 속성 (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 작성 능력은 코딩 실력만큼이나 필수적인 역량

© 2020. AiDALab Co. All rights reserved.

Powered by Hydejack v9.2.1