지금까지 정리한 엔티티, 속성, 관계, 식별자, 카디널리티/참여도를 바탕으로 ERD(Entity Relationship Diagram) 를 완성한다.
7-1. ERD 작성 절차 예시
- 엔티티 목록 정리
- 요구 사항 분석을 통해 도출한 엔티티를 나열한다.
- 예: 회원, 상품, 주문, 주문상품, 결제, 배송 …
- 각 엔티티의 주요 속성 정리
- 업무에서 꼭 필요하고 자주 사용하는 속성을 적는다.
- 이때 후보 식별자도 함께 표시한다.
- 식별자(PK) 선정
- 엔티티마다 PK를 한 개 이상 지정한다.
- 필요하면 자연 식별자 + 대리 키 조합도 고려한다.
- 엔티티 간 관계 도출
- 업무 시나리오를 다시 읽으면서 “어떤 엔티티가 어떤 엔티티와 연결되는가”를 정리한다.
- 예: 회원 – 주문, 주문 – 주문상품, 주문상품 – 상품, 주문 – 결제, 주문 – 배송 등
- 카디널리티와 참여도 표기
- 각 관계에 대해 1:1, 1:N, N:M 여부를 정하고, 필수/선택 참여를 명시한다.
- 다대다 관계는 연관 엔티티로 분해
- ERD 상에 N:M 관계가 보인다면, 중간에 연관 엔티티를 추가해 1:N, N:1 구조로 바꾼다.
- 명명 규칙, 정규화 수준 검토
- 엔티티/속성/관계 이름이 일관된지 확인한다.
- 중복 속성, 반복 속성, 다중값 속성을 정규화할 수 있는지 검토한다.
7-2. 간단한 쇼핑몰 ERD 텍스트 예시
텍스트로 ERD 구조를 간단하게 표현하면 다음과 같이 정리할 수 있다.
[회원]
- 회원ID (PK)
- 이름
- 이메일
- 전화번호
- 가입일자
[주문]
- 주문ID (PK)
- 회원ID (FK → 회원)
- 주문일시
- 주문상태
- 총주문금액
[주문상품]
- 주문상품ID (PK)
- 주문ID (FK → 주문)
- 상품ID (FK → 상품)
- 주문수량
- 주문단가
[상품]
- 상품ID (PK)
- 상품명
- 판매가
- 재고수량
관계 요약
- 회원(1) — (N)주문
- 주문(1) — (N)주문상품
- 상품(1) — (N)주문상품
이 구조를 ERD 도구(draw.io, ERDCloud, MySQL Workbench 등)로 옮기면, 시각적인 ERD 다이어그램을 손쉽게 완성할 수 있다.