데이터베이스 반정규화: Difference between revisions
From IT Wiki
No edit summary |
No edit summary |
||
Line 4: | Line 4: | ||
== 주요 기법 == | == 주요 기법 == | ||
* 테이블 합병: 논리적으로 구분된 엔티티들을 하나의 테이블로 합친다. | * '''테이블 합병''': 논리적으로 구분된 엔티티들을 하나의 테이블로 합친다. | ||
** 논리적 모델 상으론 구분되어야 하지만, Join 없이 하나의 테이블로 관리하는 것이 성능 측면에서 유리할 수 있다. | ** 논리적 모델 상으론 구분되어야 하지만, Join 없이 하나의 테이블로 관리하는 것이 성능 측면에서 유리할 수 있다. | ||
* 중복 칼럼 추가: 게시판 테이블에 회원 정보를 일부 저장한다. | * '''중복 칼럼 추가''': 게시판 테이블에 회원 정보를 일부 저장한다. | ||
** 회원 정보 테이블과 Join 하여 불러올 수 있지만, 일부 중복 데이터만으로 Join 없이 처리한다면 더 유리할 수 있다. | ** 회원 정보 테이블과 Join 하여 불러올 수 있지만, 일부 중복 데이터만으로 Join 없이 처리한다면 더 유리할 수 있다. | ||
* 계산된 칼럼 추가: 평균치, 계량값을 특저 필드에 추가한다. | * '''계산된 칼럼 추가''': 평균치, 계량값을 특저 필드에 추가한다. | ||
** 바로바로 계산할 수 있는 값이지만, 자주 참조되는 값이라면 DB에 저장해두는 것이 유리할 수 있다. | ** 바로바로 계산할 수 있는 값이지만, 자주 참조되는 값이라면 DB에 저장해두는 것이 유리할 수 있다. | ||
* 코드 명칭 칼럼 추가: 남자 여자를 F, M이 아니라 그냥 남자, 여자로 저장한다. | * '''코드 명칭 칼럼 추가''': 남자 여자를 F, M이 아니라 그냥 남자, 여자로 저장한다. | ||
** 출력 시 '남자' '여자'로 보여줘야 하는 경우 연산을 줄일 수 있다. | ** 출력 시 '남자' '여자'로 보여줘야 하는 경우 연산을 줄일 수 있다. | ||
Revision as of 23:27, 25 December 2019
- Denormalization
- 데이터베이스 성능 향상 등을 위해 정규화된 데이터를 의도적으로 정규형을 위배한 데이터 구조로 만드는 행위
주요 기법
- 테이블 합병: 논리적으로 구분된 엔티티들을 하나의 테이블로 합친다.
- 논리적 모델 상으론 구분되어야 하지만, Join 없이 하나의 테이블로 관리하는 것이 성능 측면에서 유리할 수 있다.
- 중복 칼럼 추가: 게시판 테이블에 회원 정보를 일부 저장한다.
- 회원 정보 테이블과 Join 하여 불러올 수 있지만, 일부 중복 데이터만으로 Join 없이 처리한다면 더 유리할 수 있다.
- 계산된 칼럼 추가: 평균치, 계량값을 특저 필드에 추가한다.
- 바로바로 계산할 수 있는 값이지만, 자주 참조되는 값이라면 DB에 저장해두는 것이 유리할 수 있다.
- 코드 명칭 칼럼 추가: 남자 여자를 F, M이 아니라 그냥 남자, 여자로 저장한다.
- 출력 시 '남자' '여자'로 보여줘야 하는 경우 연산을 줄일 수 있다.
고려 사항
- 반드시 정규화 수행 후 반정규화 수행
- 튜닝 등 다른 개선 후 최후의 수단으로 수행