관리 메뉴

log.Sehee

데이터베이스 기초 2 본문

CS

데이터베이스 기초 2

Sehe_e 2023. 11. 15. 20:52

성능 데이터 모델링

  : DB 성능 향상을 위한 사항이 데이터 모델링에 반영되도록 하는 것

 

수행 시점

  : 분석/설계 단계, 성능 데이터 모델링 시점이 늦어질수록 재업무 비용이 증가함

 

고려사항

  : 정규화 수행, DB 용량 산정과 트랜잭션 유형 파악을 통한 반정규화 수행 ( 정규화는 무조건 해야 함 )

 


정규화와 성능

 

정규화 (Normalization)

  : 데이터 분해 과정, 이상현상(abnomality)제거

 

정규형 (NF; Normal Form)

 : 정규화로 도출된 데이터 모델이 갖춰야 할 특성

 

함수적 종속성 (FD; Functional Dependency)

  : 결정자와 종속자의 관계, 결정자의 값으로 종속자의 값을 알 수 있음

 

다치 종속 (MVD; Multivalued Dependency)

  : 여러 칼럼이 동일한 결정자의 종속일 때

 

정규화 이론

  1. 1차, 2차, 3차 보이스코드 정규화는 함수적 종속성에 근거
  2. 4차 정규화는 다치 종속을 제거
  3. 5차 정규화는 조인에 의한 이상현상을 제거하여 정규화를 수행함

 

1차 정규화

  : 속성의 원자성 확보 / 다중값 속성을 분리함

 

2차 정규화

  : 부분 함수 종속성 제거 일부 기본키에만 종속된 속성을 분리 기본키가 하나의 칼럼일 때 생략 가능

 

3차 정규화

  : 이행 함수 종속성 제거 서로 종속 관계가 있는 일반속성을 분리 주식별자와 관련성이 가장 낮음

 

보이스코드 정규화 (BCNF; Boyce-Codd Normal Form)

  : 후보키가 기본키 속성 중 일부에 함수적 종속일 때 다수의 주식별자를 분리함

 

4차 / 5차 정규화

  : 다치 종속 분리 / 결합 종속 분리

 

정규화와 성능

  : 정규화는 입출력 데이터의 양을 줄여 성능을 향상시킴

 

정규화로 인한 성능 향상

  : 입력 / 수정 / 삭제 시 성능은 항상 향상됨

  1. 유연성 증가
    • High Cohesion & Loose Coupling 원칙에 충실해짐
  2. 재활용 가능성 증가
    • 개념이 세분화됨
  3. 데이터 중복 최소화

 

정규화로 인한 성능 저하

  : 조회 시 처리 조건에 따라 성능 저하가 발생할 수도 있음

  데이터 조회 시 조인을 유발하여 CPU와 메모리를 많이 사용하게 됨

  1. 반정규화로 해결 가능
  2. 조인이 발생하더라도 인덱스를 사용, 조인 연산 수행 시 성능 상 단점이 거의 없음 정규화를 통해 필요한 인덱스의 수 줄이기 가능
  3. 정규화를 통해 소량의 테이블이 생성된다면 성능 상 유리할 수 있음

 

 


반정규화와 성능

 

반정규화 (Denormalization)

데이터 중복을 허용하여 조인을 줄이는 DB 성능 향상 방법

데이터의 무결성을 희생하고 조회 성능 향상

 

절차

  1. 반정규화 대상 조사 : 데이터 처리 범위 및 통계성 등 조사
  2. 다른 방법 검토 ( 뷰, 클러스터링, 인덱스, 애플리케이션 )
  3. 반정규화 적용 : 정규화 수행 후 반정규화 수행

 

기법

테이블 반정규화

  1. 테이블 병합
    • 1:1 관계 테이블 병합
    • 1:N 관계 테이블 병합 : 많은 데이터 중복 발생
    • 슈퍼타입 / 서브타입 테이블 병합
  2. 테이블 분할
    • 수직분할
    • 수평분할
  3. 테이블 추가
    • 중복 테이블 : 업무나 서버가 다를 때 중복 테이블 생성 ( 원격 조인 제거 )
    • 통계 테이블
    • 이력 테이블
    • 부분 테이블 : 자주 이용하는 칼럼으로 구성된 테이블 생성

 

칼럼 반정규화

  • 중복 칼럼 추가
  • 파생 칼럼 추가 : 필요한 값 미리 계산한 칼럼 추가
  • 이력 테이블 칼럼 추가
  • PK에 의한 칼럼 추가 : PK의 종속자를 일반속성으로 생성
  • 응용 시스템의 오작동을 위한 칼럼 추가

 

관계 반정규화

  : 데이터 무결성 보장 가능

  • 중복 관계 추가
    •  
Comments