SQLP
시험 직전 요약장
판단 기준과 헷갈리는 개념, 대표 예제를 짧게 확인하세요.
반정규화: 성능을 위한 의도적 중복
원래 이론 →판단 기준
반정규화는 단순히 테이블을 합치는 작업이 아니다.
표를 좌우로 밀어 나머지 열을 확인하세요. 키보드: ←·→, Home·End
| 수준 | 대표 기법 | 주된 이득 | 함께 드는 비용 |
|---|---|---|---|
| 테이블 | 병합, 수직·수평 분할, 통계·이력·요약 테이블 | 조인·스캔 범위 감소 | 동기화·추가 저장 |
| 컬럼 | 중복 컬럼, 파생 컬럼, PK 컬럼의 일반 컬럼 복제 | 반복 조인·계산 감소 | 갱신 경로 증가 |
| 관계 | 중복 관계 추가 | 긴 조인 경로 단축 | 참조 무결성 관리 |
자주 사용하는 소수 컬럼과 거의 사용하지 않는 큰 컬럼이 한 넓은 테이블에 섞여 블록당 행 수가 줄어든다면, 1:1 수직 분할로 핵심 컬럼을 별도 테이블에 둘 수 있다. 행의 종류나 기간별로 읽는 범위가 명확하면 수평 분할을 검토한다.
주문목록을 조회할 때 매번 제품 테이블과 조인하는 비용이 실제 병목이라면 제품명을 주문목록에 중복할 수 있지만, 제품명 변경 시 과거 주문의 이름을 바꿀지 보존할지 업무 규칙부터 정해야 한다.
헷갈리는 개념
표를 좌우로 밀어 나머지 열을 확인하세요. 키보드: ←·→, Home·End
| 방식 | 장점 | 위험 |
|---|---|---|
| 동일 Transaction에서 함께 갱신 | 즉시 일관성 | 여러 Table Lock·업무 결합 증가 |
| Trigger | 누락 방지 | 숨은 부하·재귀·오류 추적 어려움 |
| Event/비동기 갱신 | 쓰기 응답 분리 | 일시적 불일치·재처리 필요 |
| Batch 재생성 | 단순·대량 효율 | 최신성 지연 |
| Materialized View | Query Rewrite·관리 기능 | Refresh 비용·제약 |
반정규화된 값마다 원천, 갱신 주체, 허용 지연, 검증 Query, 재생성 절차를 문서화한다.
대표 계산·예제
예를 들어 주문 목록에서 고객명을 매우 자주 조회한다고 주문에 고객명을 복제하면 조인은 줄지만, 고객명 변경 시 모든 주문의 값을 맞춰야 한다. 따라서 갱신 주체, 동기화 방식, 검증 절차가 설계에 포함되어야 한다.
내 최근 연습 오답
현재 브라우저의 연습 채점 기록에서 공개된 단원과 연결된 오답을 확인합니다.
오답 기록을 확인하고 있습니다.