4-2 연습 문제 — 부모 / 자식 ⭐
어떤 ERD 를 봐도 자동으로 보이게
강의 메인 메시지 — "부모-자식 관계만 알면, AI 가 모든 SQL 을 만들어줍니다" — 의 실습입니다. 눈으로 읽고 끝내면 남지 않습니다. 직접 손으로 부모-자식 쌍을 식별해 보세요. 이 연습이 끝나면 어떤 ERD 를 봐도 부모-자식이 자동으로 보이게 됩니다.
섹션 4 에서의 위치
완료 ✓
강의 완료 ✓
지금 여기
관계 유형 · FK · ERD
섹션 4 마일스톤
2-4에서 만든 AI 과외 선생님 세션을 그대로 쓰세요. 막히면 정답이 아니라 힌트만 요청하고, 풀어본 뒤에는 본인 답을 AI 에 던지며 “부모-자식 식별이 맞는지 검증해줘” 라고 물어보세요. 이번 문제들은 개념 식별 훈련이라 — AI 의 검증 피드백이 특히 잘 듣습니다.
문제 1. shop ERD — 모든 부모-자식 쌍 식별
shop 의 5 테이블 (members, categories, products, orders, order_items) 에서 — 모든 부모-자식 쌍 을 나열하세요.
기대 결과: 4 쌍
정답 보기
| # | 부모 | 자식 | FK |
|---|---|---|---|
| 1 | members | orders | orders.member_id |
| 2 | orders | order_items | order_items.order_id |
| 3 | products | order_items | order_items.product_id |
| 4 | categories | products | products.category_id |
관찰: 5 테이블 = 4 부모-자식 쌍. orders 와 order_items 는 둘 다 다른 역할을 동시에 합니다 (orders 는 members 의 자식이자 order_items 의 부모).
문제 2. 새 ERD 에서 부모-자식 식별
다음 학원 등록 시스템 ERD 를 보고 — 부모-자식 쌍 을 식별하세요.
기대 결과: 3 쌍
정답 보기
| # | 부모 | 자식 | FK |
|---|---|---|---|
| 1 | teachers | lectures | lectures.teacher_id |
| 2 | students | enrollments | enrollments.student_id |
| 3 | lectures | enrollments | enrollments.lecture_id |
관찰: enrollments 는 두 부모 (students, lectures) 의 자식 — 이게 N:M 을 풀어주는 중간 테이블 의 모습입니다. (자세한 건 4-3 에서)
문제 3 (도전). AI 에게 부모-자식 컨텍스트 주는 프롬프트 작성
당신의 회사 DB 에 다음 4 테이블이 있다고 가정합시다.
companies(회사: company_id PK, name)employees(직원: employee_id PK, name, company_id FK)projects(프로젝트: project_id PK, title, company_id FK)assignments(배정: employee_id FK, project_id FK, role)
AI 에게 “각 프로젝트에 배정된 직원 수와 회사명을 같이” SQL 을 요청하는 프롬프트를 — 부모-자식 관계를 명시해서 작성해보세요.
4-2 본문의 “좋은 프롬프트” 예시 참고. 부모-자식 관계 + 요구사항.
모범 프롬프트 예시
다음 MySQL DB 에서 SQL 을 짜줘.
[부모-자식 관계]
- companies (회사, PK=company_id)
← employees (직원, FK=company_id)
← projects (프로젝트, FK=company_id)
- projects (프로젝트, PK=project_id)
← assignments (배정, FK=project_id)
- employees (직원, PK=employee_id)
← assignments (배정, FK=employee_id)
[테이블 컬럼]
- companies: company_id, name
- employees: employee_id, name, company_id
- projects: project_id, title, company_id
- assignments: employee_id, project_id, role
[요구사항]
각 프로젝트에 배정된 직원 수와 그 프로젝트가 속한 회사명을 같이 출력.
출력 컬럼: 회사명, 프로젝트 제목, 직원 수.
직원 많은 순으로 정렬.핵심: 부모-자식 관계를 명시적 화살표 로 보여줌. AI 가 JOIN ON 조건을 자동으로 맞춥니다.
이걸 그대로 ChatGPT/Claude 에 던지면 거의 정확한 SQL 이 나옵니다. 검증도 1초 — “행 수가 projects 수와 같아야 함” 만 확인.
다 풀었다면 — AI 검증 루틴까지
PK 가진 쪽이 부모, FK 로 가리키는 쪽이 자식. 세 문제를 직접 식별했다면 — 강의 메인 메시지의 실습이 끝났습니다. 마지막 한 걸음, 본인 답을 AI 선생님에게 “부모-자식 식별이 맞는지 검증해줘” 라고 던지는 것까지 해야 진짜 끝입니다.
부모-자식이 보이기 시작했다면 다음 단계로 갈 준비 완료 — 이제 그 관계가 1:1 인지, 1:N 인지, N:M 인지 구분하는 법을 배웁니다.