정규화 단계 적용과 비정규화 판단 기준
데이터 모델링에서 1NF → 2NF → 3NF를 순서대로 검토하는 것을 기본으로 하되, 맹목적으로 3NF까지 적용하지 않고 사용 패턴에 맞게 결정합니다. OLTP 시스템은 쓰기 성능과 데이터 무결성이 중요하기 때문에 3NF 이상 정규화를 지향합니다. 반면 분석용 DW에서는 조인 비용이 쿼리 속도에 직접 영향을 주므로, 의도적으로 비정규화해 Flat 구조를 만드는 선택을 합니다. 실제 적용 사례로, 주문 테이블에 고객 주소가 반복 저장되는 것을 발견하고 3NF로 고객 테이블을 분리한 뒤 FK로 연결했습니다.
배송지는 주문 시점 고객 주소가 고정돼야 한다는 비즈니스 로직을 발견하고, 고객 주소 변경이 과거 주문에 영향을 주지 않도록 주문 테이블에 주소를 비정규화로 유지하는 방향으로 설계했습니다. 정규화는 원칙이 아니라 비즈니스 요구에 맞게 조정하는 도구입니다.