Sherry IT Blog

[SQLD 핵심 요약] 데이터 모델과 성능 본문

DataBase/SQLD

[SQLD 핵심 요약] 데이터 모델과 성능

sherrylover 2021. 3. 19. 21:28
728x90
반응형

*성능 데이터모델링

-데이터베이스 성능 향상이 목적으로 설계단계의 데이터 모델링 때부터 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는것

-데이터의 증가가 빠를수록 성능저하에 따른 성능개선비용은 증가한다,

-데이터모델은 성능을 튜닝하면서 변경이 될 수 있다.

-분석/설계 단계에서 성능을 고려한 데이터 모델링을 수행할 경우 성능 저하에 따른 Rework비용을 최소화 할 수 있는 기회를 가지게 된다.

 

*모델링의 순서

1) 정규화

2) 용량산정

3)트랜잭션 유형 파악

4)반정규화

5)조정(PK,슈퍼타입,서브타입 조정)

6)데이터 모델 검증

 

*성능 데이터 모델링 고려사항

1.데이터 모델링을 할 때 정규화를 정확하게 수행한다.

2.데이터베이스 용량산정을 수행한다.

3.데이터베이스에 발생되는 트랜잭션의 유형을 파악한다.

4.용량과 트랜잭션의 유형에 따라 반정규화를 수행한다.

5.이력모델의 조정,PK/FK조정, 슈퍼타입/서브타입 조정 등을 수행한다.

6.성능관점에서 데이터 모델을 검증한다.

 

*함수적 종속성

결정자 ► 종속자

ex) 주민등록번호 ► (이름,출생지,주소)

기본적으로 데이터는 속성간의 함수종속성에 근거하여 정규화되어야한다.

 

*대량 데이터 발생에 따른 형태

-로우체이닝(Row Chaining) : 로우길이가 너무 길이서 데이터 블록 하나에 데이터가 모두 저장되지 않고 두개 이상의 블록에 걸처 하나의 로우가 저장되어 있는 형태

 

-로우마이그레이션(Row Migration) : 데이터 블록속에서 수정이 발생하면 수정된 데이터를 해당 데이터 블록에서 저장하지 못하고 다른 블록의 빈 공간을 찾아 저장하는 방식

 

*대량 데이터 저장 및 처리로 인해 성능 향상 기법

1 )  RANGE Partition 적용

- 숫자값으로 분리가 가능하면 범위를 지정해서 분리, 데이터보관주기에 따른 테이블관리가 용이함

 

2) HASH Partition (해쉬적용)

-지정된 HASH조건에 따라 해쉬 알고리즘이 적용되어 테이블이 분리되며 설계자는 테이블 데이터가 정확히 어떻게 들어갔는지 알 수 없다.

 

3) LIST Partition (특정값 지정)

- 대용량 데이터를 특정값에 따라 분지 저장할 수 있으나, 데이터 보관주가에 따라 쉽게 삭제하는 기능은 제공될 수 없다.

 

4) COMPOSITE Partition(범위와 해쉬가 복합)

 

*칼럼 수가 적지만 데이터용량이 많아 성능저하가 예상되는 경우 테이블에 대해 파티셔닝 전략을 고려해야함

 

*정규화

1정규형(1NF) : 모든 속성은 반드시 하나의 값을 가져야한다.(릴레이션이어야한다.) - 원자성만족

2정규형(2NF) :일반속성은 주식별자 전체에 종속적이어야한다.(부분함수 종속제거) 

3정규형(3NF) : 일반속성 간에는 종속성이 없어야 한다. ( 추이 함수 종속성 제거)

*기능향상

정규화 ► 입력/수정/삭제 기능 향상

반정규화  ► 조회 기능 향상

 

 

========================================================

 

*트랜잭션의 특성

ACID

-원자성(Atomicity)

트랜잭션의 작업은 모두 수행되거나 모두 수행되지 않아야함

 

-일관성(COnsistency)

트랜잭션이 완료되면 데이터 무결성 이 일관되게 보장되어야함

 

-고립성(Isolation)

트랜잭션이 다른 트랜잭션으로부터 고립된 상태로 수행되어야함

 

-지속성(Durability)

트랜잭션이 완료되면 장애가 발생하더라도 변경 내용이 지속되어야함 

728x90
반응형

'DataBase > SQLD' 카테고리의 다른 글

[SQL 핵심요약] SQL 활용  (0) 2021.03.20
[SQL 핵심요약] SQL 기본  (2) 2021.03.19
[SQLD 핵심 요약] 데이터모델링의 이해  (0) 2021.03.18
Comments