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