ZeroBase/CS

ERD(Entity Relation Diagram)

Red_Horse 2025. 9. 21. 18:34

데이터베이스를 구축할 때 가장 기초적인 뼈대 역할을 하며, 릴레이션 간의 관계들을 정의한 것입니다.

ERD는 시스템의 요구사항을 기반으로 작성되며, 이 ERD를 기반으로 데이터베이스를 구축합니다.

 

ERD의 역할

  • 요구사항 분석 → ERD 설계 → 데이터베이스 구현 → 애플리케이션 개발
  • ERD = 데이터베이스 설계의 청사진
    • 엔터티와 속성 정의
    • 엔터티 간 관계 설정
    • 제약 조건 명시
    • 데이터 무결성 보장
 

ERD의 구성 요소

 

1. 엔터티 (Entity)

실세계의 객체나 개념을 데이터베이스에서 표현한 것

ERD 표기법:
┌─────────────┐
│   고객       │  ← 엔터티 (사각형)
│ (Customer)  │
└─────────────┘

특징:
- 독립적으로 존재할 수 있는 객체
- 고유하게 식별 가능
- 여러 속성을 가짐
 
 

엔터티 종류

강한 엔터티 (Strong Entity):
┌─────────────┐
│    고객      │  독립적 존재, 자체 기본키 보유
└─────────────┘

약한 엔터티 (Weak Entity):
╔═════════════╗
║   주문상세    ║  다른 엔터티에 의존, 이중선 표시
╚═════════════╝
 
 

2. 속성 (Attribute)

엔터티의 특성이나 성질을 나타내는 데이터

속성 표기법:
        이름
         ○
         │
┌─────────────┐      나이
│    고객      │────────○
└─────────────┘
         │
         ○
       주소

○ : 일반 속성
◐ : 기본키 속성 (속성에 밑줄)
◎ : 복합 속성
 
 

속성의 종류

  • 단순 속성: 더 이상 분해할 수 없는 속성 (이름, 나이)
  • 복합 속성: 여러 하위 속성으로 구성 (주소 = 시+구+동)
  • 단일값 속성: 하나의 값만 가짐 (주민등록번호)
  • 다중값 속성: 여러 값을 가질 수 있음 (전화번호)
  • 저장 속성: 실제 저장되는 값 (생년월일)
  • 유도 속성: 다른 속성으로부터 계산 (나이 = 현재년도 - 생년)

3. 관계 (Relationship)

엔터티 간의 연관성을 나타냄

관계 표기법:
┌─────────────┐      ◇      ┌─────────────┐
│    고객      │──────주문────│     상품     │
└─────────────┘             └─────────────┘

◇ : 관계 (다이아몬드)
── : 연결선
 
관계의 차수 (Cardinality)

 

1:1 관계 (일대일)

┌─────────────┐   1      ◇      1     ┌─────────────┐
│    직원      │──────────소유──────────│    주차공간   │
└─────────────┘                       └─────────────┘

의미: 한 직원은 최대 하나의 주차공간을 가지고,
     하나의 주차공간은 최대 한 명의 직원이 사용
 
 

1:N 관계 (일대다)

┌─────────────┐     1      ◇      N   ┌─────────────┐
│    부서      │──────────소속──────────│     직원     │
└─────────────┘                       └─────────────┘

의미: 하나의 부서에는 여러 직원이 소속되지만,
     각 직원은 하나의 부서에만 소속
 
 

M:N 관계 (다대다)

┌─────────────┐    M      ◇      N    ┌─────────────┐
│   학생       │──────────수강──────────│     과목     │
└─────────────┘                       └─────────────┘

의미: 한 학생은 여러 과목을 수강하고,
     하나의 과목은 여러 학생이 수강
 
 

ERD 작성 과정

 

1단계: 요구사항 분석

예시: 온라인 쇼핑몰 시스템

요구사항
  • 고객은 회원가입 후 상품을 주문할 수 있다
  • 하나의 주문에는 여러 상품이 포함될 수 있다
  • 각 상품은 특정 카테고리에 속한다
  • 고객은 여러 주소를 등록할 수 있다
  • 주문 상태를 추적할 수 있어야 한다
 

2단계: 엔터티 추출

  • 고객
  • 주문
  • 상품
  • 카테고리
  • 주소
 

3단계: 속성 정의

고객 엔터티 속성:
┌─────────────┐
│    고객      │
│─────────────│
│ 고객ID (PK)  │
│ 이름         │
│ 이메일       │
│ 전화번호      │
│ 가입일       │
└─────────────┘

상품 엔터티 속성:
┌─────────────┐
│    상품      │
│─────────────│
│ 상품ID (PK)  │
│ 상품명       │
│ 가격         │
│ 재고수량      │
│ 설명         │
│ 카테고리ID(FK)│
└─────────────┘
 
 

4단계: 관계 설정

완성된 ERD:
               1        N
┌─────────────┐          ┌─────────────┐
│    고객      │─────주문──│     주문     │
└─────────────┘          └─────────────┘
        │                       │
        │1                      │
        │                       │M
        │N              ┌─────────────┐
┌─────────────┐         │    주문상세   │
│    주소      │         └─────────────┘
└─────────────┘                 │
                                │N
                                │
                                │1
                        ┌─────────────┐          ┌─────────────┐
                        │    상품      │─────속함──│    카테고리   │
                        └─────────────┘  N    1  └─────────────┘
 

'ZeroBase > CS' 카테고리의 다른 글

데이터베이스(조인 알고리즘)  (0) 2025.09.25
데이터베이스 Join  (0) 2025.09.24
데이터베이스 관계와 키(Key)  (1) 2025.09.16
ENUM과 SET  (0) 2025.09.16
힙(Heap)  (0) 2025.09.15