본문 바로가기
DB

SQLD 시험 1-4 : 데이터 모델과 성능

by 스노위13 2023. 5. 16.

1. 성능 데이터 모델링
1) 정의: 데이터베이스 성능향상을 목적으로 분석이나 설계단계의 데이터 모델링를 할 때부터 성능과 관련된 사항이 반영될 수 있게 하는것
2) 고려사항: 정확한 정규화 수행 → 데이터베이스 용량 산정 → 트랜잭션의 유형 파악 → 반정규화 수행 → 이력 모델 조정, PK/FK 조정, 수퍼/서브타입 조정 → 성능관점에서 데이터 모델 검증

2. 정규화
1) 정의: 함수적 종속을 가지고 있는 일반 속성을 의존자로 하여 입력/수정/삭제 이상을 제거하는 것
2) 함수적 종속성: 데이터들이 어떤 기준값에 의해 종속되는 현상(결정자 - 종속자)
3) 정규화와 성능: 정규화를 수행하면 데이터처리(DML) 성능 향상, 조회는 저하될 수도 있음
4) 정규화 종류
- 1차 정규화: 속성이 원자값을 가도록 함, 기본키 보유
- 2차 정규화: 기본키가 2개 이상의 속성일 때(복합키) 부분적 함수 종속성 제거
- 3차 정규화: 기본키가 아닌 일반 컬럼에 의존하는 컬럼(이진적 함수 종속 관계) 제거

3. 반정규화
1) 정의: 시스템의 성능향상이나 개발과 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법
2) 절차: 반정규화 대상 조사 → 다른 방법 검토 → 반정규화 적용 
ⓐ 반정규화 대상 조사: 범위처리빈도수 조사, 대량의 범위 처리 조사, 통계성 프로세스 조사, 테이블 조인 개수 조사
ⓑ 다른 벙법 검토 :  뷰, 클러스터링 적용, 인덱스 조정, 파티셔닝, 캐쉬
ⓒ 반정규화 적용: 테이블, 속성, 관계
3) 반정규화 기법
ⓐ 테이블 반정규화
- 테이블 병합: 1:1 관계 테이블 병합, 1:M 관계 테이블 병합, 슈퍼/서브타입 테이블 병합
- 테이블 분할: 수직 분할(컬럼 단위), 수평 분할(로우 단위)
- 테이블 추가: 중복테이블, 통계테이블, 이력테이블, 부분테이블
ⓑ 컬럼 반정규화
- 중복 컬럼 추가: 조인 감소를 위해 중복된 컬럼 위치
- 파생 컬럼 추가: 미리 값을 계산하여 보관
- 이력테이블 컬럼 추가: 최근값 여부, 시작과 종료일자 등의 기능성 컬럼 추가
- PK에 의한 컬럼 추가: 복합의미를 갖는 PK를 단일 속성으로 구성하였을 경우 발생
- 응용시스템 오작동을 위한 컬럼 추가: 복구를 위해 이전 데이터를 임시적으로 중복 보관
ⓒ 관계 반정규화
- 중복관계 추가: 여러 경로를 거쳐 조인하는 경우 성능저하를 예방하기 위해 추가적인 관게를 맺음, 데이터 무결성에 영향 없음

4. 대량 데이터
1) 테이블의 수평, 수직 분할 모델링
- 로우체이닝: 로우 길이가 너무 길어서 두 개 이상의 블록에 걸처 하나의 로우가 저장된 형태
- 로우마이그레이션: 데이터 블록에서 수정이 발생하면 수정된 데이터를 해당 데이터 블록에 저장하지 못하고 다른 블록의 빈 공간을 찾아 저장
- 트랜잭션 분석을 통해 1:1 관계로 분리하여 성능향상이 가능하도록 해야 함
2) 파티셔닝
- RANGE PARTITION: 날짜 또는 숫자값으로 분리 가능, 영역별로 트랜잭션이 분리되는 경우
- LIST PARTITION: 핵심적인 코드값 등으로 PK가 구성되어 있고 대량의 데이터가 있는 경우 값 각각에 의해 파티셔닝
- HASH PARTITION: HASH 조건에 따라 해싱 알고리즘이 적용되어 테이블 분리

