AI 시대 DB 모델링 & SQL 완벽 마스터4-5 ERD 읽는 법
테크타니 LEARN — 섹션 04 · DB 모델링

처음 보는 ERD 한 장,
5단계 순서면 다 읽힙니다

회사에 가면 ERD 한 장이 던져집니다 — "이거 보고 SQL 짜세요". 막막할 필요 없어요. 지금까지 배운 부모-자식·관계 종류·FK가 그 한 장 안에 전부 들어 있고, 보는 순서만 알면 됩니다. 외워두면 평생 쓰는 5단계 읽기 순서를 shop ERD로 직접 연습합니다.

난이도보통소요10분준비물4-2 ~ 4-4 (부모-자식 · FK)위상섹션 4 메인 강의 ⭐

이번 섹션의 여정

4-1 ~ 4-4

완료 ✓

4-5 ERD 읽는 법

지금 여기 ⭐

4-6 정규화 직관

왜 쪼개는가

4-7 ~ 4-8

실무 ERD · 종합 실습 ⭐

섹션 5

AI 협업 SQL 작성법

실무에서는 ERD 한 장이 던져집니다

지금까지 부모-자식(4-2), 관계 종류(4-3), FK(4-4)까지 배웠어요. 이번 강의는 그 개념들이 ERD 한 장에서 어떻게 보이는가입니다.

실무에서는 친절한 설명 문서 대신 ERD 한 장을 받고 “이걸 보고 SQL 짜세요” 라는 상황이 흔합니다. 처음 보면 막막하죠 — 선은 얽혀 있고, 기호는 낯설고. 그런데 ERD는 읽는 순서가 있습니다. 이번 강의의 5단계 순서를 외워두면, 어떤 ERD를 받아도 같은 방법으로 풀립니다. 평생 씁니다.

시작 전 체크
4-2 — 부모/자식 테이블 개념
4-3 — 1:1 / 1:N / N:M 구분
4-4 — FK가 부모-자식을 강제한다는 것

표기법은 까마귀 발 하나면 충분합니다

ERD 표기법은 여러 종류가 있지만, 실무에서 가장 흔한 건 Crow’s foot(까마귀 발) 표기법입니다. 선 끝의 모양으로 “저쪽 행 하나에 이쪽 행이 몇 개 붙는지” 를 표시해요.

