[sql] 정규화 및 역정규화

목차

  1. 정규화란 무엇인가?
  2. 정규화의 목적
  3. 정규화의 단계
  4. 역정규화란 무엇인가?
  5. 역정규화의 목적
  6. 역정규화의 예시

1. 정규화란 무엇인가?

정규화란 데이터베이스 설계 과정 중에서 중복을 최소화하고 데이터 불일치를 방지하기 위해 테이블을 구조화하는 프로세스를 말합니다.


2. 정규화의 목적

정규화의 주요 목적은 다음과 같습니다.


3. 정규화의 단계

정규화는 보통 제 1~제 5 정규형으로 나뉘며, 각 단계마다 데이터의 중복을 최소화하고 불일치나 이상 현상을 제거합니다.

예를 들어, ‘직원 정보’ 테이블에서 ‘부서 정보’를 분리하여 별도의 테이블로 만드는 것이 정규화의 한 예시입니다.


4. 역정규화란 무엇인가?

역정규화는 성능 향상을 위해 정규화된 테이블을 다시 결합하는 프로세스를 말합니다. 이는 읽기 작업에 대한 성능을 높이는 데 사용됩니다.


5. 역정규화의 목적

역정규화의 주요 목적은 읽기 연산을 빠르게 만들기 위함이며, 이를 통해 성능 향상을 이룰 수 있습니다.


6. 역정규화의 예시

예를 들어, 고객 정보와 주문 정보를 합친 테이블을 생성하여 주문 처리 시 조회 속도를 향상시킬 수 있습니다.


마이크로소프트 SQL Server의 관점에서 봤을 때, 역정규화를 통해 데이터 웨어하우스나 데이터마트를 구성하면 성능 향상을 이룰 수 있습니다.

마무리

정규화는 데이터 불일치와 이상 현상을 방지하고, 역정규화는 성능 향상을 위해 필요한 것으로 이 두 가지 개념을 잘 이해하고 적절히 활용하는 것이 중요합니다.

참고자료