sqld 개념 요약 정리2

sun·2024년 7월 23일
0

SQLD

목록 보기
2/7

제 2장. 데이터 모델과 성능

성능 데이터 모델링

1. 성능 데이터 모델링 개념

  • 성능 데이터 모델링은 데이터베이스 성능향상을 위한 것.
  • 정규화, 반정규화, 테이블통합, 테이블 분할, 조인구조, PK, FK 등이 존재함

2. 성능 데이터 모델링 수행

  • 사전에 할 수 록 비용이 들지 않는다.
  • 분석/설계 단계에서 데이터 베이스 처리 성능을 향상 시킬 수 있는 방법을 고려해야 한다.

3. 성능 데이터 모델링 고려사항

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

정규화

1. 정규화 개념

  • 함수적 종속을 가지고 있는 일반 속성을 의전자로 하여 입력/수정/삭제 이상현상을 제거하는 것
  • 정규화된 테이블은 처리 속도가 빨라질 수도 있고 느려질 수도 있다.
  • 정규화된 데이터 모델은 조회시에는 성능이 향상될 수도 있고, 저하될 수도 있다. 반면, 입력/수정/삭제 시에는 무조건 성능이 향상된다.

2. 정규화 이론

  • 제 1 정규형
    : 모든 속성은 원자값을 가져야 한다.
    : 다중 값을 가질 수 있는 속성은 분리 되어야 한다.

  • 제 2 정규형
    : 기본 키에 종속적이지 않거나 기본 키 일부 컬럼에만 종속적인 컬럼은 분리 되어야 한다. (=부분종속을 분리해야 한다)

  • 제 3 정규형
    : 일반속성 간 종속관계가 존재하는 것들은 분리해야 한다. (=이전종속 속성을 분리해야 한다)

3. 반정규화

1. 반정규화 개념

  • 데이터를 조회할 때 디스크 I/O 량이 많아서 성능이 저하되거나 경로가 너무 멀어 조인으로 인한 성능저하가 예상될 때 사용한다.
  • 혹은 컬럼을 계산하여 읽을 때 성능이 저하될 것이 예상되는 경우 사용한다.

2. 반정규화 기법 : 테이블 반정규화

  • 테이블 병합
    1- 1:1 관계 테이블 병합
    2- 1:M 관계 테이블 병합
    3- 슈퍼/서브타입 테이블 병합

  • 테이블 분할
    1- 수직 분할 : 컬럼 단위
    2- 수평 분할 : 로우 단위

  • 테이블 추가
    1- 중복 테이블 추가
    2- 통계 테이블 추가
    3- 이력 테이블 추가
    4- 부분 테이블 추가 : 자주 이용하는 집중화된 칼럼들이 있을 때 활용

3. 반정규화 기법 : 컬럼의 반정규화

1- 중복 칼럼 추가
2- 파생 칼럼 추가
3- 이력 테이블 칼럼 추가
4- PK에 의한 칼럼 추가
5- 응용시스템 오작동을 위한 칼럼 추가

4. 대용량 테이블에서 발생할 수 있는 현상

  • 로우 체이닝 :
    로우 길이가 길어서 데이터 블록에 모두 저장되지 않고 두 개 이상의 블록에 걸쳐 하나의 로우가 저장되는 형태
  • 로우 마이그레이션 :
    데이터 블록에서 수정이 발생되면 수정된 데이터를 해당 데이터 블록에서 저장하지 못하고 다른 블록의 빈 공간을 찾아 저장하는 방식

5. 슈퍼타입과 서브타입

  • 데이터의 특징을 분석하여 공통점과 차이점을 고려하여 효과적으로 표현할 수 있다.
  • 공통된 부분을 슈퍼타입으로, 다른 엔터티와 차이가 있는 부분은 서브타입으로 구분.

4. PK/FK 칼럼 순서 및 성능

  • PK/FK 칼럼의 순서는 중요하다.
  • 인덱스 선두 칼럼에 '=' 조건이 나와야 성능이 더욱 좋다.

5. 분산 데이터베이스

1. 분산 데이터베이스 개념

  • 논리적으로 동일한 시스템이며, 컴퓨터 네트워크를 통해 물리적으로 분산되어 있는 데이터를 하나의 가상 시스템으로 사용할 수 있도록 한 데이터 베이스

2. 분산 데이터 베이스 장/단점

  • 장점
    • 신뢰성과 가용성이 높다.
    • 효용성과 융통성이 높다.
    • 응답속도가 빠르다.
    • 통신비용이 절감된다.
  • 단점
    • 소프트웨어 개발 비용이 증대된다.
    • 불규칙한 응답 속도를 가진다.
    • 데이터 무결성에 대한 위협이 존재한다.

3. 분산 데이터베이스 적용 기법

1- 테이블 위치 분산
2- 테이블 분할 분산
3- 테이블 복제 분산
4- 테이블 요약 분산

참고 :
https://brunch.co.kr/@4ec2ea79b44a440/157

0개의 댓글