3강에서 만든 개념 모델을 그림으로 표현하는 방법입니다.
1. 표기법이 여러 개인 이유
같은 모델도 도구와 조직에 따라 다르게 그립니다. 표기법을 몰라서 카디널리티를 반대로 읽는 실수가 흔합니다.
| 표기법 | 주 사용처 | 특징 |
|---|---|---|
| Chen | 교과서, 개념 설계 | 관계를 마름모로 그림, 속성을 타원으로 |
| IE (Crow's Foot) | 실무 대부분, ERwin, DBeaver, dbdiagram | 까마귀발로 "다(N)" 표현 |
| IDEF1X | 미 정부 표준, ERwin 옵션 | 식별 관계를 실선, 비식별을 점선 |
| Barker | Oracle 진영 | 필수는 실선, 선택은 점선 |
| 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. 표기법 대조표
| 의미 | Chen | IE | UML |
|---|---|---|---|
| 필수 1 | 1 + 이중선 | ┼┼ | 1 |
| 선택 1 | 1 | ○┼ | 0..1 |
| 필수 다 | N + 이중선 | ┼< | 1..* |
| 선택 다 | N | ○< | 0..* |
7. 실무 팁
- 팀 표준을 하나로 정합니다. 문서마다 표기법이 다르면 리뷰 비용이 커집니다.
- 개념 ERD와 물리 ERD를 분리합니다. 개념 ERD에는 FK 컬럼, 감사 컬럼(created_at 등)을 넣지 않습니다.
- 관계 이름을 동사로 붙입니다. 이름 없는 선은 읽는 사람마다 해석이 달라집니다.
- ERD는 코드에서 생성합니다. DBML, Mermaid, 또는 DB 역공학 도구로 DDL과 ERD의 불일치를 없앱니다.
4강 정리
- IE 표기법이 실무 표준에 가깝고, 상대편 끝의 기호를 읽는다.
- IDEF1X는 식별/비식별 관계를, Barker는 필수/선택을 문장으로 명확히 한다.
- 개념 ERD와 물리 ERD는 목적이 다르므로 분리한다.