데이터베이스 정규화에서 1NF, 2NF, 3NF가 각각 뭔가요?
왜 정규화를 해야 하는지, 실무에서는 어디까지 하는지 궁금합니다.
1NF: 각 컬럼에 하나의 값만 (배열X)2NF: 1NF + 부분 함수 종속 제거 (복합키의 일부에만 종속되는 컬럼 분리)3NF: 2NF + 이행 함수 종속 제거 (A→B→C일 때 C를 별도 테이블로)
보통 3NF까지 하고, 성능이 필요한 부분은 역정규화(denormalization)합니다. 조회 성능과 정규화는 트레이드오프예요.
댓글 4
1NF: 각 컬럼에 하나의 값만 (배열X)
2NF: 1NF + 부분 함수 종속 제거 (복합키의 일부에만 종속되는 컬럼 분리)
3NF: 2NF + 이행 함수 종속 제거 (A→B→C일 때 C를 별도 테이블로)
보통 3NF까지 하고, 성능이 필요한 부분은 역정규화(denormalization)합니다. 조회 성능과 정규화는 트레이드오프예요.