
🧩 정규화(Normalization) 쉽게 이해하기
데이터베이스에서 정규화(Normalization)는 데이터를 효율적으로 저장하고, 중복과 오류를 줄이기 위해 테이블을 정리하는 과정입니다.
즉, 한마디로 말하면
👉 “데이터를 깔끔하게 나누는 작업”입니다.
⸻
📊 왜 정규화가 필요할까?
정규화를 하지 않으면 다음 문제가 생깁니다.
* 데이터 중복 저장
* 수정 시 여러 곳을 동시에 변경해야 함
* 데이터 불일치 발생 가능
* 저장 공간 낭비
👉 그래서 데이터베이스는 정규화를 통해 구조를 개선합니다.
⸻
🧱 정규화의 핵심 목적
정규화의 목적은 다음 3가지입니다.
* 데이터 중복 최소화
* 데이터 무결성 유지
* 데이터 구조 단순화
⸻
🔢 정규화 단계 쉽게 이해하기
1️⃣ 제1정규형 (1NF)
제1정규형
👉 하나의 칸에는 하나의 값만 들어가야 합니다.
✔ 예시 문제
* 한 칸에 “홍길동, 김철수” 같이 여러 값 저장 ❌
✔ 해결
* 각각 행으로 분리
⸻
2️⃣ 제2정규형 (2NF)
제2정규형
👉 기본키의 일부에만 의존하는 데이터를 분리합니다.
✔ 핵심
* 부분 종속 제거
* 테이블 분리로 중복 감소
⸻
3️⃣ 제3정규형 (3NF)
제3정규형
👉 기본키가 아닌 속성 간의 종속 관계를 제거합니다.
✔ 핵심
* A → B → C 구조 제거
* 불필요한 의존성 삭제
⸻
⚙️ 정규화의 장점
* 데이터 중복 제거
* 저장 공간 절약
* 데이터 수정 오류 감소
* 유지보수 쉬움
⸻
⚠️ 단점도 있음
* 테이블이 많아짐
* JOIN 연산 증가
* 쿼리가 복잡해질 수 있음
⸻
🧠 정리
정규화는 데이터베이스를 더 효율적이고 안전하게 만들기 위한 과정입니다.
중복을 줄이고 구조를 나누어 데이터의 정확성을 높입니다.
⸻
💡 핵심 요약
* 1NF = 하나의 값만
* 2NF = 부분 종속 제거
* 3NF = 이행 종속 제거
* 목표 = 중복 제거 + 무결성 유지