TUTORIAL

비즈니스 요구사항에서 DB 설계까지: 실전 가이드

요구사항 분석부터 ERD 작성, SQL 스키마 구현까지 데이터베이스 설계의 전 과정을 단계별로 배웁니다.

럿지 AI 팀
2025-01-05
14
비즈니스 요구사항 → 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