본문 바로가기
컴퓨터 활용(한글, 오피스 등)/기타

데이터웨어하우스(DW)를 구축 시 정보시스템 테이블 정규화 수준은 어느 정도여야 하나

by 3604 2025. 7. 15.
728x90
**정보시스템 테이블(=원본 Landing/Bronze)**은 **정규화 수준을 전혀 건드리지 않고 0NF(원본 그대로)**로 두는 것이 표준입니다.
정규화·비정규화는 Silver 이상 계층에서 **DW 목적(Star Schema, 분석 성능)**에 맞춰 수행합니다.

1. 왜 Bronze(원본)는 0NF(비정규화)로 유지하나?


이유                                  설명
변화 추적 원본 키·Null·중복까지 그대로 적재해야 이력 복원·리니지 확보 가능
재처리 안전성 정규화하면 PK/관계가 바뀌어 원본 재적재 시 데이터 불일치 발생
적재 속도 별도 변환 없이 Bulk Load 가능, 실시간 파이프라인에서도 부하 최소화
소스 독립성 ERP·SaaS·CSV 등 각기 다른 정규화 수준을 모두 받아들일 수 있음

2. Silver 이상 계층에서의 정규화 전략


계층                            목적                                                      권장 정규화  수준
Silver (정제) 데이터 품질 확보, 표준화 3NF 또는 2NF



Gold (분석) 빠른 쿼리, 직관적 모델 Star Schema = 비정규화(Denormalized)




3. 실무 체크리스트


단계                                                        정규화 수준                                   주요 작업
Bronze Landing 0NF (원본 그대로) PK·Null·중복 모두 보존
Silver Cleansing 2NF~3NF - 중복 제거



Gold Star Schema 1NF (비정규화) - 차원 테이블: 속성 Flatten


4. 예시

  • Bronze: crm_order (주문번호 중복·Null 가능)
  • Silver: dim_customer, dim_product (3NF)
  • Gold: fct_sales (주문번호 FK, 고객키 FK, 제품키 FK, 금액, 수량) → 1NF

결론

**원본 적재 단계(Bronze)**에서는 정규화를 하지 않고,
**분석용 계층(Gold)**에서만 Star Schema에 맞춰 적절히 비정규화합니다.
728x90