데이터베이스 성능 향상을 목적으로 설계단계의 데이터 모델링 때부터 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것
- 정확한 정규화 수행
- DB 용량산정 수행
- DB 발생 트랜잭션 유형 파악
- 용량과 트랜잭션의 유형에 따라 반정규화를 수행
- 이력모델의 조정, PK/FK 조정, 슈퍼타입/서브타입 조정 등을 수행
제 1정규화 : 한 칸에는 하나의 데이터만
제 2정규화 : 하나의 컬럼에는 관련된 데이터만 존재해야 함
-> 비관계형 DB는 대부분 제 2정규화 수행x(속도가 느려지기 때문) BUT 관계형 DB는 정규화를 해놓는 것이 일반적
partial dependency : 하나의 composite primary key에 종속
제 3정규화 : 일반 컬럼에만 종속된 컬럼을 다른 곳으로 빼기
🤍 참조 : 애플코딩 https://www.youtube.com/watch?v=Y1FbowQRcmI
정규화된 엔터티, 속성, 관계에 대해 시스템의 성능향상과 개발과 운영의 단순화를 위해 중복, 통합, 분리를 수행하는 데이터 모델링 기법
1. 반정규화 대상조사
-> 범위처리빈도수 조사, 대량 범위 처리 조사, 통계성 프로세스 조사, 테이블 조인 개수
2. 다른 방법 유도 검토
-> 뷰 테이블, 클러스터링 적용, 인덱스의 조정, 응용애플리케이션
3. 반정규화 적용
-> 테이블, 속성, 관계의 반정규화
partitioning 적용
하나의 테이블에 다량의 데이터가 저장될 시 논리적으로는 하나의 테이블이지만 물리적으로는 여러 개의 테이블로 분리하여 데이터 엑세스 성능을 향상시키고, 데이터 관리방법을 개선할 수 있도록 테이블에 적용하는 기법
트랜잭션은 항상 전체를 통합하여 분석 처리. super-sub 타입이 하나의 테이블로 통합되어 있으면 테이블에 집적된 데이터만 읽어 처리할 수 있기 때문에 다른 형식에 비해 성능이 우수함.
'='가 있는 속성 값이 앞에 들어오는 것이 가급적 좋음. 그 이후 BETWEEN...etc