TUTORIAL
비즈니스 요구사항에서 DB 설계까지: 실전 가이드
요구사항 분석부터 ERD 작성, SQL 스키마 구현까지 데이터베이스 설계의 전 과정을 단계별로 배웁니다.
럿지 AI 팀2025-01-0514분
비즈니스 요구사항 → DB 설계 프로세스
1
요구사항 분석
2
개념적 설계
3
논리적 설계
4
물리적 설계
1. 요구사항 분석
비즈니스 요구사항에서 핵심 엔티티와 관계를 식별합니다.
예시: 온라인 쇼핑몰
비즈니스 요구사항:
- - 고객이 상품을 주문할 수 있어야 함
- - 한 주문에 여러 상품 포함 가능
- - 고객은 여러 배송지 저장 가능
식별된 엔티티:
Customer
Order
Product
Address
2. 개념적 설계 (ERD)
┌─────────────┐ ┌─────────────┐
│ Customer │ │ Product │
├─────────────┤ ├─────────────┤
│ id (PK) │ │ id (PK) │
│ name │ │ name │
│ email │ │ price │
│ phone │ │ stock │
└──────┬──────┘ └──────┬──────┘
│ │
│ 1:N │ N:M
▼ ▼
┌─────────────┐ ┌─────────────┐
│ Order │────▶│ OrderItem │
├─────────────┤ ├─────────────┤
│ id (PK) │ │ order_id(FK)│
│ customer_id │ │ product_id │
│ order_date │ │ quantity │
│ status │ │ unit_price │
└─────────────┘ └─────────────┘3. 논리적 설계
customersid, name, email, phone, created_at
productsid, name, price, stock, category_id
ordersid, customer_id, status, total, ordered_at
order_itemsid, order_id, product_id, quantity, price
4. 물리적 설계 (SQL)
CREATE TABLE customers (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
email VARCHAR(255) UNIQUE NOT NULL,
phone VARCHAR(20),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_email (email)
);
CREATE TABLE orders (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
customer_id BIGINT NOT NULL,
status ENUM('pending','processing','shipped','delivered'),
total DECIMAL(12,2) NOT NULL DEFAULT 0,
ordered_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (customer_id) REFERENCES customers(id),
INDEX idx_customer_status (customer_id, status)
);설계 체크리스트
1
모든 엔티티에 PK 존재2
FK 관계 정의 완료3
정규화 (3NF) 확인4
인덱스 전략 수립5
NULL 허용 정책 결정6
명명 규칙 일관성핵심 성과
%
설계 오류 감소
%
개발 시간 단축
NF
정규화 수준
관련 태그
#Database
#ERD
#Schema Design
#SQL
#Architecture