728x90
어제와는 반대의 개념이다.
1. 반정규화란?
정규화가 보통 데이터모델을 최대한 분류하면서 성능을 향상시키려 하는 움직임이였다면, 반정규화는 데이터를 통합, 중복 시키면서 성능을 향상시키려는 방법이다. 데이터의 무결성/ 일관성은 떨어지겠지만, 테이블 통합, 테이블 분할, 중복 테이블 추가, 중복 속성 추가 등을 통하여 개발자의 편의 및 성능 향상이 기대될경우 사용한다.
2. 반정규화 종류
아래와 같은 4가지 종류가 있다.
종류 | 장점 및 용도 | 단점 |
---|---|---|
테이블 통합 | 두 개 이상의 테이블이 같이 사용되는 경우가 많아 테이블 통합이 성능에 더 효과가 좋은경우 | 데이터 검색은 간편하지만 레코드 증가로 인해 처리량이 증가한다. 테이블 통합으로 인해 입력, 수정, 삭제 규칙이 복잡해질 수 있다. Not Null, Default, Check 등의 제약조건을 설계하기 어려워진다. |
테이블 분할 | 테이블을 수평/수직으로 나누는 것이 사용하기에 좋은 경우 | 기본키의 유일성 관리가 어려워진다. 데이터 양이 적거나 사용 빈도가 낮은 경우 오히려 느려질 수 있기에 테이블 분할이 필요한지를 고려해야 함 데이터 검색에 중점을 두어 테이블 분할 여부를 결정한다. |
중복 테이블 추가 | 다른 서버의 테이블을 사용하거나, 여러 테이블에서 데이터를 추출해 사용하는 경우 | 1잘못 추가할 경우 DB에 공간을 오히려 차지에 비효율적이 될 수 있다. |
중복 속성 추가 | 그냥 사용할 경우 조인을 과다하게 많이 사용하게 되어 경로를 검색하기 어려울 경우 | 테이블 중복과 속성의 중복 고려하며 일관성 및 무결성에 유의한다. SQL 그룹 함수를 이용하여 처리할 수 있어야 함 저장 공간의 지나친 낭비 고려 |
728x90
'ㄱ.공부' 카테고리의 다른 글
금요일 자투리 16 (0) | 2023.02.10 |
---|---|
Job, Scheduler (0) | 2023.02.09 |
정규화(Normalization) (0) | 2023.02.07 |
Drop, Delete, Truncate (0) | 2023.02.06 |
이상(Anomaly)과 함수적 종속 (0) | 2023.02.05 |