패스잇
시스템 설계 · 중급

실무에서 데이터베이스를 설계할 때, 정규화(Normalization)와 비정규화(Denormalization)를 어떤 기준으로 적용해야 하며, 성능상의 이유로 비정규화를 고려해야 하는 상황과 그 단점은 무엇인가요?

힌트 · 정규화는 데이터 중복 제거 및 일관성 확보가 목적이며, 비정규화는 조인 감소 및 쿼리 성능 향상이 목적입니다. 트레이드오프를 이해하고 데이터 중복 및 일관성 저하의 단점을 고려해야 합니다.

정규화비정규화성능조회 성능데이터 무결성

모범답안

데이터베이스 설계 시 정규화와 비정규화는 트레이드오프 관계에 있습니다. 정규화는 데이터 중복을 최소화하고 데이터 무결성을 확보하는 데 유리하지만, 잦은 조인 연산으로 인해 조회 성능이 저하될 수 있습니다. 반면 비정규화는 조인 연산을 줄여 조회 성능을 향상시키지만, 데이터 중복이 발생하고 데이터 일관성이 깨질 위험이 있습니다.

일반적으로는 정규화를 우선적으로 적용하여 데이터 모델을 설계합니다. 하지만 특정 테이블에 대한 조회 성능이 매우 중요하고, 데이터 변경이 자주 발생하지 않는 경우에는 비정규화를 고려할 수 있습니다. 예를 들어, 상품 정보 테이블에서 상품명, 가격, 상세 설명 등 자주 함께 조회되는 속성들을 하나의 테이블에 모아두면 조인 없이 빠르게 데이터를 가져올 수 있습니다.

비정규화의 단점은 데이터 중복으로 인한 저장 공간 증가, 데이터 불일치 가능성 증가, 데이터 수정 시 여러 테이블을 업데이트해야 하는 번거로움 등이 있습니다. 따라서 비정규화를 적용하기 전에는 성능 개선 효과와 단점을 신중하게 비교 분석해야 합니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 데이터베이스 설계 면접 질문

← 데이터베이스 설계 면접 질문 전체 보기