관계형 데이터 모델링 프리미엄 가이드 DB구축 (2014년)
비정규화 과정 0 0 36,762

by 구루비스터디 비정규화 Denormalization [2018.06.10]


13.2 비정규화 과정

  • 비정규형은 중복을 허용하는 체계화된 모델이다. 제대로 사용하면 비정규형은 정규형의 장점을 살리면서 정규형을 뛰어넘을 수 있는 모델이다.


좋은 비정규형의 과정

  • 함수 종속을 적용해 정규화
  • 성능문제발생요건 도출
  • 비정규화 외에 다른 방안 검토
  • 비정규화 수행
  • 정합성 방안 검토


비정규화 단계


첫번째 단계
  • 일반적인 정규화 단계이며 모델링을 수행하는 단계이다. 비정규화를 수행할 때도 거쳐야 하는 단계이다.


두번째 단계
  • 성능 문제는 사전에 인지하기가 쉽지않다. 실제 운영되는 데이터 가지고 엑세스 패턴을 분석해야 성능 문제를 파악할수있다.
  • 그런데 모델링은 개발보다 선행돼 분석 설계단계에서 진행되므로 개발 중에 발생하는 요건으로 말미암아 비정규화를 고려하는 경우가 많다.
  • 결국 모델링 단계에서는 여측 가능한부분에 대하여 비정규화할뿐 정확히 판단이 힘들다


세번째 단계
  • 비정규형을 채택하기전에 대안을 찾는다.


대안 대상
  • 뷰(VIEW)를 사용해 원천(RAW) 데이터 중복 관리 방지
  • 파티션(Partition)으로 데이터를 나눠서 해결할 수 있는지 검토
  • 클러스터링(Clustering)이나 IOT(Index Oriented Table)같은 특수 형태의 테이블 사용 검토
  • 인덱스를 조종하거나 힌트 등으로 해결할 수 있는지 검토
  • DBMS의 최신 기술을 적용해 해결할 수 있는지 검토


네번째 단계
  • 다양한 종류의 비정규형을 고려해야한다.


다섯번째 단계
  • 데이터 정합성을 어떻게 구현할지 방안을 마련해야한다.


예시

  • 초기 모델링후 엔터티
그림 13.2 정규화 수행전 엔터티


  • 고객 속성으로 정규화된 엔터티
그림 13.3 정규형 엔터티


  • 최종 거래일자 속성를 비정규형(추출)으로 채택
그림 13.4 비정규형 엔터티-추출 ㆍ중복 속성이 사용된 정규형
"구루비 데이터베이스 스터디모임" 에서 2014년에 "관계형 데이터 모델링 프리미엄 가이드" 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/3655

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입