Home
home
🏡 홈
home

[DB] 정규화의 기본단계 요약

분류
개발지식
태그
DB
작성자
작성일
2024/01/29 00:27
백앤드 개발자로 근무하면서, DB정규화는 선택이 아닌 필수요소로 작용합니다. 정규화가 왜 필요하고 어떤 단계로 정규화를 해 나가야 되는지를 간략하게 요약해보았습니다.

1. 정규화란 ?

DB설계시 데이터의 무결성 및 성능개선, 이상현상 방지를 위해 필요하다.
데이터와 관계를 최소단위로 분해하여, 중복되는 데이터가 없게하는 과정이다.

2. 목적

중복 데이터를 최소화하여 테이블 불일치 위험을 최소화한다.
수정, 삭제 시 이상 현상을 방지함으로써 데이터 구조의 일관성을 최대화한다.
데이터 삽입 시 릴레이션의 재구성에 대한 필요성을 줄인다.
효과적인 검색 알고리즘을 생성할 수 있다.

3. 정규화 단계

4. 참고

실무에서는 목적에 따라 모든 정규화를 충족시키지 못할때도 있다.
예시 : 확장성을 고려하여 역정규화 필요, 단발적인 테이블 설계, 유지보수로 발생하는 변동사항 등
BCNF 까지의 단계는 완벽히 이해하고, 되도록이면 지켜야 된다고 생각한다.