# ERD (Entity Relationship Diagram) 소개
## 1. ERD란 무엇인가
ERD(Entity Relationship Diagram)는 **데이터베이스 구조를 시각적으로 표현하는 다이어그램**이다.
데이터베이스를 구성하는 주요 객체(Entity), 속성(Attribute), 그리고 객체 간의 관계(Relationship)를 한눈에 이해할 수 있도록 도식화한 설계 도구이다.
ERD는 다음과 같은 목적을 가진다.
- 데이터베이스 구조를 직관적으로 이해
- 요구사항 분석 결과를 설계로 반영
- 개발자, 기획자, 데이터 분석가 간 의사소통 도구 역할
- 구현 전에 설계 오류를 조기에 발견
---
## 2. ERD의 주요 구성 요소
### 2.1 Entity (엔터티)
Entity는 데이터베이스에서 관리해야 할 **대상 객체**이다.
보통 테이블로 구현된다.
예시:
- User
- Order
- Product
### 2.2 Attribute (속성)
Attribute는 Entity가 가지는 **데이터 항목**이다.
테이블의 컬럼에 해당한다.
예시:
- User.id
- User.email
- Product.price
### 2.3 Relationship (관계)
Entity 간의 연관성을 표현한다.
예시:
- User 1명은 여러 개의 Order를 가질 수 있음 (1:N 관계)
- Student와 Course는 M:N 관계
### 2.4 Key
- Primary Key (PK): 엔터티를 유일하게 식별하는 키
- Foreign Key (FK): 다른 엔터티의 PK를 참조하는 키
---
## 3. 관계 유형 (Cardinality)
| 관계 유형 | 설명 |
|------------|------|
| 1:1 | 한 엔터티가 하나의 엔터티와만 관계 |
| 1:N | 하나가 여러 개를 가짐 |
| N:M | 여러 개가 여러 개와 관계 |
| Optional | 필수가 아닌 관계 |
| Mandatory | 반드시 존재해야 하는 관계 |
---
## 4. ERD 표기 방법
### 4.1 Crow’s Foot 표기법
관계의 수를 발 모양으로 표현하는 방식이다.
- | : 1개
- < : 여러 개
- O : 선택적
### 4.2 Chen 표기법
- Entity: 사각형
- Relation: 마름모
- Attribute: 타원
---
## 5. ERD 설계 절차
### Step 1. 요구사항 분석
업무 흐름 이해 및 데이터 요구사항 정리
### Step 2. Entity 도출
명사 위주로 테이블 후보 도출
### Step 3. Attribute 정의
각 Entity에 필요한 속성 정의
### Step 4. Key 설정
Primary Key 및 Foreign Key 정의
### Step 5. 관계 설정
엔터티 간 관계 정의 및 카디널리티 설정
### Step 6. 정규화 검토
중복 제거 및 데이터 무결성 확보