Crow's foot — 선 끝 모양 사전
선 끝 모양 │ 의미
───────────┼─────────────────────────
|| │ 정확히 1개
o| │ 0 또는 1개
o{ │ 0 또는 N개 ← 이게 까마귀 발
|{ │ 1 또는 N개 (최소 1개)
 
예: members ||--o{ orders
왼쪽 끝 || → 회원은 정확히 1명
오른쪽 끝 o{ → 주문은 0개일 수도, N개일 수도
이어 읽으면 — 회원 1명에 주문 0~N건 = 1:N 관계
기호는 외우지 마세요

표를 통째로 외울 필요 없습니다. 선의 양쪽 끝을 각각 읽고 이어붙이면 끝이에요. 그리고 테이블 안에서 PK 컬럼 옆에는 보통 PK, FK 컬럼 옆에는 FK 라고 적혀 있습니다 (도구에 따라 열쇠 아이콘 🔑 으로 표시하기도).

5단계 읽기 순서 — 외워두면 평생 씁니다

자, 처음 보는 ERD 한 장을 받았습니다. 이 순서대로 봅니다.

마스터 (부모) 테이블 찾기01 / 05

FK가 없는 테이블 = 부모 역할만 하는 테이블(마스터) 입니다. 이게 데이터의 기준이에요. shop이라면 members, categories — 회원과 카테고리가 먼저 존재해야 다른 데이터가 채워지죠.

FK가 없는 테이블부터 찾는다
PK 확인02 / 05

각 테이블에서 한 행을 유일하게 식별하는 컬럼을 확인합니다. 보통 테이블명_id 또는 id 한 컬럼이고, 가끔 order_items 의 (order_id, product_id) 처럼 복합키도 나옵니다. 나머지 컬럼은 거의 다 PK를 통해 의미를 가져요.

각 테이블의 식별자 컬럼 체크
FK 따라가기03 / 05

각 테이블의 FK 컬럼을 찾고, 어느 부모를 가리키는지 따라갑니다. 4-4에서 배운 그대로 — FK가 곧 부모-자식 관계고, ERD의 모든 선은 FK가 그려준 거예요.

모든 선의 출발점과 도착점 확인
관계 종류 판단04 / 05

각 선의 양쪽 끝 모양을 보고 1:1인지 1:N인지 판단합니다. 그리고 FK 두 개를 가진 중간 테이블이 보이면 — N:M을 풀어주는 테이블(4-3)이라는 신호예요.

선 끝 모양으로 1:1 / 1:N / N:M
비즈니스 흐름 상상05 / 05

마지막이 제일 중요합니다. “어떤 순서로 데이터가 생겨나는가” — 운영자가 상품을 등록하고, 회원이 가입하고, 주문이 일어나는 스토리를 머릿속에 그려보세요.

데이터 생성 시나리오를 머릿속에 그린다
⭐ 5단계의 종착점

데이터 생성 시나리오를 상상할 수 있다면 — 그 ERD를 완전히 읽은 것입니다.

기호 해독이 목적이 아니라, 그 뒤에 있는 비즈니스가 보이는 게 목적이에요.

실시연 — shop ERD를 5단계로 읽기

말로만 하면 감이 안 오니, 우리 shop DB의 ERD를 놓고 5단계를 그대로 적용해볼게요.

shop ERD — 5단계 판독 결과
STEP 1 마스터 │ members, categories — FK 없음. 데이터의 기준
STEP 2 PK │ member_id · category_id · product_id · order_id
│ order_items 는 (order_id, product_id) 복합키
STEP 3 FK │ orders.member_id → members.member_id
│ order_items.order_id → orders.order_id
│ order_items.product_id → products.product_id
│ products.category_id → categories.category_id
STEP 4 관계 │ 직접 관계는 모두 1:N — orders ↔ products 의
│ N:M 은 중간 테이블 order_items 가 풀어줌
STEP 5 시나리오 │ 운영자 등록 → 회원가입 → 주문 → 주문상세 N행
5단계 통과 — 이 ERD 는 이제 읽힌 상태입니다

STEP 5의 시나리오를 풀어 쓰면 이렇습니다 — 데이터가 태어나는 순서 그대로.

STEP 5 — 데이터 생성 시나리오
① 운영자가 카테고리 5개 + 상품 30개를 미리 등록
② 사용자가 회원가입 → members 에 1행
③ 회원이 상품을 골라 주문 확정 → orders 에 1행
④ 그 주문에 담긴 상품 N개 → order_items 에 N행
ERD가 없다고요? DBeaver가 그려줍니다

좌측 트리에서 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;
DBeaver — SQL Editor (Ctrl + Enter)
SELECT m.member_name, o.order_id, p.product_name, oi.quantity FROM members m JOIN orders o JOIN order_items oi JOIN products p …
member_nameorder_idproduct_namequantity
김철수1라운드 티셔츠1
김철수1프리미엄 그래놀라2
이영희2SQL 입문서1
박민수3무선 이어폰1
박민수3보조배터리1
ON 조건 3개 = ERD 에서 따라간 FK 선 3개. 그대로입니다
5 rows fetched — ERD 를 읽으면 JOIN 경로가 공짜로 나옵니다

ERD를 읽는다는 건 결국 JOIN 지도를 손에 넣는 일이에요. 5단계를 거친 ERD에서는 어떤 질문이 와도 “어느 테이블에서 출발해 어떤 선을 타고 갈지” 가 보입니다.

AI도 같은 5단계로 읽습니다

AI에게 ERD나 스키마를 던지면 — AI도 거의 같은 순서로 분석합니다. 마스터를 찾고, 키를 확인하고, FK를 따라가죠. 그럼 사람은 안 배워도 될까요?

✕ AI에게만 맡기면

분석을 받아도 검증을 못 합니다

AI가 내놓은 관계 분석이 맞는지 틀린지 판단할 기준이 없습니다. AI가 FK를 잘못 짚거나 N:M 중간 테이블을 놓쳐도 — 그대로 믿고 SQL을 짜게 돼요.

✓ 직접 한 번이라도 읽어봤으면

AI의 분석을 검증할 수 있습니다

5단계로 읽어본 경험이 있으면 AI의 분석에서 빠진 관계, 잘못 짚은 FK가 눈에 들어옵니다. AI는 빨라지는 도구가 되고, 판단은 여러분이 합니다.

검증 능력은 직접 읽어본 경험에서 나옵니다

이 강의의 최종 목표 — AI가 만든 결과를 의심하고 검증하는 능력 — 이 여기서도 그대로 적용됩니다. 페이지를 닫기 전에, 위 shop ERD를 보면서 5단계를 입으로 한 번 따라 읽어보세요. 그 한 번이 검증의 눈을 만듭니다.

자주 막히는 지점

① 선 끝 기호가 도저히 안 외워져요

기호 사전을 통째로 암기하려다 지치는 경우. 헷갈리면 위의 선 끝 모양 사전으로 돌아와 대조만 하면 됩니다.

FIX ▸외우지 말고 양쪽 끝을 따로 읽어서 이어붙이기. "이쪽은 정확히 1, 저쪽은 0~N" — 그게 곧 1:N입니다.
② PK/FK 표시가 없는 ERD를 받았어요

실무 ERD 중에는 키 표시가 생략된 그림도 많습니다. 추정만으로 SQL을 짜지 말고 실제 스키마로 확인하는 습관이 안전해요.

FIX ▸테이블명_id 패턴 컬럼으로 추정하고, CREATE TABLE 문(DDL)으로 확정하세요. DBeaver에서 테이블 우클릭 → Generate SQL → DDL.
③ 테이블이 수십 개인 ERD는 어디서부터 보나요?

테이블이 많아져도 읽는 방법이 달라지지 않습니다. 진짜 실무 규모의 ERD는 4-7에서 같이 분석해볼 거예요.

FIX ▸순서는 똑같습니다 — STEP 1, FK 없는 마스터부터. 그다음 업무 단위(회원/상품/주문…)로 묶어서 덩어리별로 5단계를 돌리세요.

5단계가 손에 익었는지 연습 문제로 확인해보세요. 그다음 강의는 4-6 정규화 직관 — 이번엔 ERD를 읽는 걸 넘어, “애초에 왜 테이블을 이렇게 쪼개놨는가” 의 감을 잡습니다.

NEXT LESSON4-5 연습 문제

처음 보는 ERD 한 장을 5단계 순서로 직접 판독해봅니다.

GO ▸ 연습 문제 풀기