[SQLD]TIL 17일차

Cherta·2024년 5월 8일
0

[TIL]

목록 보기
18/30

성능 데이터 모델링과 정규화

  • 성능 데이터 모델링 : 데이터베이스의 성능을 향상시키기 위한 작업으로 성능과 관련된 사항을 고려하여 데이터 모델을 설계하는 것

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

    • 정규화를 정확하게 수행
      • 데이터를 주요 관심사별로 분산 시킬 수 있기 때문에 성능 향상의 효과가 있음
      • 정규화를 통해 중복된 데이터가 쌓이는 것을 막을 수 있음
    • 데이터베이스 용량 산정 수행
      • 어떤 테이블에 데이터가 집중되는지 파악 가능
      • 필요한 경우 테이블 분리와 조인을 통한 데이터 수집이 필요
    • 데이터베이스에서 발생되는 트랜잭션의 유형을 파악
      • CRUD 매트릭스 혹은 시퀀스 다이어그램을 보면 파악하기에 용이
      • 데이터 조회에 필요한 조인 관계 등을 파악 가능
    • 데이터베이스의 용량과 트랜잭션 유형에 따라 반정규화 수행
      • 테이블, 속성, 관계 등에 대해서 포괄적인 반정규화를 통해 성능을 조정
    • 이력 모델, PK / FK, 슈퍼 타입 / 서브 타입의 조정
      • 성능이 우수한 순서대로 칼럼의 순서를 조정
    • 성능 관점에서 데이터 모델 검증
      • 항상 성능 최적화를 위해서 데이터 모델을 검증
      • 데이터 모델이 괜찮은 형태로 구조화 되어있다고 하더라도 성능 최적화를 위한 선택을 위해 고민 필요
  • 정규화를 통한 성능 향상 전략

    • 정규화를 수행한다는 것은 데이터에 대한 중복성을 제거하여 성능을 향상시키는 것을 의미
  • 정규화 용어 및 이점

용어설명
정규화(Normalization)DBMS 테이블의 삽입, 삭제, 수정 과정에서의 이상(Anomaly) 현상의 발생을 최소화하기 위해 작은 단위의 테이블로 나눠가는 과정
정규형(NF: Normal Form)정규화된 결과물에 의해 도출된 데이터 모델이 갖춰야 할 특성을 만족하는 '정규화된 결과물'을 의미
함수적 종속성(FD: Functional Dependency)테이블의 특정한 칼럼 값(A)을 알고 있으면 다른 칼럼 값(B)을 알 수 있다고 가정할 때, 칼럼 B는 칼럼 A에 함수 종속성을 갖는다고 표현
예를 들어, 학번을 통해 학생 이름을 알 수 있다고 하면 '학생 이름은 학번에 함수적 종속성을 갖는다'고 표현할 수 있음
결정자(Determinant)함수적 종속성에서 학번은 학생 이름을 결정짓는 요소기 때문에 '결정자'라고 표현
다치 종속(MVD: MultiValued Dependency)결정자 칼럼 A에 의해 칼럼 B의 값을 다수 알 수 있을 때, 칼럼 B는 칼럼 A에 다치종속 되었다고 표현
  • 정규화의 이점
    • 데이터의 유연성
      • 종속성이 강한 데이터를 분리하여 독립된 개념으로 정의하기 때문에 높은 응집도와 낮은 결합도 원칙에 충실해짐
        • 응집도 : 요소들이 서로 관련되어 있는 정도(높을수록 품질이 좋음)
        • 결합도 : 요소들 간의 상호 의존하는 정도(결합도가 높으면 시스템 구현 및 유지보수가 어려움)
    • 데이터의 재활용성
      • 정규화를 통해 데이터의 개념이 조금 더 세분화될 수 있고 그 결과로 개념에 대한 재활용 가능성이 증가
    • 데이터의 중복 최소화
      • 정규화는 식별자가 아닌 속성이 한 번만 포함되기 때문에 데이터의 중복이 최소화

0개의 댓글