SQLD_1과목 데이터모델의 이해

·2021년 8월 30일
0

SQL

목록 보기
1/2

1과목-데이터 모델(이론적인부분)

성능 데이터모델링의 이해

성능데이터 모델링은 데이터모델링을 할때 어떤 작업유형에 따라 성능향상을 도모해야하는지, 목표를 분명하게 해야 정확한 성능향상 모델링을 할 수 있습니다.

모델링 수행 시점은 분석/설계 단계에서 데이터베이스 처리 성능을 향상시킬 수 있는 방법을 고려하는 것이 좋습니다. (고려사항: 정규화/반정규화)

정규화의 성능의 이해

정규화: 데이터에 대한 중복성을 제거해 주는것
-> 정규화가 잘되있으면 입력,수정,삭제 성능이 향상됨
-> 반정규화를 많이 하면 조회 성능이 향상됨
1차정규화: 중복성에 대한 분리(로우단위대상/컬럼단위도 중복 해당)

함수적 종속성: 데이터들이 어떤 기준값에 의해 종속되는 현상
예) 결정자-주민등록번호/종속자-이름,출생지,주소

->함수적 종속성에 근거한 정규화 필요 (종속 되어 있는 것을 다 분리시켜준다 생각)
1차정규화 : 정규화의 대상이 칼럼에 의한 반복적 속성 값을 갖는것
2차정규화 : 정규화의 대상이 식별자에 종속되지 않는 속성의 중복이 있는것(프라이머리키pk가 중복되면 해당)
3차정규화 : 식별자 외 일반컬럼간의 종속 존재가 있다면 제거

반정규화의 성능의 이해

반정규화: 정규화된 엔티티,속성,관계에 대해 시스템의 성능향상 과 개발과 운영의 단순화를 위해 중복,통합,분리 등을 수행하는 데이터모델링 기법(조인으로 인한 성능 저하가 예상될 때 반정규화를 실시)

적용법
데이터모델링 시 정규화를 정확히 수행
데이터베이스 요량 산성을 수행
데이터베이스에 발생되는 트랜잭션의 유형 파악
용량과 트랜잭션의 유형에 따라 반정규화를 수행
이력모델의 조정, PK/FK조정, 슈퍼타입/서브타입 조정 등을 수행
성능관점에서 데이터모델 검증

테이블의 반정규화
기법 분류 - 반정규화 기법
테이블 병합 - 1:1 관계 테이블 병합, 1:M 관계 테이블 병합, 슈퍼/서브타입 테이블 병합
테이블 분할 - 수직분할, 수평분할
테이블 추가 - 중복테이블, 통계테이블, 이력테이블, 부분테이블 추가

칼럼의 반정규화
중복칼럼 추가, 파생칼럼 추가, 이력테이블 칼럼 추가, pk에 의한 칼럼 추가, 응용시스템 오작동을 위한 칼럼 추가

반정규화는 대상에 따라서 다양한 방법으로 처리
->지나치게 많은 조인이 걸려 데이터를 기술적으로 어려울 경우 뷰를 사용
->대량 데이터처리나 부분처리에 의해 성능이 저하되는 경우 클러스터링
->대량의 데이터는 pk의 성격에 따라 부분적인 테이블로 분리(파티셔닝)
->응용 애플리케이션에서 로직을 구사하는 방법을 변경

대량데이터에 따른 성능의 이해

대량데이터 발생에 따른 테이블-로우 체이닝/로우 마이그레이션
->로우체이닝: 로우의 길이가 너무 길어서 데이터 블록 하나에 데이터가 모두 저장되지 않고 두 개 이상 저장되는 현상
->로우 마이그레이션: 테이블블록에서 수정이 발생하면 수정된 데이터를 해당 블록에서 저장하지 못하고 다른 블록의 빈 공간을 찾아 저장하는 방식

대량데이터 저장 및 처리로 인해 Range Partition/list partition/hash partition 적용 됩니다.

데이터베이스 구조와 성능의 이해

-> 앞쪽에 위치한 속성값이 = 아니면 최소한 범위 between이 들어와야 인덱스가 좋은 효율을 나타낼 수 있다

분산데이터베이스와 성능의 이해

-> 분산데이터베이스: 데이터베이스를 연결하는 빠른 네트워크 환경을 이용하여 데이터베이스를 여러 지역 여러 노드로 위치시켜 사용성/성능 등을 극대화 시킨 데이터베이스

  • 분산데이터베이스의 투명성: 분할/위치 지역사상/중복/장애/병행
profile
공부기록

0개의 댓글