본문 바로가기
자격증/SQLD

SQLD 요약 - (2) 데이터 모델과 성능

by 땅콩둘기 2021. 5. 24.
반응형

성능 데이터 모델링 

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

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

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

함수적 종속성

데이터들이 어떤 기준값에 의해 종속되는 현상 (기준값을 결정자, 종속되는 값을 종속자)

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

정규화 

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

 

 1. 제1 정규형 (1NF)

    - 모든 속성은 반드시 하나의 값을 가져야한다.

    - 도메인이 원자값

 2. 제2 정규형 (2NF)

    - 모든 속성은 반드시 기본키 전부에 종속 되어야 한다.

    - 부분적 함수 종속 제거

    (기본키에 의해 함수적 종속성을 가지고 있지 않는 것들을 분리 )

 3. 제3 정규형 (3NF)

    - 모든 속성들이 기본키에 이행적 함수 종속이 아니다.

 3. 보이스 코드 정규형 (BCNF)

    - 모든 결정자가 후보키이다 ( 후보키가 아닌 것들을 제외 및 분리)

반정규화

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

반정규화 장점

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

반정규화 절차

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

반정규화 기법

- 테이블 반정규화

      ➡ 테이블병합(1:1, 1:M, 슈퍼/서브타입) 

      ➡ 테이블 분할(수직_칼럼단위,수평_로우단위) 

      ➡테이블추가(중복,통계,이력,부분)

- 칼럼 반정규화

      ➡중복칼럼추가, 파생칼럼추가, 이력테이블 칼럼 추가, PK에 의한 칼럼추가,응용시스템 오작동 위한 칼럼추가

- 관계 반정규화

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

로우체이닝

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

로우마이그레이션 

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

파티셔닝

PK에 의해 테이블을 분할하는 방법

1️⃣ RANGE PARTITION : 대상 테이블이 날짜 또는 숫자값으로 분리가 가능하고 각 영역별로 트랜잭션이 분리되는 경우 ex) _0401 요금

2️⃣ LIST PARTITION : 지점 , 사업소 등 핵심적인 코 드값으로 PK가 구성되어 있고 대량의 데이터가 있는 테이블의 경우 ex) _ 고객 서울

3️⃣ HASH PARTITION : HASH 지정된 조건에 따라 해시 알고리즘이 적용되어 테이블이 분리

슈퍼/서브 타입 모델

✔ 슈퍼타입 : 공통부분

✔ 서브엔터티 : 공통부분 상속받아 다른 엔터티와 차이가 있는 속성 대해 별도로 구분

❓ 변환기준? 데이터 양 & 트랜잭션 유형

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

▶ One to One : 개별로 발생되는 트랜잭션에 대해서는 개별 테이블 로 구성 (확장성 우수,  조인성능이 나쁨, I/O좋음, 관리 안좋음)

▶ Plus Type : 슈퍼타입 서브타입에 대해 발생되는 트랜잭션에 대 해서는 슈퍼 서브타입 + 테이블로 구성 (확장성 보통, 조인성능 나쁨, I/O좋음, 관리 안좋음)

▶ Single Type : 전체를 하나로 묶어 트랜잭션이 발생할 때는 하나 의 테이블로 구성 (확장성 나쁨, 조인성능 우수, I/O나쁨, 관리좋음)

인덱스 특성을 고려한 PK/FK 데이터베이스 성능향상 이해

인덱스의 특징은 여러 개의 속성이 하나의 인덱스로 구성되어 있을 때 앞쪽에 위치한 속성의 값으로 비교해야 좋은 효율을 나타낸다.

앞쪽에 위치한 속성의 값이 가급적 아니면 최소한 ‘=’ 범위 ‘BETWEEN’ ‘<>’ 가 들어와야 효율적이다.

분산 데이터베이스

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

분산 데이터베이터 투명성

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

분산 데이터베이스의 장단점

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

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

분산 DB 6 를 만족하기 위한 가지 투명성

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

분산 데이터베이스의 적용 기법

테이블 위치 분산 - 설계된 테이블을 본사와 지사 단위로 분산

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

    ➡ 수평 분할 - 로우단위, 수직 분할 - 칼럼단위

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

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

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

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

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

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

 

반응형

댓글