본문 바로가기
Q&A2018년 11월 27일1분 읽기

MySQL 정규화 1NF 2NF 3NF 설명

데
데이터베이스초보
조회 1885댓글 4

데이터베이스 정규화에서 1NF, 2NF, 3NF가 각각 뭔가요?

왜 정규화를 해야 하는지, 실무에서는 어디까지 하는지 궁금합니다.

댓글 4

코코딩하는민수7년 전

1NF: 각 컬럼에 하나의 값만 (배열X)
2NF: 1NF + 부분 함수 종속 제거 (복합키의 일부에만 종속되는 컬럼 분리)
3NF: 2NF + 이행 함수 종속 제거 (A→B→C일 때 C를 별도 테이블로)

데데이터베이스초보(guest)코딩하는민수7년 전
실무에서는 보통 3NF까지 하나요?
코코딩하는민수코딩하는민수7년 전

보통 3NF까지 하고, 성능이 필요한 부분은 역정규화(denormalization)합니다. 조회 성능과 정규화는 트레이드오프예요.

DDB전문가(guest)7년 전
정규화의 목적은 데이터 중복을 줄이고 무결성을 보장하는 것입니다. 하지만 JOIN이 많아지면 성능이 떨어질 수 있어서 적절한 균형이 필요해요.
Ctrl+Enter로 등록