데이터베이스 반정규화: Difference between revisions

From IT Wiki
No edit summary
No edit summary
Line 4: Line 4:


== 주요 기법 ==
== 주요 기법 ==
* 계층적 테이블 Merge
* 테이블 합병: 논리적으로 구분된 엔티티들을 하나의 테이블로 합친다.
* 중복 칼럼 추가
** 논리적 모델 상으론 구분되어야 하지만, Join 없이 하나의 테이블로 관리하는 것이 성능 측면에서 유리할 수 있다.
* 계산된 칼럼 추가
* 중복 칼럼 추가: 게시판 테이블에 회원 정보를 일부 저장한다.
* 코드 명칭 칼럼 추가
** 회원 정보 테이블과 Join 하여 불러올 수 있지만, 일부 중복 데이터만으로 Join 없이 처리한다면 더 유리할 수 있다.
* 계산된 칼럼 추가: 평균치, 계량값을 특저 필드에 추가한다.
** 바로바로 계산할 수 있는 값이지만, 자주 참조되는 값이라면 DB에 저장해두는 것이 유리할 수 있다.
* 코드 명칭 칼럼 추가: 남자 여자를 F, M이 아니라 그냥 남자, 여자로 저장한다.
** 출력 시 '남자' '여자'로 보여줘야 하는 경우 연산을 줄일 수 있다.


== 고려 사항 ==
== 고려 사항 ==

Revision as of 23:27, 25 December 2019

Denormalization
데이터베이스 성능 향상 등을 위해 정규화된 데이터를 의도적으로 정규형을 위배한 데이터 구조로 만드는 행위

주요 기법

  • 테이블 합병: 논리적으로 구분된 엔티티들을 하나의 테이블로 합친다.
    • 논리적 모델 상으론 구분되어야 하지만, Join 없이 하나의 테이블로 관리하는 것이 성능 측면에서 유리할 수 있다.
  • 중복 칼럼 추가: 게시판 테이블에 회원 정보를 일부 저장한다.
    • 회원 정보 테이블과 Join 하여 불러올 수 있지만, 일부 중복 데이터만으로 Join 없이 처리한다면 더 유리할 수 있다.
  • 계산된 칼럼 추가: 평균치, 계량값을 특저 필드에 추가한다.
    • 바로바로 계산할 수 있는 값이지만, 자주 참조되는 값이라면 DB에 저장해두는 것이 유리할 수 있다.
  • 코드 명칭 칼럼 추가: 남자 여자를 F, M이 아니라 그냥 남자, 여자로 저장한다.
    • 출력 시 '남자' '여자'로 보여줘야 하는 경우 연산을 줄일 수 있다.

고려 사항

  • 반드시 정규화 수행 후 반정규화 수행
  • 튜닝 등 다른 개선 후 최후의 수단으로 수행

같이 보기