본문 바로가기
Database

정규화, 반정규화

by hunbal 2023. 2. 6.
SMALL

정규화와 성능

정규화란?

  • 데이터 베이스 설계에서 중복 요소를 찾아 제거하고 데이터를 구조화 하는 프로세스

제 1 정규화

  • 하나의 속성은 반드시 하나의 값을 가져야 한다.
  • *칼럼 단위에서 중복된 경우도 해당함 (sqld 기출 26p 38번 문항 참고)

제 2 정규화

  • 제 1 정규형을 만족
  • 주식별자가 아닌 모든 속성이 주식별자에 완전 함수 종속 되어야 한다.
  • 함수의 부분 종속을 분리하는 과정
  • 제2 정규형을 만족하려면 모든 속성은 반드시 기본키 전부에 종속 되어야 한다.

제 3 정규화

  • 제2 정규화를 만족하고 이행 함수 종속이 없어야 한다.

반정규화와 성능

 

반정규화(역정규화)란?

  • 정규화된 엔티티, 속성, 관계에 대해 시스템의 성능 향상과 개발과 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법을 의미함
  • 데이터를 중복하여 성능을 향상시키는 기법
  • 성능을 향상시키기 위해 정규화된 데이터 모델에서 중복, 통합, 분리 등을 수행하는 모든 과정
  • 데이터를 조회할 때 디스크 I/O량 증가,경로가 너무 먼 경우,칼럼 계산 시 성능 저하가 예상된다면 반정규화 수행

 

반정규화 절차

 

1. 반정규화 대상 조사

  • 범위 처리 빈도수 조사
  • 대량의 범위 처리 조사
  • 통계성 프로세스 조사
  • 테이블 조인 개수

2. 다른 방법 유도 검토

  • 뷰(VIEW) 테이블
  • 클러스터링 적용
  • 인덱스의 조정
  • 응용프로그램(애플리케이션)

3. 반정규화 적용

  • 테이블 반정규화
  • 속성 반정규화
  • 관계 반정규화

대량 데이터에 따른 성능

로우체이닝

  • 로우의 길이가 너무 길어서 데이터 블록 하나에 데이터가 모두 저장되지 않고 두 개 이상의 블록에 걸쳐 저장되어 있는 형태
  • 불필요한 I/O가 많이 발생하여 성능이 저하됨

로우마이그레이션

  • 데이터 블록에서 수정이 발생하면 수정된 데이터를 해당 데이터 블록에서 저장하지 못하고 다른 블록의 빈 공간을 찾아 저장하는 방식
  • 불필요한 I/O가 많이 발생하여 성능이 저하됨

PK  순서 결정 기준

인덱스는 값의 범위에 따라 일정하게 정렬되므로 상수값이 '='(EQUAL) 조건으로 조회되는 칼럼이 가장 앞으로 나오고 범위조회 하는 유형의 칼럼이 그 다음에 오도록 하는 것이 가장 효율적인 방법이다.

 


분산 데이터베이스와 성능

분산 데이터베이스의 장점

  • 지역 자치성, 점증적 시스템 용량 확장
  • 신뢰성과 가용성
  • 효용성과 융통성
  • 빠른 응답 속도와 통신 비용 절감
  • 데이터의 가용성과 신뢰성 증가
  • 시스템 규모의 적절한 조절
  • 각 지역 사용자의 요구수용 증대

분산 데이터베이스의 단점

  • 소프트웨어 개발 비용 증가
  • 잠재적인 오류 발생 가능성 증가
  • 처리 비용 증대
  • 설계, 관리의 복잡성과 비용 증가
  • 불규칙한 응답 속도
  • 통제의 어려움
  • 데이터 무결성에 대한 위협

'Database' 카테고리의 다른 글

DROP, TRUNCATE, DELETE 비교  (0) 2023.02.07
SQL 명령어  (0) 2023.02.07
성능 데이터 모델링  (0) 2023.02.06
엔터티  (0) 2023.02.06
데이터 모델링  (0) 2023.02.06

댓글