데이터 모델링 초안 : 비즈니스 룰에서 ERD까지

2025. 9. 29. 14:58·데이터 분석/06. 데이터 모델링

이번 글에서는 쇼핑몰 서비스를 예로 들어,

비즈니스 룰에서 어떻게 Entity와 Relationship을 도출하고, 최종적으로 ERD를 설계하는지 살펴보겠습니다.


1. 비즈니스 룰 살펴보기

쇼핑몰 서비스에서의 주요 비즈니스 룰은 다음과 같다

비즈니스 룰

  1. 유저는 상품을 주문할 수 있다.
  2. 동일한 주문 내역은 한 번의 배달로, 3일 안에 유저가 지정한 배송지에 전달돼야 한다.
    만약 지연될 경우, 유저에게 최대한 빨리 알려야 한다.
  3. 유저는 상품에 대한 평가를 남길 수 있다.
    평가는 별점(1~5점)과 200자 이내의 줄글로 작성된다.

2. 명사와 동사 추출하기

비즈니스 룰에서 명사와 동사를 먼저 추출한다.

  • 명사는 Entity와 Attribute 후보
  • 동사는 Relationship 후보
비즈니스 룰  명사  (Entity/Attribute 후보) 동사 (Relationship 후보)
1. 유저는 상품을 주문할 수 있다 유저, 상품, 주문 주문하다
2. 동일한 주문 내역은 한 번의 배달로, 배송지 주문내역, 배송지, 유저 전달하다
3. 유저는 상품에 평가를 남길 수 있다 유저, 상품, 평가, 별점, 줄글 남기다

3. Entity와 Attribute 구분하기

추출한 명사 중에서 독립적으로 존재할 수 있는 Entity와 Entity의 성질을 설명하는 Attribute를 구분합니다.

(1) 유저 - 상품 - 주문

"유저는 상품을 주문할 수 있다."

  • 유저(User) → Entity
  • 상품(Product) → Entity
  • 주문(Order) → 처음에는 관계로 생각할 수 있지만, 주문일시, 배송지, 상태 등 다양한 속성을 갖기 때문에 Entity로 격상

(2) 배송지

"동일한 주문 내역은 유저가 지정한 배송지로 전달돼야 한다."

  • 배송지(Address) → 특정 주문에 속하는 정보이므로 주문(Order)의 Attribute가 된다.

(3) 평가

"유저는 상품에 대한 평가를 남길 수 있다."

  • 평가(Review) → Entity
  • 별점(Rating) → Attribute (1~5점 자연수)
  • 줄글(Comment) → Attribute (200자 이내)

💡 구조 이해:
유저와 상품 사이에는 평가(Review)가 다리 역할을 하며, 유저는 평가를 남기고, 상품은 평가를 받는다.


4. 최종 Entity 설계

Entity 주요 attribute 예시
유저(User) user_id, 이름, 연락처
상품(Product) product_id, 상품명, 가격, 재고
주문(Order) order_id, 주문일시, 배송지, 상태
평가(Review) review_id, 별점, 줄글, 작성일시

5. ERD 설계

위에서 도출한 Entity와 관계를 바탕으로 ERD를 그려보면 아래와 같다.

[유저] ---< [주문] >--- [상품]
   |                     |
   |                     |
   +----< [평가] >-------+
 
  • 유저(User)와 상품(Product) 사이에 주문(Order)이 다리 역할
  • 평가(Review)는 유저와 상품을 연결하며 리뷰 정보를 저장

6. 정리

데이터 모델링은 다음 과정을 거쳐 완성된다.

  1. 비즈니스 룰 작성 → 서비스가 지켜야 할 규칙을 텍스트로 정의
  2. 명사·동사 추출 → 명사는 Entity/Attribute, 동사는 Relationship 후보
  3. Entity와 Attribute 구분 → 독립된 개체인지 속성인지 판단
  4. ERD 설계 → Entity와 관계를 시각화

📌 핵심 포인트

  • 처음에는 주문을 단순히 관계(Relationship)로 볼 수 있지만, 배송지, 주문일자, 상태 등 속성이 많아지면 Entity로 격상된다.
  • 평가는 유저와 상품을 연결하는 중간 Entity로, 다대다(M:N) 관계를 해소한다.
  • 비즈니스 룰을 기반으로 명확하게 구조를 정의하면, 이후 개발 과정에서 혼선을 줄이고 유지보수가 쉬워진다.

'데이터 분석 > 06. 데이터 모델링' 카테고리의 다른 글

카디널리티 관계 유형  (0) 2025.09.29
식별자의 종류와 주식별자의 특성  (0) 2025.09.29
Attribute 후보에 대한 예외 경우  (0) 2025.09.29
[데이터 모델링] 모델링의 시작! 비즈니스 룰 이해하기  (0) 2025.09.29
[데이터 모델링] 데이터를 어떻게 저장해야할까  (0) 2025.09.25
'데이터 분석/06. 데이터 모델링' 카테고리의 다른 글
  • 식별자의 종류와 주식별자의 특성
  • Attribute 후보에 대한 예외 경우
  • [데이터 모델링] 모델링의 시작! 비즈니스 룰 이해하기
  • [데이터 모델링] 데이터를 어떻게 저장해야할까
Growth DA Log
Growth DA Log
Growth DA Log 님의 블로그 입니다.
  • Growth DA Log
    Growth DA Log님의 블로그
    Growth DA Log
  • 전체
    오늘
    어제
    • 분류 전체보기 (125)
      • TIS_COMPANY (6)
      • 코딩 테스트 (61)
        • 01. Python (3)
        • 02. SQL (58)
      • 데이터 분석 (53)
        • 01. BigQuery (9)
        • 02. GA4 (1)
        • 02-1. GA4를 더 잘 다루기 위한 마케팅 개.. (5)
        • 03. streamlit (5)
        • 04. Git (12)
        • 05. 데이터 엔지니어링 (3)
        • 06. 데이터 모델링 (11)
        • 07. Excel (0)
        • 08. Tableau (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    쿼리테스트
    rank
    이행성
    AARRR
    git
    tableaubootcamp
    ROW_NUMBER
    프로그래머스
    윈도우함수
    Reset
    코딩테스트
    cross_join
    코테
    DENSE_RANK
    tableau
    SQL
    streamlit
    코드잇스프린트후기
    revert
    solvesql
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Growth DA Log
데이터 모델링 초안 : 비즈니스 룰에서 ERD까지
상단으로

티스토리툴바