본문으로 건너뛰기
데이터베이스 기초집LESSON 04

요구사항을 엔터티와 관계로 바꾸는 법

난이도초급 → 중급
예상 시간35분
선수지식이전 강의

4강. 요구사항을 엔터티와 관계로 바꾸는 법

1. 이번 강의에서 해결할 문제

“경기 후 랭킹을 보여준다”만으로 테이블을 만들면 현재 점수와 과거 순위, 경기 결과가 뒤섞입니다. 기능 문장을 데이터 질문과 불변 규칙으로 바꾸어 모델 후보를 찾습니다.

2. 학습 목표

3. 핵심 개념

엔터티는 독립적으로 식별하고 수명 주기를 추적할 대상입니다. 속성은 엔터티 자체의 한 값이고 관계는 엔터티 사이의 의미입니다. “플레이어가 게임에 참가해 캐릭터로 점수를 얻는다”에서 플레이어와 게임은 엔터티, 참가는 match_results라는 사건 엔터티가 됩니다. 랭킹은 현재 계산 결과인지 시점별 스냅샷인지 요구사항으로 결정합니다.

4. 단계별 예시

문서 경로: C:\dev\game-ranking-service\docs\database\04-requirements.md

docs/database/04-requirements.md
## 기능 문장
- 한 게임에는 2명 이상의 플레이어가 참가한다.
- 플레이어는 경기마다 한 캐릭터를 선택한다.
- 종료된 경기에는 참가자별 점수와 승패가 한 번만 기록된다.
- 시즌별 현재 순위와 과거 스냅샷을 조회한다.

## 엔터티 후보
- Player: 계정과 표시 이름
- Game: 모드, 시작·종료 시각, 상태
- Character: 캐릭터 식별과 이름
- MatchResult: Player와 Game의 참가 사건
- RankingSnapshot: 시즌·시점별 순위 이력

## 확인 질문
- 무승부를 허용하는가?
- 닉네임 변경 후 과거 화면에는 어떤 이름을 보이는가?
- 경기가 취소되면 결과와 랭킹은 어떻게 처리하는가?
PowerShell · 설계 문서 확인
Set-Location C:\dev\game-ranking-service
Get-Content .\docs\database\04-requirements.md

5. 동작 원리

자연어의 명사는 엔터티 후보지만 모든 명사가 테이블은 아닙니다. 독립 식별, 여러 속성, 반복 발생, 다른 대상과의 관계가 있는지 확인합니다. 동사는 관계나 사건 테이블 후보가 되고 “반드시”, “한 번만”, “최대” 같은 표현은 제약 조건 후보가 됩니다.

6. 자주 하는 실수와 해결법

7. 직접 실습

8. 이해 점검 질문 3개

9. 핵심 요약

MINI QUIZ

요구사항을 엔터티와 관계로 바꾸는 법 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“요구사항을 엔터티와 관계로 바꾸는 법”에서 다음 단계로 넘어가기 전에 확인할 핵심은 무엇인가요?
  2. 문제 2“요구사항을 엔터티와 관계로 바꾸는 법” 실습 중 ‘모호한 규칙을 임의 해석’ 상황을 발견했습니다. 본문과 일치하는 설명은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

4강. 요구사항을 엔터티와 관계로 바꾸는 법 미완료 상태