자격증/sqld

[데이터베이스] sqld 데이터 모델과 성능_2

Ellie67 2021. 6. 25. 17:44

-데이터베이스 개론 2판, SQL 자격검정 실전문제 학습 후 정리한 내용입니다-

데이터베이스 개론 2판
 

IT CookBook, 데이터베이스 개론(2판)

데이터베이스로 첫 항해를 떠나는 이들에게 지도와 돛이 되어주는 책입니다. 마인드맵으로 생소한 개념 간의 관계를 한눈에 보여주고, 친근한 예와 비유를 들어 명료하게 풀어내, 데이터베이스

www.hanbit.co.kr

SQL 자격검정 실전문제
 

SQL 자격검정 실전문제 - YES24

SQL 자격검정 실전문제는 국가공인 SQL 전문가 및 국가공인 SQL 개발자 자격시험 대비 수험서로 SQL 전문가 가이드에서 다루고 있는 데이터 모델링의 이해, SQL기본 및 활용, SQL 고급 활용 및 튜닝 등

www.yes24.com

 

반정규화 절차

1. 반정규화 대상조사

- 범위처리빈도수 조사

- 대량의 범위처리 조사

- 통계성 프로세스 조사

- 테이블 조인 개수

 

2. 다른 방법유도 검토

- 뷰 테이블

- 클러스터링 적용

- 인덱스의 조정

- 응용애플리케이션

 

3. 반정규화 적용

- 테이블 반정규화

- 속성의 반정규화

- 관계의 반정규화

 

반정규화의 대상에 대해 다른 방법으로 처리

- 지나치게 많은 조인이 걸려 데이터를 조회하는 작업이 기술적으로 어려울 경우 뷰를 사용하면 이를 해결할 수도 있다.

- 대량의 데이터처리나 부분처리에 의해 성능이 저하되는 경우에 클러스터링(군집화)을 적용하거나 인덱스를 조정함으로써 성능을 향상시킬 수 있다.

- 대량의 데이터는 Primary Key의 성격에 따라 부분적인 테이블로 분리할 수 있다. 즉 파티셔닝 기법이 적용되어 성능저하를 방지할 수 있다.

- 응용 애플리케이션에서 로직을 구사하는 방법을 변경함으로써 성능을 향상시킬 수 있다.

 

칼럼수가 많은 테이블

- 트랜잭션이 접근하는 칼럼유형을 분석해서 자주 접근하는 칼럼들과 상대적으로 접근 빈도가 낮은 칼럼들을 구분하여 1:1로 테이블을 분리하면 디스크 I/O가 줄어들어 성능을 향상 시킬 수 있다.

 

파티셔닝: 데이터를 여러 부분으로 분할하는 것이다. 데이터베이스 분할은 중요한 튜닝기법으로 데이터가 너무 커져서 조회하는 시간이 길어질 때 또는 관리 용이성, 성능, 가용성 등의 향상을 이유로 행해지는 것이 일반적이다. 논리적으로는 하나의 테이블이지만 물리적으로는 여러 개의 테이블로 분리

 

슈퍼/서브 타입 데이터 모델의 변환기술

- 개별로 발생되는 트랜잭션에 대해서는 개별 테이블로 구성

- 슈퍼타입 + 서브타입 테이블로 구성

- 전체를 하나로 묶어 트랜잭션이 발생할 때는 하나의 테이블로 구성

 

UNION : 결과를 합칠 때 중복되는 행은 하나만 표시

UNION ALL : 결과를 합칠 때 중복제거를 하지 않고 모두 합침

 

논리데이터모델의 슈퍼타입과 서브타입 데이터모델을 물리적인 테이블 형식으로 변환

- 트랜잭션은 항상 전체를 대상으로 일관 처리하는데 테이블은 서브타입 별로 개별 유지하는 것으로 변환하면 UNION 연산에 의해 성능이 저하됨

- 트랜잭션은 항상 서브타입 개별로 처리하는데 테이블은 하나로 통합하여 변환하면 불필요하게 많은 양의 데이터가 집적되어 있어 성능이 저하될 수 있다.

- 트랜잭션은 항상 슈퍼+서브 타입을 함께 처리하는데 개별로 유지 하면 조인에 의해 성능이 저하될 수 있다.

 

‘=’로 들어온 조건에 해당하는 칼럼이 인덱스의 가장 앞쪽에 위치할 때 인덱스의 이용 효율성이 가장 높다고 할 수 있다.

 

엔터티 간에 논리적 관계가 있을 경우 이 데이터들이 상호간에 조인이 자주 발생한다는 것을 의미하는 것이기 때문에 데이터베이스 상에서 DBMS가 제공하는 FK 제약 생성 여부와 상관없이 조인 성능을 향상시키기 위한 인덱스를 생성해주는 것이 좋다.

 

Global Single Instance(GSI): 통합된 한 개의 인스턴스 즉, 통합 데이터베이스 구조를 의미