IT

데이터 모델과 SQL

rimicode 2022. 10. 3. 15:54
728x90
반응형
SMALL

성능 데이터 모델링

데이터베이스의 성능을 향상시키기 위해 설계 단계부터 성능과 관련된 사항들이 모델링에 반영될 수 있다.

 

성능 데이터 모델링 방법

  • 정규화
  • 반정규화
  • 테이블 통합
  • 테이블 분할

 

성능 데이터 모델링 순서

  1. 데이터 모델에 맞게 정규화를 수행
  2. 데이터베이스 용량 및 트랜잭션 유형을 파악하여 성능 저하를 일으키는 부분이 없는지 검토
  3. 용량과 트랜잭션 유형에 맞게 반정규화를 수행
  4. 성능 향상을 위한 이력모델의 조정, PK/FK 조정, 슈퍼/서브타입 조정 등을 수행
  5. 데이터 모델의 성능을 검증

정규화(Normalization)

정규화를 수행하는 이유

데이터의 무결성을 보장하기 위해

 

1차 정규화

  • 유사한 속성이 반복되지 않도록 엔티티를 분리
  • 하나의 속성이 여러 개의 속성값을 갖는 데이터 모델
  • 원자값이 아닌 도메인을 분해

2차 정규화

부분 함수 종속성을 제거

3차 정규화

  • 일반속성이 일반속성에 종속
  • 이행 함수 종속성을 제거

4차 정규화

다중값 종속성을 제거


반정규화(De-Normalization)

반정규화를 수행하는 이유

  • 여러 번의 JOIN으로 인해 성능이 저하되는 것을 방지하기 위해
  • 모델링의 마지막 단계에서 성능을 향상시키는 위해
  • 런타임에 컬럼 계산으로 인한 속도 저하 우려될 경우
    반정규화를 함으로써 조회 성능이 확실히 좋아지는 상황에서만 반정규화를 하는 것이 바람직

 

반정규화 기법

테이블 병합

  • 1:1 관계
  • 1:M 관계
  • 슈퍼/서브타입: 공통 속성과 개별 속성을 별도로 관리

테이블 분할

  • 수직
    • 분할된 테이블은 1:1 관계
    • 한 테이블에 속성의 개수가 과도하게 많을 경우 조회 성능을 향상시키기 위해 자주 쓰이는 속성과 그렇지 않은 속성을 나눔
    • 테이블의 일부 속성을 별도의 테이블로 분리
  • 수평
    • 테이블의 특정 인스턴스를 별도의 테이블로 분할

테이블 추가

  • 중복
    • 데이터 무결성을 깨뜨릴 위험성 없이 데이터 처리 성능을 향상시킬 수 있는 기법
  • 통계
  • 이력
    • 대량의 이력 테이블을 조회할 때 속도가 느려질 것을 대비하여 조회 기준이 될 것으로 판단되는 컬럼을 미리 추가해 놓는 방식

트랜잭션(Transaction)

  • 데이터를 조작하기 위한 논리적인 작업 단위
  • 하나의 커밋 단위로 묶여야 함
  • 데이터 모델로 표현 가능
  • 데이터는 트랜잭션 범위로 묶일 수 있음

 

 

 

 

 

 

 

 

 

 


※학습할 때 사용한 도서※

 
2022 유선배 SQL개발자(SQLD) 과외노트(개정판)
도서 특징 핵심만 쏙쏙 담은 알찬 수험서! SD에듀가 가장 효율적·효과적인 합격의 길을 제안합니다. 유튜브 선생님에게 배우는 유·선·배, 그 첫 번째 시리즈! 〈유선배 SQL개발자 과외노트〉와 함께 2022년 SQLD 합격의 주인공이 되어 보세요! Step 1. 유튜브 무료 동영상 강의 제공 유튜브에서 ‘SQL전문가 정미나’를 검색해보세요! 저자 직강의 동영상 강의를 무료로 제공합니다. 혼자 공부하기 어려워 도움이 필요할 때, 체계적인 커리큘럼으로 공부하고 싶을 때, 온라인 강의를 무료로 듣고 싶을 때 유선배와 함께 해요! Step 2. 쉽게 풀어 쓴 핵심이론 SQL개발자 시험의 노하우를 가진 저자가 출제경향을 분석하여 수험생이 어렵게 느낄 수 있는 부분을 콕 짚어서 친절하고 쉽게 설명해줍니다. 알기 쉽게 풀어 쓴 이론과 이해를 돕는 그림, 표와 함께 효율적으로 학습해 보세요! Step 3. Level UP Test로 이론 다지기 방대하게만 느껴지는 이론! 시험 문제로 어떻게 출제되는지 재빠른 확인이 가능하도록 각 이론마다 ‘Level UP Test’를 수록했습니다. 학습한 이론이 어떤 식으로 출제되는지를 체크하면서 포인트를 바로 내 것으로 만들 수 있습니다. Step 4. 적중예상문제로 실전 감각 익히기 적중예상문제는 실제 시험과 비슷한 수준으로 문제를 생성하였으므로 어떤 문제가 출제될지 예측할 수 있습니다. 챕터별 예상문제를 풀면서 실전 감각을 익히고 해설을 통해 한 번 더 복습할 수 있습니다. Step 5. 상세한 해설로 실력 다지기 많은 문제를 푸는 것보다 중요한 것은 한 문제를 정확히 파악하고 이해하는 것입니다. 한 문제, 한 문제마다 완벽한 해설, 상세한 해설을 수록했습니다. 자세하고 꼼꼼한 해설로 모르는 문제도 충분히 해결할 수 있습니다.
저자
정미나
출판
시대고시기획
출판일
2022.06.03
728x90
반응형
LIST

'IT' 카테고리의 다른 글

SELECT 문  (0) 2022.10.05
관계형 데이터베이스  (1) 2022.10.04
트랜잭션(Transaction) & NULL  (0) 2022.10.01
SQL 반정규화(De-Normalization) 정리  (0) 2022.09.20
백준 파이썬 알고리즘 연습 - 1157 단어 공부  (0) 2022.08.13