← 질문 목록
#202깊이 0
데이터베이스 스키마를 설계할 때 고려할 점은 무엇인가?
데이터의 무결성을 유지하면서 중복을 최소화하는 정규화와 확장성을 고려한 비정규화를 조절하는 것이다.
| 기준 | 정규화 | 비정규화 |
|---|---|---|
| 목적 | 중복 제거 및 무결성 | 조회 성능 향상 |
| 영향 | 중복과 갱신 이상이 준다 | 조회가 단순해지고 중복 갱신 비용이 는다 |
정규화는 데이터 중복을 없애 테이블을 쪼개는 과정이다. 삽입, 수정, 삭제 시 발생하는 이상 현상을 방지해 데이터 신뢰도를 높인다.
반면 비정규화는 성능을 위해 의도적으로 중복을 허용하는 것이다. 조인 횟수가 너무 많아 읽기 성능이 급격히 떨어질 때 선택한다.
읽기가 훨씬 많고 조인 비용이 실제 병목일 때만 중복을 감수한다. 쓰기가 많다면 중복된 값을 함께 고치는 비용이 더 커진다.