[sql] 정규화 및 역정규화
목차
- 정규화란 무엇인가?
- 정규화의 목적
- 정규화의 단계
- 역정규화란 무엇인가?
- 역정규화의 목적
- 역정규화의 예시
1. 정규화란 무엇인가?
정규화란 데이터베이스 설계 과정 중에서 중복을 최소화하고 데이터 불일치를 방지하기 위해 테이블을 구조화하는 프로세스를 말합니다.
2. 정규화의 목적
정규화의 주요 목적은 다음과 같습니다.
- 데이터 중복 최소화
- 데이터 불일치 방지
- 삽입/수정/삭제 이상 방지
3. 정규화의 단계
정규화는 보통 제 1~제 5 정규형으로 나뉘며, 각 단계마다 데이터의 중복을 최소화하고 불일치나 이상 현상을 제거합니다.
예를 들어, ‘직원 정보’ 테이블에서 ‘부서 정보’를 분리하여 별도의 테이블로 만드는 것이 정규화의 한 예시입니다.
4. 역정규화란 무엇인가?
역정규화는 성능 향상을 위해 정규화된 테이블을 다시 결합하는 프로세스를 말합니다. 이는 읽기 작업에 대한 성능을 높이는 데 사용됩니다.
5. 역정규화의 목적
역정규화의 주요 목적은 읽기 연산을 빠르게 만들기 위함이며, 이를 통해 성능 향상을 이룰 수 있습니다.
6. 역정규화의 예시
예를 들어, 고객 정보와 주문 정보를 합친 테이블을 생성하여 주문 처리 시 조회 속도를 향상시킬 수 있습니다.
마이크로소프트 SQL Server의 관점에서 봤을 때, 역정규화를 통해 데이터 웨어하우스나 데이터마트를 구성하면 성능 향상을 이룰 수 있습니다.
마무리
정규화는 데이터 불일치와 이상 현상을 방지하고, 역정규화는 성능 향상을 위해 필요한 것으로 이 두 가지 개념을 잘 이해하고 적절히 활용하는 것이 중요합니다.