본문 바로가기
Interview

[DB] 정규화와 비정규화

by urosie 2024. 2. 10.

1. 정규화란?

데이터베이스 설계에서 중복을 최소화하고 데이터 일관성을 유지하기 위해 데이터를 구조화하는 프로세스입니다. 주로 관계형 데이터베이스에서 사용되며, 관련 테이블 간의 종속성을 제거하여 데이터 무결성을 향상

정규화의 목적:

  1. 중복 제거: 데이터베이스에 중복된 데이터를 피하여 저장공간을 절약하고 데이터 일관성을 유지합니다.
  2. 삽입, 갱신, 삭제 이상 방지: 데이터가 갱신되거나 삭제될 때 발생할 수 있는 이상 현상을 최소화합니다.
  3. 검색 효율 향상: 쿼리의 성능을 향상시켜 데이터 검색 속도를 개선합니다.

 

2. 비정규화란?

비정규화는 데이터베이스 설계에서 정규화된 데이터 모델을 일부로 건너뛰거나 조정하여 성능을 향상시키는 프로세스입니다. 정규화된 데이터 모델은 중복을 최소화하고 데이터 일관성을 유지하기 위해 설계되지만, 이로 인해 때로는 데이터 검색 속도가 저하될 수 있습니다. 따라서 특정 상황에서는 성능을 개선하기 위해 정규화된 모델을 비정규화하여 데이터의 중복을 증가

비정규화의 주요 목표:

  1. 검색 성능 향상: 데이터베이스에서 빈번하게 사용되는 쿼리의 성능을 향상시키기 위해 데이터를 중복하거나 테이블을 조정합니다.
  2. 데이터 모델의 단순화: 복잡한 조인을 줄이고 쿼리의 간결성을 높이기 위해 데이터 모델을 단순화합니다.
  3. 애플리케이션 요구 사항 충족: 특정 애플리케이션의 요구 사항에 맞추기 위해 데이터 모델을 조정합니다.

 

비정규화의 방법:

  1. 테이블 병합: 정규화된 테이블을 하나의 테이블로 합칩니다.
  2. 중복 데이터 추가: 중복된 데이터를 추가하여 조회 및 조인 작업을 최소화합니다.
  3. 데이터 요약: 대량의 데이터를 요약하여 쿼리의 성능을 향상시킵니다.
  4. 부분화: 데이터를 부분화하여 테이블 간의 조인을 최소화합니다.

 

참고하면 좋은 글 : https://owlyr.tistory.com/20

'Interview' 카테고리의 다른 글

[Elastic Search] 역인덱스  (0) 2024.02.10

댓글