1. 함수 종속을 적용해 정규화

  • 일반적인 정규화 단계이며 모델링을 수행하는 단계


2. 성능 문제 발생 요건 도출

  • 비정규화를 고려하기 시작하는 단계. 정규형으로 처리하면 성능에 문제가 되는 요건이 도출된 것
  • 성능 문제는 사전에 인지하기가 쉽지 않음.
  • 실제 운영되는 데이터를 가지고 액세스 패턴을 분석해야 성능 문제를 파악할 수 있음.


3. 비정규화 외에 다른 방안 검토

  • 인덱스를 조정하거나 힌트 등으로 해결하 수 있는지 검토
  • 뷰(View)를 사용해 원천(Raw) 데이터 중복 관리 방지. 단순히 조인을 피하려고 중복 속성을 채택할 때는 뷰를 사용하면 조인을 피할 수 있음.
  • 파티션(Partition)으로 데이터를 나눠서 해결하 수 있는지 검토
  • DBMS의 최신 기술을 적용해 해결할 수 있는지 검토
  • 클러스터링(Clustering)이나 IOT(Index Oriented Table) 같은 특수 형태의 테이블 사용 검토


4. 비정규화 수행

  • 어떠한 대안도 요건을 충분히 해결할 수 없다면 비정규형을 고려


5. 정합성 방안 검토

  • 중복된 속성은 무엇이며 엔터티의 원천(Raw) 데이터는 어디인지를 명확하게 정의해야 함
  • 양자 간에 데이터를 어떻게 맞춰야 하는지를 결정해야 함. 모델러가 제시해야 함


CASE_1) 정규형 수행 전 엔터티


CASE_1) 정규형 엔터티


CASE_1) 비정규형 엔터티-추출,중복 속성이 사용된 정규형