hoon's bLog

SQLD 데이터 모델과 성능 본문

IT/SQLD

SQLD 데이터 모델과 성능

개발한기발자 2023. 3. 1. 17:18
반응형

성능 데이터 모델링

- DB 성능향상을 목적으로 설계단계의 데이터 모델링 때부터 정규화, 반정규화, 테이블통합, 테이블분할, 조인구조, PK, FK 등

  여러 가지 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것

- 문제 발생시점에 튜닝, 성능을 튜닝하며 데이터 모델이 변경 가능

- 분석/설계 단계에서 데이터 모델에 성능을 고려한 데이터 모델링을 수행할 경우, 성능저하에 따른 재업무 비용을 최소화할 수 있음.
- 데이터의 증가가 빠를수록, 성능저하에 따른 성능 개선비용은 기하급수적으로 증가

 

성능 데이터 모델링 고려사항 순서
- 데이터 모델링을 할 때 정규화를 정확하게 수행
- DB 용량산정을 수행
- DB에 발생되는 트랜잭션의 유형을 파악
- 용량과 트랜잭션의 유형에 따라 반정규화를 수행

- 이력모델의 조정, PK/FK조정, 슈퍼/서브타입 조정

- 성능관점에서 데이터 모델을 검증


함수적 종속성

- 데이터들이 어떤 기준값에 의해 종속되는 현상

- 기준값을 결정자, 종속되는 값을 종속자 ex) 주민등록번호(결정자) - 이름 / 출생지 / 주소(종속자)

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

 

대량 데이터 발생에 따른 형태
로우체이닝(Row Chaining)

- 로우길이가 너무 길이서 데이터 블록 하나에 데이터가 모두 저장되지 않고, 두 개 이상의 블록에 걸쳐 하나의 로우가 저장되어 있는 형태
로우마이그레이션(Row Migration)

- 데이터 블록속에서 수정이 발생하면 수정된 데이터를 해당 데이터 블록에서 저장하지 못하고 다른 블록의 빈 공간을 찾아 저장하는 방식

 

대량 데이터 저장 및 처리로 인해 성능 향상 기법
RANGE Partition 적용
- 숫자값으로 분리가 가능하면 범위를 지정해서 분리

- 데이터보관주기에 따른 테이블 관리가 용이
HASH Partition (해쉬적용)
- 지정된 HASH조건에 따라 해쉬 알고리즘이 적용되어 테이블이 분리

- 설계자는 테이블 데이터가 정확히 어떻게 들어갔는지 알 수 없음
LIST Partition (특정값 지정)
- 대용량 데이터를 특정값에 따라 분지 저장할 수 있으나, 데이터 보관주가에 따라 쉽게 삭제하는 기능은 제공 X
COMPOSITE Partition(범위와 해쉬가 복합)

- 컬럼 수가 적지만 데이터 용량이 많아 성능저하가 예상되는 경우 테이블에 대해  Partitioning 전략을 고려해야 함

 

정규화

- 반복적인 데이터를 분리하고 각 데이터가 종속된 테이블에 적절하게 배치되도록 하는 것

- 정규화 수행하면 데이터 처리(DML) 성능 향상(입력, 수정, 삭제 기능 향상)

- 조회는 향상 또는 저하될 수 있음 반정규화 장점(일반적으로 조회 성능향상이 됨)

 

1차 정규화(1NF)

- 같은 성격, 내용 컬럼이 연속될 때 컬럼제거, 테이블 생성(중복 속성에 대한 분리)

- 1:M으로 분리

2정규형(2NF)

- 일반속성은 주식별자 전체에 종속적이어야 함.(부분함수 종속제거) 

3정규형(3NF)

- 일반속성 간에는 종속성이 없어야 함. (추이함수 종속성 제거)

 

반정규화

- 조회 기능 향상

- 반정규화 절차 : 반정규화 대상 조사 다른 방법 검토 반정규화 적용


반정규화 기법
테이블 반정규화
- 테이블병합(1:1, 1:M, 슈퍼/서브타입) 테이블 분할(수직_칼럼단위, 수평_로우단위) 테이블추가(중복, 통계, 이력, 부분)
칼럼 반정규화
- 중복칼럼추가, 파생칼럼추가, 이력테이블 칼럼 추가, PK에 의한 칼럼추가, 응용시스템 오작동 위한 칼럼추가
관계 반정규화

- 중복관계 추가, 테이블, 칼럼 반정규화와 달리 데이터 무결성 영향 없음

 

슈퍼 / 서브 타입 모델
- 슈퍼타입 : 공통부분
- 서브엔터티 : 공통부분 상속받아, 다른 엔터티와 차이가 있는 속성 대해 별도로 구분 변환기준? 데이터 양 & 트랜잭션 유형

 

슈퍼/서브타입 변환
- One to One : 개별테이블, 확장성 우수, 조인성능 나쁨, I/O 좋음, 관리 안 좋음
- Plus Type : 슈퍼서브타입테이블, 확장성 보통, 조인성능 나쁨, I/O 좋음, 관리 안 좋음

- Single Type : 하나의 테이블, 확장성 나쁨, 조인성능 우수, I/O 나쁨, 관리 좋음

- 인덱스 특성을 고려한 PK/FK 데이터베이스 성능향상 이해
- PK 칼럼 순서 중요, FK칼럼의 인덱스 컬럼화 필요

 

분산 데이터베이터 투명성
분할(단편화), 위치, 지역사상, 중복, 장애, 병행 투명성

 

분산 데이터베이스의 장단점
- 장점 : 지역자치성, 점증적 시스템 용량확장, 신뢰성, 가용성, 효용성, 융통성, 빠른 응답, 통신비용 절감, 데이터가용성, 신뢰성, 시스템규모조절, 요구수용 증대
- 단점 : 비용, 오류잠재성 증대, 처리비용, 설계관리복잡성, 불규칙한 응답속도, 통제어려움, 데이터 무결성위협

 

분산 데이터베이스의 적용 기법
테이블 위치 분산

- 테이블 구조 변화 X, 각각의 테이블 위치가 다르게 지정

테이블 분할 분산

- 각각 테이블을 쪼개어 분산
- 수평 분할 : 로우단위 / 수직 분할 : 컬럼단위
테이블 복제 분산

- 동일한 테이블 다른 지역이나 서버에서 동시에 생성하여 관리

- 부분복제 :  통합된 건 본사, 각 지사별로 해당 로우 

- 광역복제 : 본사, 지사 모두 동일한 데이터 가지고 있음

테이블 요약 분산

- 분석요약 : 각 지사별로 요약, 본사에 통합

- 통합요약 : 각 지사별로 존재하는 다른 내용이 정보요약, 본사에 통합


1차정규형 : 모든 도메인이 원자값만으로 구성되도록 하는 정규형. 중복제거

2차정규형 : 부분적 함수종속 제거 (완전 함수 종속)
3차정규형 : 이행적 함수(XY, YZ, XZ) 종속 제거

 

참조 : https://rebro.kr/160

 

[DB] 8. 정규형 (1NF, 2NF, 3NF, BCNF)

[목차] 1. 제1 정규형 2. 제2 정규형 3. 제3 정규형 4. BCNF 정규형이란 정규화된 결과를 말하며, 제1 정규형, 제2 정규형, 제3 정규형, BCNF, 제4 정규형, 제5 정규형이 있다. 실무적으로 제4, 제5 정규형은

rebro.kr

 

728x90
반응형

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

SQLD SQL 기본 및 활용, 최적화 기본원리  (3) 2023.03.07
SQLD 데이터 모델링의 이해  (2) 2023.02.28