성능 데이터 모델링이란 데이터베이스 성능향상을 목적으로 설계단계의 데이터 모델링 때부터 정규화, 반정규화, 테이블통합, 테이블분할, 조인구조, PK, FK 등 여러 가지 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것
데이터 모델링을 할 때 어떤 작업 유형에 따라 성능 향상을 도모해야 하는지 목표를 분명하게 해야 정확한 성능 향상 모델링을 할 수 있음
분석/설계 단계에서 DB 처리 성능 향상 방법을 고려해야해
정규화 정확하게 수행
용량산정수행
트랜잭션 유행 파악
용량, 트랜젝션 유형에 따라 반정규화
조정 및 데이터 모델 검증
성능에는 두 종류 있음.
★ 함수적 종속성에 근거한 정규화 수행 필요
정규화된 엔터티, 속성, 관계에 대해 시스템의 성능향상과 개발(Development)과 운영(Maintenance)의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법
협의의 반정규화는 데이터를 중복하여 성능을 향상시키기 위한 기법이라고 정의할 수 있고
넓은 의미의 반정규화는 성능을 향상시키기 위해 정규화된 데이터 모델에서 중복, 통합, 분리 등을 수행하는 모든 과정을 의미
데이터를 조회시 디스크 I/O량이 많거나 경로가 너무 멀어 조인으로 인한 성능저하가 예상되거나 칼럼을 계산하여 읽을때 성능이 저하될 것이 예상되는 경우 반정규화를 수행
반정규화대상 조사, 다른 방법 유도 검토, 반정규화 적용
일의 처리되는 양이 한군데에 몰리는 현상은 어떤 업무에 있어서 중요한 업무에 해당되는 데이터가 특정 테이블에 있는 경우에 발생이 되는데 이런 경우 트랜잭션이 분산 처리될 수 있도록 테이블단위에서 분할의 방법을 적용할 필요
하나의 테이블에 많은 칼럼있으면 다 못봄. - 많은 칼럼은 로우체이닝과 로
우마이그레이션이 많아지게 되어 성능이 저하
많은 양의 데이터가 예상될 경우 파티셔닝을 적용하거나 PK에 의해 테이블을 분할하는 방법을 적용
가. RANGE PARTITION 적용
나. LIST PARTITION 적용
다. HASH PARTITION 적용
1.데이터모델링 완성 / DB용량 산정
2. 대량 데이터 테이블에ㅓ 트랜잭션 처리 분석
3 칼럽 or 로우 단위 집중화 발생 분석 - 분리 검토
= Extended ER모델
업무를 구성하는 데이터의 특징을 공통과 차이점의 특징을 고려하여 효과적으로 표현
(공통은 슈퍼타입으로 모델링하고, 공통으로부터 상속받아 다른 엔터티와 차이가 있는 속성은 별도의 서브엔터티 구분)
★ PK/FK 칼럼 순서와 성능
PK 순서 중요! 인덱스의 특징은 여러 개의 속성이 하나의 인덱스로 구성되어 있을 때 앞쪽에 위치한 속성의 값이 비교자로 있어야 인덱스가 좋은 효율. - 앞쪽에 위치한 속성값이 가급적 ‘=‘아니면 최소한 범위 BETWEEN이 들어와야 됨
PK 의 순서를 인덱스 특징에 맞게 고려하지 않으면 테이블에 접근하는 트랜잭션의 특징에 효율적이지 않은 인덱스가 생성되어 있으므로 인덱스의 범위를 넓게 이 용하거나 Full Scan 을 유발하게 되어 성능이 저하
물리적인 테이블에 FK 제약 걸었을 때는 반드시 FK 인덱스를 생성하도록 하고
FK 제약이 걸리지 않았을 경우에는 FK 인덱스를 생성하는 것을 기본정책으로 하되
발생되는 트랜잭션에 의해 거의 활용되지 않았을 때에만 FK 인덱스를 지우는 방법으로 하는 것이 적절
여러 곳으로 분산되어있는 데이터베이스를 하나의 가상 시스템으로 사용할 수 있도록 한 데이터베이스
논리적으로 동일한 시스템에 속하지만, 컴퓨터 네트워크를 통해 물리적으로 분산되어 있는 데이터들의 모임. 물리적 Site 분산, 논리적으로 사용자 통합·공유
분산 데이터베이스는 데이터베이스를 연결하는 빠른 네트워크 환경을 이용하여 데이터베이스를 여러 지역 여러 노드로 위치시켜 사용성/성능 등을 극대화 시킨 데이터베이스라
분산데이터베이스가 되기 위해서는 6가지 투명성(Transparency)을 만족해야 함.
가. 테이블위치분산
나. 테이블분할분산 - 수평분할,수직분할
다. 테이블복제분산 - 부분복제,광역복제
라. 테이블요약분산 - 분석요약,통합요약