AI 시대 DB 모델링 & SQL 완벽 마스터4-5 연습 문제
테크타니 LEARN — 섹션 04 · 연습 문제

4-5 연습 문제 — ERD 읽는 법,
처음 보는 ERD도 5단계로 읽는다

이번 강의에서 배운 5단계 — 마스터 → PK → FK → 관계 종류 → 시나리오 — 를 처음 보는 도서관 대출 시스템 ERD에 그대로 적용해봅니다. 눈으로만 읽은 ERD는 금방 흐려지지만, 손으로 5단계를 직접 돌려본 ERD는 머리에 남습니다. 풀어본 뒤에는 AI에게 답을 던지고 "5단계 분석이 맞나" 검증까지 해보세요.

문제3문제 (도전 1 포함)권장 소요15분사용 ERD도서관 대출 시스템 4테이블도구눈 + AI 과외 선생님 (검증용)

이번 연습의 위치

4-1 ~ 4-4 관계·부모자식·FK

완료 ✓

4-5 ERD 읽는 법

강의 완료 ✓

4-5 연습 문제

지금 여기

4-6 정규화 직관

테이블을 쪼개는 이유

4-8 모델링 종합 실습

섹션 4 마무리 ⭐

AI 과외 선생님 활용법

2-4에서 만든 AI 과외 선생님 세션을 그대로 쓰세요. 막히면 정답이 아니라 힌트만 요청하고 — 다 푼 뒤에는 본인의 답을 던지며 “내 5단계 분석이 맞는지 검증해줘” 라고 물어보세요. 직접 읽고 → 검증받는 이 순서가 ERD 읽는 눈을 만듭니다.

도서관 시스템 ERD

다음 ERD 는 도서관 대출 시스템입니다. 우리 쇼핑몰 DB가 아니라 처음 보는 ERD — 이걸 보면서 아래 3 문제를 풀어보세요.

문제 1. 5단계 적용

위 도서관 ERD 에 5 단계 (마스터 → PK → FK → 관계 → 시나리오) 를 적용해서 — 각 단계의 결과를 정리하세요.

정답 보기
단계결과
1. 마스터publishers, members (FK 없음)
2. PKpublisher_id, member_id, book_id, loan_id — 모두 단일 컬럼
3. FKbooks.publisher_id → publishers.publisher_id / loans.member_id → members.member_id / loans.book_id → books.book_id (총 3개)
4. 관계 종류publishers→books (1:N), members→loans (1:N), books→loans (1:N). loans 가 members ↔ books 의 N:M 을 풀어주는 중간 테이블 (member 1명이 book 여러권 빌리고, book 1권이 member 여러명에게 대출됨 — 시간 다르면)
5. 시나리오출판사 등록 → 책 등록 (출판사 FK 와 함께) → 회원 등록 → 회원이 책 대출 → loans 행 생성 (loaned_at) → 반납 시 returned_at 채워짐

문제 2. 표기법 객관식

다음 mermaid ERD 표기법 중 — 1:N 관계 를 나타내는 것은?

A. members ||--|| orders
B. members ||--o{ orders
C. members o|--o| orders
D. members |{--o{ orders
정답 보기

B. members ||--o{ orders

  • A: ||||1 : 1
  • B: || (1) ↔ o{ (0 또는 N) → 1 : N ✓
  • C: o|o|0..1 : 0..1
  • D: |{ (1..N) ↔ o{ (0..N) → N : M (양쪽 모두 multiple)
읽는 법

양쪽 끝 모양을 양방향으로 읽고, “하나 / 여럿” 만 구분하면 됩니다.

문제 3 (도전). 비즈니스 추론

위 도서관 ERD 만 보고 — 다음 비즈니스 질문에 답할 수 있을까요? 답하기 어렵다면 어떤 정보가 더 필요한지.

#질문
A”현재 대출 중인 책 (반납 안 된 책) 수를 조회 가능한가?”
B”한 회원이 같은 책을 두 번 이상 빌렸는지 알 수 있나?”
C”이 책의 재고가 몇 권 있는지 알 수 있나?”
D”연체된 대출이 몇 건인지 알 수 있나?”
정답 보기
#이유
AYESloans WHERE returned_at IS NULL 로 알 수 있음. NULL = 아직 반납 안 됨
BYESloans GROUP BY member_id, book_id HAVING COUNT(*) > 1
C❌ 부족books재고/소장 권수 컬럼이 없음. 이 ERD 로는 “이 책 빌릴 수 있나?” 답 못함. 한 책의 모든 대출이 동시에 가능한지도 불명. 모델링 결함 — 실제 도서관 시스템이라면 book_copies 같은 테이블이 필요할 것
D❌ 부족대출 기한 (due_date) 컬럼이 없음. loaned_at 만 있어서 “몇 일 후 반납해야” 알 수 없음. 추가 컬럼 필요
✓ 핵심 인사이트

ERD 5단계 분석은 — “무엇이 가능한가” 뿐 아니라 “무엇이 못 되는가 도 드러내줍니다. 모델링의 빈틈을 발견하는 능력.

AI 와 비교해보기

AI 에게 “이 ERD 로 도서관 운영 가능한가? 빈 곳은?” 던져보세요. 같은 결론이 나오는지 비교.

처음 보는 ERD를 5단계로 끝까지 읽어냈다면 — 이제 테이블이 왜 이렇게 쪼개져 있는지, 그 이유를 배울 차례입니다.

NEXT LESSON4-6 정규화 직관

중복이 왜 위험한지, 테이블을 쪼개는 기준이 무엇인지 — 정규화를 직관으로 이해합니다.

GO ▸ 다음 강의 시작하기