[데이터베이스] ERD (Entity-Relationship Diagram)

2025. 1. 16. 21:19·CS/데이터베이스

"데이터베이스 설계의 시작은 ERD다."

ERD란 무엇인가?

ERD(Entity-Relationship Diagram)는
데이터베이스를 설계할 때, 데이터 간의 관계를 시각화하는 다이어그램입니다.

  • Entity(엔티티): 독립적으로 존재할 수 있는 데이터 객체 (ex. 사용자, 주문)
  • Relationship(관계): 엔티티 간의 연결 (ex. 사용자가 주문한다)
  • Diagram(다이어그램): 이것을 그림으로 표현한 것

쉽게 말하면,
"데이터베이스에 어떤 테이블이 있고, 테이블 간에 어떤 관계가 있는지 그림으로 그린 것"입니다.

ERD가 왜 필요한가?

필요성 설명
데이터베이스 구조 설계 테이블 구조를 논리적으로 설계
팀원 간 소통 개발자, 기획자, 디자이너 모두 이해할 수 있게
시스템 확장성 고려 미래에 데이터가 확장될 것을 고려해서 설계
오류 사전 방지 설계 단계에서 관계 오류나 중복을 발견

특히, 협업하는 프로젝트에서는 ERD가 사실상 필수입니다.

ERD의 구성 요소

ERD는 기본적으로 3가지 요소로 이루어져 있습니다.

Entity (엔티티)

  • 데이터베이스의 테이블에 해당합니다.
  • 명사(Noun)로 표현합니다.
    (ex. User, Order, Product)

엔티티에는 속성(Attribute)이 포함됩니다.

예시 속성
User id, name, email, password
Order id, user_id, total_price

 

Attribute (속성)

  • 테이블의 컬럼을 의미합니다.
  • 엔티티의 세부 정보입니다.
  • Primary Key (기본키), Foreign Key (외래키), Unique, Not Null 같은 제약조건을 가질 수 있습니다.

Relationship (관계)

  • 두 엔티티 간의 연결을 표현합니다.
  • 관계에는 Cardinality(카디널리티)가 매우 중요합니다.
관계 종류 설명 예시
1:1 (일대일) 한 유저는 하나의 프로필만 가짐 User - Profile
1:N (일대다) 한 유저는 여러 주문을 할 수 있음 User - Order
N:M (다대다) 여러 학생이 여러 수업을 수강할 수 있음 Student - Class

 

ERD 작성 방법

요구사항 분석

  • 시스템에 필요한 데이터가 무엇인지 파악합니다.

엔티티 도출

  • 데이터베이스에 저장할 주요 객체(명사)를 정리합니다.

속성 정의

  • 각 엔티티에 필요한 속성을 정리합니다.
  • PK (Primary Key)를 반드시 지정합니다.

관계 정의

  • 엔티티 간의 연결을 설정합니다.
  • 관계를 1:1, 1:N, N:M 중에서 구분합니다.

제약 조건 설정

  • Not Null, Unique, Foreign Key 등 필요한 제약 조건을 설정합니다.

ERD 작성 시 주의할 점

  • 중복 데이터를 최대한 피해야 합니다. (정규화)
  • 외래키(FK)를 통해 관계를 정확히 맺어야 합니다.
  • 카디널리티(관계 수)를 잘못 설정하면 나중에 큰 문제가 됩니다.
  • 필요한 경우에는 의도적으로 비정규화(Denormalization)를 고려합니다.
    (성능이 매우 중요한 경우)

ERD 예시

예시: 쇼핑몰 데이터베이스 ERD

[User]
- id (PK)
- name
- email
- password

[Product]
- id (PK)
- name
- price
- stock

[Order]
- id (PK)
- user_id (FK → User.id)
- order_date
- total_price

[OrderItem]
- id (PK)
- order_id (FK → Order.id)
- product_id (FK → Product.id)
- quantity
- price_at_purchase

관계 설명

  • User 1 : N Order
  • Order 1 : N OrderItem
  • Product 1 : N OrderItem

즉,

  • 한 사용자는 여러 주문을 할 수 있고,
  • 하나의 주문은 여러 제품을 포함할 수 있으며,
  • 각각의 제품은 여러 주문에 등장할 수 있습니다.

마무리 요약

항목 요약
ERD란 엔티티(Entity)와 관계(Relationship)를 시각적으로 나타낸 것
왜 필요한가 데이터베이스 구조 설계, 팀 소통, 오류 예방
핵심 요소 Entity, Attribute, Relationship
작성 요령 요구사항 분석 → 엔티티 도출 → 속성 정의 → 관계 정의
주의점 중복 최소화, 정확한 관계 설정, 필요한 경우 비정규화 고려

 

728x90
'CS/데이터베이스' 카테고리의 다른 글
  • [데이터베이스] NoSQL
  • [데이터베이스] 정규화
츄핑
츄핑
    250x250
  • 츄핑
    개발로그
    츄핑
  • 전체
    오늘
    어제
    • 분류 전체보기
      • CS
        • 자료구조
        • 알고리즘
        • 운영체제
        • 네트워크
        • 데이터베이스
        • 인프라
        • Web
      • PS
        • 백준
      • JavaScript
        • React
        • Express
        • NestJS
        • TypeScript
        • Node.js
        • Electron
      • Java
        • Spring
      • Dart
        • Flutter
      • PHP
        • CodeIgniter
      • etc
        • 이산수학
        • 선형대수학
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    오블완
    티스토리챌린지
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
츄핑
[데이터베이스] ERD (Entity-Relationship Diagram)
상단으로

티스토리툴바