Projects/[Spring] Coffee Shop Project

[데이터베이스] 1. 데이터 모델링과 ERD 설계

montmer27 2026. 3. 26. 22:27

1. 데이터 모델링이란

- 데이터 모델링의 개념

정보 시스템 구축의 대상이 되는 데이터를 약속된 표기법에 의해 표기하는 것을 의미.
실제 데이터베이스 구축에 활용

- 데이터 모델링의 절차

1. 요구사항 수집 : 어떤 업무를 데이터화하여 모델링할 것인지 결정

  1. 커피 주문에 필요한 메뉴를 구성하고 조회가 가능해야 한다. --> 메뉴 객체
  2. 커피 주문은 포인트로 가능하며, 포인트를 충전할 수 있다. --> 포인트 객체 또는 유저에 포인트 필드로 존재
  3. 커피 주문 내역을 통해 인기 있는 메뉴를 추천한다. (최근 7일간 인기있는 메뉴 3개) --> 주문 내역 객체
  4. 메뉴별 주문 횟수가 정확해야 한다. --> 각 주문 내역은 메뉴별 주문 횟수를 담고 있어야 함
  5. 동시성, 데이터 일관성을 고려하여야 한다. --> 필요한 곳에 Lock 구현
  6. 다수 서버 환경에서도 안정적으로 동작하는 커피숍 주문 시스템 구현
  7. 주문 내역을 데이터 수집 플랫폼으로 실시간 전송해야 한다. --> 주문 내역 원격 데이터베이스에 기록하여 관리

2. 개념적 데이터 모델링 : 하고자 하는 일의 데이터 간의 관계를 구상하는 단계
객체와 그들 간의 관계를 발견표현하기 위해 ERD 다이어그램 생성
*피터 첸 표기법

릴레이션 스키마 - PK   FK

  • 사용자(user)
    • 식별자(id)
    • 이름(name)
    • 포인트 잔액(point_balance) <-- 조회 성능을 위한 cache column: 원본이 바뀌었을 때 동기화돼야 함
  • 포인트 이력(point_transaction)
    • 식별자(id)
    • 회원(user_id)
    • 주문내역(order_id, nullable) <-- 충전 시에는 null값
    • 거래량(amount) <-- 부호로 관리하여 잔액 계산 편의 도모
    • 생성 시각(created_at)
  • 메뉴 (menu)
    • 식별자(id)
    • 이름(name)
    • 가격(price)
  • 주문 내역 (order)
    • 식별자(id)
    • 주문자(user_id)
    • 총 가격 (total_price)
  • 주문 상품 (order_product)
    • 식별자 (id)
    • 주문(order_id)
    • 메뉴(menu_id)
    • 주문상품명(name) <-- snapshot: 주문 시점 이후 변경되더라도 동기화되면 안 됨
    • 개당 가격(unit_price) <-- snapshot
    • 수량(quantity)

 

2. ERD 설계

 

참고

 

📋 데이터 모델링 개념 & ERD 다이어그램 작성 💯 총정리

데이터 모델링 이란? 데이터 모델링이란 정보시스템 구축의 대상이 되는 업무 내용을 분석하여 이해하고 약속된 표기법에 의해 표현하는걸 의미한다. 그리고 이렇게 분석된 모델을 가지고 실제

inpa.tistory.com