제 2장 데이터 모델과 성능
제 1절 성능 데이터 모델링의 개요
성능 데이터모델링
: 데이터베이스 성능향상을 목적으로 설계단계의 데이터 모델링 때부터 성능과 관련된 사항이 데이터모델링에 반영될 수 있도록 하는 것이다.
성능 데이터모델링 특징
분석/설계 단계에서 데이터베이스 처리 성능을 향상시킬 수 있는 방법을 고려해야 함
데이터모델은 성능을 튜닝하면서 변경 될 수 있다.
성능 데이터 모델링 수행 절차
가. 데이터 모델링을 할 때 정규화를 정확하게 수행한다.
나. 데이터베이스 용량산정을 수행한다.
다. 데이버테이스에 발생되는 트랜잭션의 유형을 파악한다.
라. 용량과 트랜잭션의 유형에 따라 반정규화를 수행한다.
마. 이력모델의 조정, PK/FK조정, 슈퍼타입/서브타입 조정등을 수행한다.
바. 성능관점에서 데이터 모델을 검증한다.
제 2절 정규화와 성능
정규화
-데이터베이스의 테이블이 잘 만들어졌는지 평가하고, 잘 만들지 못한 테이블을 고쳐나가는 과정
-테이블을 정규화라고 불리는 형태에 부합하게 만들어감
-데이터베이스에서 삽입, 업데이트, 삭제 이상을 없앨 수 있음
-새로운 종류의 데이터를 추가할 때 테이블 구조 수정을 많이 하지 않아도 된다.
정규화 단계(원부이)
1정규화 : 원자성. 모든 속성은 반드시 하나의 값만 가져야 한다.
2정규화 : 부분 종속. 모든 속성은 반드시 모든 기본키에 종속되어야 한다.
3정규화 : 이행 종속. 기본키가 아닌 모든 속성간에는 서로 종속될 수 없다.
제 3절 반정규화와 성능
반정규화
: 정규화된 엔터티, 속성, 관계에 대해 시스템의 성능향상과 개발과 운영의 단순화를 위헤 중복, 통합, 분리 등을 수행
데이터를 중복하여 성능을 향상시키기 위한 기법
데이터를 조회할 때 디스크 I/O량이 많아서 성능저하가 예쌍되거나 칼럼을 계산하여 읽을 때 성능이 저하될 것이 예상되는 경우 수행함
반정규화 기법
가. 테이블 반정규화 : 테이블 병합/ 테이블 분할 / 테이블 추가
나. 칼럼 반정규화 : 중복칼럼 추가 / 파생칼럼 추가 / 이력테이블칼럼 추가 / PK에 의한 칼럼 추가 / 응용시스템 오작동을 위한 칼럼 추가
다. 관계 반정규화 : 중복관계추가
제 4절 대량데이터에 따른 성능
대량데이터 발생에 따른 테이블 분할 개요
-로우 체이닝 : 로우길이가 너무 길어 데이터블록 하나에 데이터가 모두 저장되지 않고 두개 이상 저장
-로우 마이그레이션 : 데이터블록에서 수정이 발생하면 수정된 데이터를 해당 데이터블록에서 저장하지 못하고 다른 블록의 빈 공간을 찾아 저장하는 방식
반정규화의 대상에 대해 다른 방법으로 처리
-지나치게 많은 조인이 걸려 데이터를 조회하는 작업이 기술적으로 어려울 경우 뷰를 사용하여 이를 해결할 수도 있다.
-대량의 데이터처리나 부분처리에 의해 성능이 저하되는 경우에 클러스터링을 적용하거나 인덱스를 조정함으로써 성능을 향상시킬 수 있다.
-대량의 데이터는 PK의 성격에 따라 부분적인 테이블로 분리할 수 있다. 즉 파티셔닝 기법이 적용되어 성능저하를 방지할 수 있다.
-응용 애플리케이션에서 로직을 구사하는 방법을 변경함으로써 성능을 향상시킬 수 있다.
파티셔닝 기법 : 하나의 테이블에 많은 양의 데이터가 저장될 때 데이터를 쪼개도 성능이 저하될 대. 이때 논리적으로는 하나의 테이블이지만 물리적으로는 여러 개의 테이블로 분리하여 데이터 액세스 성능도 향상시키고, 데이터 관리방법도 개선할 수 있도록 테이블에 적용하는 기법
제 5절 데이터베이스 구조와 성능
슈퍼/ 서브 타입 데이터 모델의 변환 기술
-개별로 발생되는 트랜잭션에 대해서는 개별 테이블로 구성
-슈퍼타입 + 서브타입에 대해 발생되는 트랜잭션에 대해서는 슈퍼타입+서브타입 테이블로 구성
-전체를 하나로 묶어 트랜잭션이 발생할 때는 하나의 테이블로 구성
트랜잭션 : 데이터베이스의 상태를 변경하는 논리적 작업 단위
하나의 트랜잭션은 반드시 commit/rollback이 됩니다. ACID
제 6절 분산데이터베이스와 성능
분산데이터베이스 : 데이터베이스를 연결하는 빠른 네트워크 환경을 이용하여 데이터베이스를 여러 지역 여러 노드로 위치시켜 사용성/ 성능 등을 극대화 시킨 데이터베이스
장점
-지역 자치성, 점증적 시스템 용량 확장
-신뢰성과 가용성
-효율성과 융통성
-빠른 응답 속도와 통신비용 절감
-데이터의 가용성과 신뢰성 증가
-시스템 규모의 적절한 조절
-각 지역 사용자의 요구 수용 증대
<->GSI : 통합된 한 개의 인스턴스. 즉 통합 데이터베이스 구조를 의미
'SQLD' 카테고리의 다른 글
| SQL | 절차형 SQL 프로시저, 사용자 정의함수, 트리거 (0) | 2022.02.26 |
|---|---|
| SQL | 응용 SQL 집계함수, 그룹함수, 윈도함수 (0) | 2022.02.26 |
| SQL | DCL (0) | 2022.02.25 |
| SQLD | SQL 기본 (0) | 2022.02.22 |
| SQLD | 데이터 모델링의 이해 (0) | 2022.02.20 |