5. 데이터베이스 구조와 성능
1) 슈퍼/서브 타입 모델 
- 슈퍼 타입: 공통 부분
- 서브 타입: 공통 부분을 상속 받아 다른 엔티티와 차이나는 속성에 대해 별도로 구분
- 논리적 데이터 모델에서 사용,  분석 단계에서 사용

2) 슈퍼/서브 타입 변환 
- One to One: 개별 테이블, 확장성 우수, 조인성능 나쁨, I/O좋음, 관리 안좋음
- Plus Type: 슈퍼+서브 타입 테이블, 확장성 보통, 조인성능 나쁨, I/O좋음, 관리 안좋음
- Single Type: 전체를 묶은 하나의 테이블, 확장성 나쁨, 조인성능 우수, I/O나쁨, 관리 좋음

3) 인덱스 특성을 고려한 PK/FK 데이터베이스 성능 향상 
- PK 컬럼 순서 중요
- FK 컬럼의 인덱스 컬럼화 필요
- 여러 개의 속성이 하나의 인덱스로 구성되어 있을 때, 앞 쪽에 위치한 속성 값이 비교자인 것이 효율적

6. 분산 데이터베이스
1) 분산 데이터베이스 : 분산된 데이터베이스를 하나의 가상 시스템으로 사용할 수 있게 한 데이터베이스
2) 분산 데이터베이스의 투명성
- 위치 투명성: 사용하려는 데이터의 저장 장소 명시 불필요
- 중복 투명성: DB 객체가 여러 곳에 중복되어 있는지 알 필요 없음
- 병행 투명성: 다수의 트랜잭션을 동시에 수행해도 결과의 일관성을 유지
- 분할 투명성: 하나의 논리적 관계가 여러 단편으로 분할되어 여러 곳에 저장
- 장애 투명성: 구성요소의 장애와 무관하게 트랜잭션의 원자성 유지
- 지역사상 투명성: 지역 DBMS와 물리적 DB 사이의 Mapping 보장, 각 지역시스템 이름과 무관한 이름 사용 가능
3) 분산 데이터베이스의 장단점
- 장점: 지역 자치성과 점증적 시스템 용량 확장, 신뢰성, 가용성, 효용성, 융통성, 빠른 응답 속도, 통신 비용 절감, 시스템 규모 조절, 각 지역 사용자의 요구 수용 
- 단점: 개발 비용, 오류 잠재성 증대, 처리 비용, 설게와 관리의 복잡성과 비용, 불규칙한 응답 속도, 통제 어려움, 데이터 무결성 위협
4) 분산 데이터베이스 적용 기법
- 테이블 위치 분산: 각각의 테이블 다르게 위치, 위치 파악을 위한 도식화된 위치별 데이터베이스 문서 필요
- 테이블 분할 분산: 각각의 테이블을 쪼개어 분산(수평 분할, 수직 분할)
- 테이블 복제 분산: 동일 테이블을 다른 지역이나 서버에서 동시 생성하여 관리(부분복제, 광역복제)
- 테이블 요약 분산: 분산된 다른 내용의 데이터로 통합된 데이터 산출

'DB' 카테고리의 다른 글

SQLD 시험 : 1-3 : 식별자  (0) 2023.05.11
SQLD 시험 : 1-2 엔티티, 속성, 관계  (0) 2023.05.10
SQLD 시험 : 1-1 데이터 모델링  (0) 2023.05.09
SQL : Oracle 테이블 제약 조건 조회  (0) 2023.04.13
!= 과 <> 의 차이와 ANSI SQL  (0) 2022.11.22

댓글