바커 표기법과 IE 표기법 비교
ERD 표기법은 하나가 아닙니다. 국내 실무에서 가장 자주 보이는 바커(Barker) 표기법과 해외 CASE 도구·서적에서 흔한 IE(Information Engineering, 정보공학) 표기법은 같은 정보(필수/선택, 1:1/1:N)를 서로 다른 기호 체계로 표현합니다.
바커(Barker) 표기법
Richard Barker가 정리하고 오라클의 CASE*Method에서 채택하면서 널리 퍼진 표기법입니다. 핵심 아이디어는 관계선 자체의 스타일(점선/실선)로 필수·선택 참여를 나타내고, 선 끝의 까마귀발로 다중성을 나타낸다는 것입니다.
- 점선 — 그 쪽 엔티티는 관계에 선택적으로 참여(0개 이상)
- 실선 — 그 쪽 엔티티는 관계에 필수적으로 참여(1개 이상)
- 까마귀발(세 갈래 선) — "다(many)" 쪽. 갈래가 없으면 "1"
선의 양쪽 절반을 각각 독립적으로 점선/실선으로 정할 수 있어서, 예를 들어 "부모는 선택, 자식은 필수"처럼 비대칭적인 참여 규칙도 하나의 선으로 표현됩니다. 여기에 더해 자식 쪽 선이 실선이면 식별 관계, 점선이면 비식별 관계라는 세 번째 정보까지 같은 선 하나에 압축되어 있습니다. (식별·비식별에 대한 자세한 설명은 이 글에서 다룹니다.)
IE(정보공학) 표기법
IE 표기법은 필수/선택과 다중성을 완전히 독립된 두 기호로 분리해서 표현합니다. 미국계 CASE 도구(ERwin 등)와 여러 데이터 모델링 서적에서 자주 쓰입니다.
- 동그라미(○) — 선택(0)
- 작대기(│) — 필수(1)
- 까마귀발 — 다(N)
- 작대기 하나만 — 정확히 1
이 넷을 조합하면 "○ + 까마귀발"(0..N), "│ + 까마귀발"(1..N), "○ + │"(0..1), "│ + │"(1..1) 네 가지 조합이 나옵니다. 즉 IE는 필수/선택 기호와 다중성 기호를 선의 양 끝에 각각 따로 붙이는 방식이고, 바커는 선 스타일 하나로 필수/선택을, 까마귀발로 다중성을 나타내는 방식입니다.
핵심 차이 한눈에 보기
| 항목 | 바커(Barker) | IE(정보공학) |
|---|---|---|
| 필수/선택 표현 | 선 스타일(점선/실선) | 별도 기호(○/│) |
| 다중성 표현 | 까마귀발 | 까마귀발 |
| 식별/비식별 표현 | 같은 선 스타일 규칙에 포함 | 대개 관계선 자체를 실선/점선으로 구분(도구마다 조금씩 다름) |
| 기호 개수 | 적음(선 스타일 2종 + 까마귀발) | 많음(원, 작대기, 까마귀발 조합) |
| 주로 쓰이는 곳 | 국내 실무, 오라클 계열 CASE 도구 | 북미 CASE 도구, 다수 교과서 |
같은 관계, 두 표기법으로 그려보기
"고객은 여러 주문을 낼 수 있고, 모든 주문에는 반드시 고객이 있어야 한다"는 규칙을 각각 그려보면 다음과 같습니다.
- 바커 — 고객 쪽 선은 실선(주문이 있으려면 고객이 필수) + 까마귀발 없음(고객은 "1"쪽), 주문 쪽 선은 실선(주문도 필수 참여) + 까마귀발(주문은 "다"쪽). 관계가 비식별이라면 주문 쪽 선은 점선으로 그립니다.
- IE — 고객 쪽 끝에 작대기 하나(정확히 1), 주문 쪽 끝에 작대기 + 까마귀발(1..N, 즉 최소 1개 이상의 주문). 만약 고객이 주문을 아직 하나도 내지 않을 수도 있다면 주문 쪽을 원 + 까마귀발(0..N)로 바꿉니다.
두 표기법 모두 "고객 1명 : 주문 여러 개"라는 같은 사실을 전달하지만, 바커는 그 정보를 선 하나에 압축해서 그림이 상대적으로 단순해지고, IE는 필수/선택과 다중성을 분리해서 각각을 더 명시적으로 읽을 수 있습니다.
흔한 오해
- "까마귀발이 있으면 바커, 없으면 IE"라는 오해 — 까마귀발 자체는 두 표기법이 공유하는 기호입니다. 둘을 가르는 건 까마귀발의 유무가 아니라 필수/선택을 어떤 기호로 표현하느냐입니다.
- 바커 표기법에는 필수/선택 표현이 없다는 오해 — 오히려 반대입니다. IE보다 기호 수는 적지만, 선 스타일 자체가 필수/선택을 담고 있어서 정보량은 동일합니다. 다만 익숙하지 않은 사람에게는 "점선이 왜 이 뜻이지"가 한눈에 안 들어올 수 있습니다.
- 두 표기법을 섞어 써도 괜찮다는 오해 — 한 문서 안에서 일부는 바커식 점선/실선으로, 일부는 IE식 원/작대기로 그리면 읽는 사람이 매 관계선마다 "이건 어느 표기법 규칙으로 읽어야 하나"를 다시 판단해야 합니다. 반드시 문서 전체에서 하나로 통일해야 합니다.
다른 표기법들도 있습니다
바커와 IE 외에도 ERD 표기법은 여러 갈래가 있습니다. Peter Chen이 1976년 제안한
Chen 표기법은 엔티티를 사각형, 관계를 마름모로 별도 도형으로
그리는 원조 격 표기법으로, 학술 논문·교과서에서 여전히 자주 쓰입니다. 최근에는
UML 클래스 다이어그램을 데이터 모델링에 응용해 0..1,
1..* 같은 구간 표기로 다중성을 나타내는 경우도 늘고 있습니다 —
이는 사실 IE 표기법의 필수/선택+다중성 조합을 텍스트로 풀어 쓴 것과 같은
정보를 담고 있어, 개념적으로는 IE와 가장 가깝습니다.
언제 무엇을 쓰나
정답은 없습니다. 다만 실무에서는 팀·조직의 관행이 결정하는 경우가 대부분입니다. 국내에서는 과거 오라클 CASE*Method와 그 계열 CASE 도구(ERwin 초기 버전 포함, 국내 SI 프로젝트 표준 산출물 등)의 영향으로 바커 표기법이 널리 자리잡았고, 지금도 데이터베이스 설계서·ERD 산출물 표준 양식에서 바커 표기법을 기본으로 요구하는 경우가 많습니다. 북미 쪽 자료나 IE 계열 도구로 학습한 경우라면 IE 표기법이 더 익숙할 수 있습니다.
어느 쪽을 쓰든 팀 안에서는 통일하는 게 중요합니다. 표기법이 섞인 ERD는 같은 도형이 문서마다 다른 뜻을 가지게 되어, 정작 표기법이 주려던 "정확한 규칙 전달"이라는 목적을 무너뜨립니다.
읽는 순서 팁
바커 표기법으로 그려진 ERD를 처음 마주쳤을 때는 관계선을 한 번에 통째로 읽으려 하지 말고, 선을 절반으로 나눠 양쪽을 따로 읽는 습관을 들이면 훨씬 수월합니다.
- 먼저 부모 쪽 절반만 봅니다 — 점선이면 "자식은 부모 없이도 존재할 수 있다(선택)", 실선이면 "자식은 반드시 부모가 있어야 한다(필수)"는 뜻입니다.
- 다음 자식 쪽 절반을 봅니다 — 실선이면 식별 관계, 점선이면 비식별 관계입니다.
- 마지막으로 까마귀발 유무를 봅니다 — 있으면 "다(N)", 없으면 "1"입니다.
이 세 가지를 순서대로 읽으면 "부모 실선·자식 실선·까마귀발 있음"이라는 선 하나가 곧 "부모는 필수 참여, 이 관계는 식별 관계, 자식은 여러 개일 수 있다"는 완전한 문장으로 풀립니다. IE 표기법도 마찬가지로 원/작대기(필수·선택)를 먼저 읽고, 까마귀발(다중성)을 나중에 읽는 순서로 접근하면 헷갈릴 일이 줄어듭니다.