← posts/b.log()

blog92@web:~$ cat posts/db-design-04-erd-notation.md

DATABASE3 min read

DB 설계 A to Z 4강 — ERD 표기법

Chen, IE(Crow's Foot), IDEF1X, Barker, UML 표기법을 대조하고 카디널리티를 반대로 읽는 실수를 막는 규칙, 개념 ERD와 물리 ERD를 분리하는 실무 팁을 정리한다.

3강에서 만든 개념 모델을 그림으로 표현하는 방법입니다.

1. 표기법이 여러 개인 이유

같은 모델도 도구와 조직에 따라 다르게 그립니다. 표기법을 몰라서 카디널리티를 반대로 읽는 실수가 흔합니다.

표기법주 사용처특징
Chen교과서, 개념 설계관계를 마름모로 그림, 속성을 타원으로
IE (Crow's Foot)실무 대부분, ERwin, DBeaver, dbdiagram까마귀발로 "다(N)" 표현
IDEF1X미 정부 표준, ERwin 옵션식별 관계를 실선, 비식별을 점선
BarkerOracle 진영필수는 실선, 선택은 점선
UML 클래스 다이어그램객체지향 설계1..*, 0..1 숫자 표기

2. Chen 표기법

text
 (항목번호)   (무게)              (단계코드)
      \       /                      |
     ┌────────┐     /‾‾‾‾‾\     ┌────────┐
     │ 주문항목 │──N──< 적용 >──M──│ 처리단계 │
     └────────┘     \_____/     └────────┘
                       |
                   (계획일)
  • 사각형: 엔티티 / 마름모: 관계 / 타원: 속성
  • 이중 사각형: 약한 엔티티 / 이중 타원: 다중값 속성 / 점선 타원: 유도 속성
  • 관계 속성을 그림에 자연스럽게 표현할 수 있어 개념 설계에 적합합니다. 다만 속성이 많아지면 그림이 커져서 실무 도구에서는 잘 쓰지 않습니다.

3. IE (Crow's Foot) 표기법

선 끝의 기호 두 개로 (최소, 최대)를 표현합니다. 엔티티에 가까운 기호가 최대, 먼 기호가 최소입니다.

기호의미
──┼┼정확히 1 (1,1)
──○┼0 또는 1 (0,1)
──┼<1 이상 (1,N)
──○<0 이상 (0,N)
text
┌──────┐            ┌────────┐
│ 주문  │┼┼────────┼<│ 주문항목 │
└──────┘            └────────┘

읽는 법: 상대편 끝의 기호를 읽습니다.

  • 주문 1개에 대해 주문항목은 ┼< → 1개 이상
  • 주문항목 1개에 대해 주문은 ┼┼ → 정확히 1개

실무 도구 예시 (dbdiagram.io DBML):

text
Table orders {
  order_no varchar [pk]
}
Table order_item {
  item_no varchar [pk]
  order_no varchar [not null, ref: > orders.order_no]
}

4. IDEF1X 표기법

요소표기
독립 엔티티모서리가 각진 사각형
종속 엔티티 (식별 관계의 자식)모서리가 둥근 사각형
식별 관계실선
비식별 관계점선
다(N) 쪽채워진 원 ●

식별/비식별 관계가 그림에서 바로 보인다는 장점이 있습니다 (11강).

5. Barker 표기법

  • 관계선의 절반씩 실선/점선으로 그려 각 방향의 필수 여부를 표현
  • 관계선에 양방향 문장을 적습니다: "각 주문항목은 반드시 하나의 주문에 속해야 한다", "각 주문은 주문항목을 하나 이상 포함한다"
  • 업무 담당자와 검토할 때 문장으로 읽을 수 있어서 요구사항 검증에 좋습니다.

6. 표기법 대조표

의미ChenIEUML
필수 11 + 이중선┼┼1
선택 11○┼0..1
필수 다N + 이중선┼<1..*
선택 다N○<0..*

7. 실무 팁

  1. 팀 표준을 하나로 정합니다. 문서마다 표기법이 다르면 리뷰 비용이 커집니다.
  2. 개념 ERD와 물리 ERD를 분리합니다. 개념 ERD에는 FK 컬럼, 감사 컬럼(created_at 등)을 넣지 않습니다.
  3. 관계 이름을 동사로 붙입니다. 이름 없는 선은 읽는 사람마다 해석이 달라집니다.
  4. ERD는 코드에서 생성합니다. DBML, Mermaid, 또는 DB 역공학 도구로 DDL과 ERD의 불일치를 없앱니다.

4강 정리

  1. IE 표기법이 실무 표준에 가깝고, 상대편 끝의 기호를 읽는다.
  2. IDEF1X는 식별/비식별 관계를, Barker는 필수/선택을 문장으로 명확히 한다.
  3. 개념 ERD와 물리 ERD는 목적이 다르므로 분리한다.
COMMENTS (…)

댓글을 불러오는 중이에요.

NEW COMMENT0 / 1000
⌘↵ 전송

blog92@web:~$ cd ..