처음 보는 ERD 한 장,
5단계 순서면 다 읽힙니다
회사에 가면 ERD 한 장이 던져집니다 — "이거 보고 SQL 짜세요". 막막할 필요 없어요. 지금까지 배운 부모-자식·관계 종류·FK가 그 한 장 안에 전부 들어 있고, 보는 순서만 알면 됩니다. 외워두면 평생 쓰는 5단계 읽기 순서를 shop ERD로 직접 연습합니다.
이번 섹션의 여정
완료 ✓
지금 여기 ⭐
왜 쪼개는가
실무 ERD · 종합 실습 ⭐
AI 협업 SQL 작성법
실무에서는 ERD 한 장이 던져집니다
지금까지 부모-자식(4-2), 관계 종류(4-3), FK(4-4)까지 배웠어요. 이번 강의는 그 개념들이 ERD 한 장에서 어떻게 보이는가입니다.
실무에서는 친절한 설명 문서 대신 ERD 한 장을 받고 “이걸 보고 SQL 짜세요” 라는 상황이 흔합니다. 처음 보면 막막하죠 — 선은 얽혀 있고, 기호는 낯설고. 그런데 ERD는 읽는 순서가 있습니다. 이번 강의의 5단계 순서를 외워두면, 어떤 ERD를 받아도 같은 방법으로 풀립니다. 평생 씁니다.
표기법은 까마귀 발 하나면 충분합니다
ERD 표기법은 여러 종류가 있지만, 실무에서 가장 흔한 건 Crow’s foot(까마귀 발) 표기법입니다. 선 끝의 모양으로 “저쪽 행 하나에 이쪽 행이 몇 개 붙는지” 를 표시해요.
표를 통째로 외울 필요 없습니다. 선의 양쪽 끝을 각각 읽고 이어붙이면
끝이에요. 그리고 테이블 안에서 PK 컬럼 옆에는 보통 PK, FK 컬럼 옆에는 FK
라고 적혀 있습니다 (도구에 따라 열쇠 아이콘 🔑 으로 표시하기도).
5단계 읽기 순서 — 외워두면 평생 씁니다
자, 처음 보는 ERD 한 장을 받았습니다. 이 순서대로 봅니다.
FK가 없는 테이블 = 부모 역할만 하는 테이블(마스터) 입니다. 이게 데이터의
기준이에요. shop이라면 members, categories — 회원과 카테고리가 먼저
존재해야 다른 데이터가 채워지죠.
각 테이블에서 한 행을 유일하게 식별하는 컬럼을 확인합니다. 보통
테이블명_id 또는 id 한 컬럼이고, 가끔 order_items 의 (order_id,
product_id) 처럼 복합키도 나옵니다. 나머지 컬럼은 거의 다 PK를 통해
의미를 가져요.
각 테이블의 FK 컬럼을 찾고, 어느 부모를 가리키는지 따라갑니다. 4-4에서 배운 그대로 — FK가 곧 부모-자식 관계고, ERD의 모든 선은 FK가 그려준 거예요.
각 선의 양쪽 끝 모양을 보고 1:1인지 1:N인지 판단합니다. 그리고 FK 두 개를 가진 중간 테이블이 보이면 — N:M을 풀어주는 테이블(4-3)이라는 신호예요.
마지막이 제일 중요합니다. “어떤 순서로 데이터가 생겨나는가” — 운영자가 상품을 등록하고, 회원이 가입하고, 주문이 일어나는 스토리를 머릿속에 그려보세요.
데이터 생성 시나리오를 상상할 수 있다면 — 그 ERD를 완전히 읽은 것입니다.
기호 해독이 목적이 아니라, 그 뒤에 있는 비즈니스가 보이는 게 목적이에요.
실시연 — shop ERD를 5단계로 읽기
말로만 하면 감이 안 오니, 우리 shop DB의 ERD를 놓고 5단계를 그대로 적용해볼게요.
STEP 5의 시나리오를 풀어 쓰면 이렇습니다 — 데이터가 태어나는 순서 그대로.
좌측 트리에서 shop 더블클릭 → ER Diagram 탭 — DBeaver가 FK를 기준으로 ERD를 자동으로 그려줍니다. 회사 DB에 ERD 문서가 없을 때도 이 방법으로 직접 뽑아서 5단계를 적용하면 돼요.
읽은 대로 SQL이 나옵니다
5단계가 왜 “SQL 짜는 출발점” 인지 바로 확인해볼게요. STEP 3에서 적어둔 FK 목록 — 그게 그대로 JOIN의 ON 조건입니다. 회원 → 주문 → 주문상세 → 상품, FK 선을 따라 4테이블을 이어보세요.
USE shop;
SELECT
m.member_name,
o.order_id,
p.product_name,
oi.quantity
FROM
members m
JOIN orders o
ON o.member_id = m.member_id
JOIN order_items oi
ON oi.order_id = o.order_id
JOIN products p
ON p.product_id = oi.product_id
ORDER BY
o.order_id,
p.product_id
LIMIT 5;| member_name | order_id | product_name | quantity |
|---|---|---|---|
| 김철수 | 1 | 라운드 티셔츠 | 1 |
| 김철수 | 1 | 프리미엄 그래놀라 | 2 |
| 이영희 | 2 | SQL 입문서 | 1 |
| 박민수 | 3 | 무선 이어폰 | 1 |
| 박민수 | 3 | 보조배터리 | 1 |
ERD를 읽는다는 건 결국 JOIN 지도를 손에 넣는 일이에요. 5단계를 거친 ERD에서는 어떤 질문이 와도 “어느 테이블에서 출발해 어떤 선을 타고 갈지” 가 보입니다.
AI도 같은 5단계로 읽습니다
AI에게 ERD나 스키마를 던지면 — AI도 거의 같은 순서로 분석합니다. 마스터를 찾고, 키를 확인하고, FK를 따라가죠. 그럼 사람은 안 배워도 될까요?
분석을 받아도 검증을 못 합니다
AI가 내놓은 관계 분석이 맞는지 틀린지 판단할 기준이 없습니다. AI가 FK를 잘못 짚거나 N:M 중간 테이블을 놓쳐도 — 그대로 믿고 SQL을 짜게 돼요.
AI의 분석을 검증할 수 있습니다
5단계로 읽어본 경험이 있으면 AI의 분석에서 빠진 관계, 잘못 짚은 FK가 눈에 들어옵니다. AI는 빨라지는 도구가 되고, 판단은 여러분이 합니다.
이 강의의 최종 목표 — AI가 만든 결과를 의심하고 검증하는 능력 — 이 여기서도 그대로 적용됩니다. 페이지를 닫기 전에, 위 shop ERD를 보면서 5단계를 입으로 한 번 따라 읽어보세요. 그 한 번이 검증의 눈을 만듭니다.
자주 막히는 지점
기호 사전을 통째로 암기하려다 지치는 경우. 헷갈리면 위의 선 끝 모양 사전으로 돌아와 대조만 하면 됩니다.
실무 ERD 중에는 키 표시가 생략된 그림도 많습니다. 추정만으로 SQL을 짜지 말고 실제 스키마로 확인하는 습관이 안전해요.
테이블명_id 패턴 컬럼으로 추정하고, CREATE TABLE 문(DDL)으로 확정하세요. DBeaver에서 테이블 우클릭 → Generate SQL → DDL.테이블이 많아져도 읽는 방법이 달라지지 않습니다. 진짜 실무 규모의 ERD는 4-7에서 같이 분석해볼 거예요.
5단계가 손에 익었는지 연습 문제로 확인해보세요. 그다음 강의는 4-6 정규화 직관 — 이번엔 ERD를 읽는 걸 넘어, “애초에 왜 테이블을 이렇게 쪼개놨는가” 의 감을 잡습니다.