심심한잉여의 잡동사니

[SQLD] 데이터 모델과 성능 -2 본문

자격증/SQLD

[SQLD] 데이터 모델과 성능 -2

심심한잉여 2022. 5. 5. 10:18
반응형

성능 데이터 모델링
 - DB 성능향상을 목적으로 설계 단계의 데이터 모델링 때부터 정규화, 반정규화, 테이블 분할, 조인구조, PK, FK 등
   여러가지 성능과 관련된 사항이 데이터 모델링에 반영 될 수 있도록 하는 것

성능 데이터 모델링 고려사항
 - 정규화 → 용량산정 → 트랜젝션 유형 파악 → 반정규화 → 이력 모델 조정, PK/FK 조정, 슈퍼/서브타입 조정 → 성능관점 데이터 모델 검증 (분석/설계 단계에서 성능 데이터 모델링하기)

함수적 종속성
 - 데이터들이 어떤 기준값에 의해 종속되는 현상(기준값을 결정자, 종속되는 값을 종속자라고 함)

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

1. 제 1 정규형(1NF)
 - 모든 속성은 반드시 하나의 값을 가져야한다.
 - 도메인이 원자값

2. 제 2 정규형(2NF)
 - 모든 속성은 반드시 하나의 값을 가져야 한다.
 - 부분적 함수 종속 제거

3. 제 3 정규형(3NF)
 - 모든 속성들이 기본키에 이행적 함수 종속이 아니다.

4. 보이스 코드 정규형(BCNF)
 - 모든 결정자가 후보키이다 (후보키가 아닌 것 들을 제외 및 분리)

반정규화
정규화된 엔터티 속성 관계에 대해 시스템의 성능향상과 개발과 운영의 단순화를 위해 중복 통합 분리 등을 수행하는
데이터 모델링 기법

반정규화 장점
일반적으로 정규화 시 입력 수정 삭제 성능이 향상되며 반정규화시 조인 성능이 향상된다.

반정규화 절차
반정규화 대상 조사 -> 다른방법 검토(뷰, 클러스터링, 인덱스 조정) -> 반정규화 적용

반정규화 기법

 1. 테이블 반정규화
 - 테이블 병합(1:1,슈퍼/서브타입)
 - 테이블 분할(수직_칼럼단위, 수평_로우단위)
 - 테이블 추가(중복, 통계, 이력, 부분)

 2. 컬럼 반정규화
 - 중복컬럼추가, 파생컬럼, 이력테이블 컬럼 추가, PK에 의한 컬럼 추가, 응용시스템 오작동 위한 컬럼 추가

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

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

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

파티셔닝
대량의 데이터는 PK의 성격에 따라 부분적인 테입즐로 분리할 수 있다.
파티셔닝 키에 의해 물리적 저장공간 분리

 1. 레인지 파티션(Range Partition)
 - 대상 테이블이 날짜 또는 숫자값으로 분리가 가능하고 각 영역별로 트랜젝션이 분리되는 경우

 2. 리스트 파티션(List Partition)
 - 지점, 사업소 등 핵심적인 코드값으로 PK가 구성되어 있고 대량의 데이터가 있는 테이블의 경우

 3. 해쉬 파티션(Hash Partition)
 - 지정된 HASH 조건에 따라 HASH 알고리즘이 적용되어 테이블이 분리

슈퍼/서브 타입 모델의 변환기술
 1. One to One : 개별로 발생되는 트랜젝션에 대해서는 개별 테이블로 구성
 2. Plus Type : 슈퍼타입 서브타입에 대해 발생되는 트랜젝션에 대해서는 슈퍼 서브타입 + 테이블로 구성
 3. Single Type : 전체를 하나로 묶어 트랜젝션이 발생할 때는 하나의 테이블로 구성

인덱스 특성을 고려한 PK/FK 데이터 베이스 성능향상 이해
인덱스의 특징은 여러 개의 속성이 하나의 인덱스로 구성되어 있을 때 앞 쪽에 위치한 속성의 값으로 비교해야 좋은 효율을 나타낸다. 앞쪽에 위치한 속성의 값이 가급적 아니면 최소한 '=' 범위 'BETWEEN', '<>'가 들어와야 효율적이다.

분산 데이터베이스
여러 곳으로 분산되어 있는 DB를 하나의 가상 시스템으로 사용할 수 있도록 한 데이터베이스

분산 데이터베이스 투명성
분할, 위치, 지역사상, 중복, 장애, 병행 투명성

분산 데이터베이스의 장단점
장점
 - 지역 자치성, 점증적 시스템 용량 확장, 신뢰성, 가용성, 효용성, 융통성, 빠른 응답, 통신비용 절감, 데이터 가용성, 신뢰성, 시스템규모조절, 요구수용 증대

단점
 - 비용, 오류잠재성 증대, 처리비용, 설계관리 복잡성, 불규칙한 응답속도, 통제어려움, 데이터 무결성위협

분산 데이터베이스의 적용 기법
 1. 테이블 위치 분산
 - 설계된 테이블을 본사와 지사 단위로 분산

 2. 테이블 분할 분산
 - 각각의 테이블을 쪼개어 분산

 3. 테이블 복제 분산
 - 동일한 테이블 다른 지역이나 서버에서 동시에 생성하여 관리

 4. 테이블 요약 분산
 - 지역 간에 또는 서버 간에 데이터가 비슷하지만 서로 다른 유형으로 존재하는 경우

반응형

'자격증 > SQLD' 카테고리의 다른 글

[SQLD] SQL활용 JOIN, 서브쿼리  (0) 2022.05.11
[SQLD] SQL기본 GROUP BY, ROWNUM, JOIN  (0) 2022.05.10
[SQLD] SQL기본 연산자, 함수  (0) 2022.05.09
[SQLD] DML,DCL,DDL,TCL  (0) 2022.05.06
[SQLD] 데이터 모델링의 이해 -1  (0) 2022.05.04