[SQLD] 2_데이터 모델과 성능(1)

잠이보약·2023년 9월 2일

자격증

목록 보기
4/7

2장. 데이터 모델과 성능

1. 성능 데이터 모델링의 개요

  1. 성능 데이터 모델의 정의
    • 정의
      1. 데이터베이스 성능 향상을 목적으로 설계 단계의 데이터 모델링 때부터 성능 관련 사항이 데이터 모델링에 반영될 수 있도록 하는 것
      1. 성능 관련 사항: 정규화, 반정규화, 테이블 통합/분할, 조인 구조, PK, FK 등
    • 데이터 모델의 성능 저하 원인
      1. 데이터 모델 구조
      1. 대용량 데이터
      2. 특성을 고려하지 않고 인덱스 생성
  2. 수행 시점
    • 일찍 수행할수록 비용이 저렴하고, 늦게 수행할수록 비용이 비싸진다.
    • 분석/설계 단계에서 성능을 고려한 데이터 모델링을 수행할 경우, 성능 저하에 따른 재업무 비용을 최소화할 수 있다.
  3. 고려 사항
    1. 데이터 모델링 시, 정확한 정규화 수행.
    2. 데이터베이스 용량산정 실시
    3. 데이터베이스에 발생되는 트랜잭션의 유형 파악
    4. 용량과 트랜잭션 유형에 따른 반정규화 수행
    5. 이력모델의 조정, PK/FK조정, 슈퍼타입/서브타입 조정 등 수행
    6. 성능 관점에서 데이터 모델 검증

2. 정규화와 성능

  1. 정규화
    • 정의
      1. 데이터를 결정하는 결정자에 의해 함수적 종속을 가지고 있는 일반 속성을 의존자로 하여, 입력/수정/삭제 이상을 제거하는 것
      2. 데이터의 일관성, 최소한의 데이터 중복 및 데이터 유연성을 위한 방법이며, 데이터를 분해하는 과정
      1. 정규화된 모델은 테이블이 분해됨.
      2. 불필요한 데이터를 입력하지 않아도 되므로 중복 데이터가 제거됨
    • 절차
      1. 제1정규화: 속성의 원자성 확보, 속성의 중복값 제거, 기본 키 설정
      1. 제2정규화: 기본 키가 복수인 속성에 대해 부분 함수 종속성 제거, 복합 인스턴스의 종속적 중복 제거
      2. 제3정규화: 기본 키 이외의 컬럼 간 종속성 제거, 이행 함수 종속성 제거, 일반속성 종속성 제거
      3. BCNF: 후보 키가 기본 키를 종속시킬 경우 제거, 복수의 후보 키가 복합 속성이고 중첨되는 경우에만 해당
      4. 4정규화, 5정규화 등이 있지만, 실무에서는 보통 제3정규화 수준으로 수행
    • 정규화를 통한 성능 향상 전략
      1. 데이터에 대한 중복성을 제거하여 데이터가 관심사별로 처리되는 경우가 많아지므로, 성능이 향상되는 특징
      1. 데이터 처리 성능: 조회 vs 입력/수정/삭제 > 한 파트의 성능 향상은 다른 파트의 성능 저하를 가져올 수 있다
    • 함수적 종속성에 근거한 데이터 정규화 수행 필요

참고:
https://yganalyst.github.io/sql/SQL_5/#google_vignette
https://fromitot.tistory.com/86

profile
백엔드 개발자 지망생

0개의 댓글