반응형

정규화란? 그리고, 반정규화란?

먼저,

"정규화"란,

데이터베이스의 테이블에서

테이블의 속성들이 상호 종속적인 관계를 갖는

특성을 이용하여 테이블을 '무손실 분해'하는 과정을 말한다.

이런 특성의 정규화의 목적은 가능한 한 중복을 제거하여 삽입, 삭제, 갱신 이상의 발생 가능성을 줄이 것이다.

 

정규화는 제1 정규형부터 시작해 1,2,3,4,5, BCNF가 있고,

순서는 1 → 2 → 3 → BCNF → 4 → 5 정규화로 진행된다.

 

각 정규화 과정의 특징들은 다음과 같다.

 

정규화 단계 특징 설명
제 1 정규형 도메인이 원자값 테이블에 속한 모든 속성의 도메인이 원자 값만으로 되어 있는 정규형.
제 2 정규형 부분적 함수 종속 제거 기본키가 아닌 모든 속성이 기본키에 대해 완전 함수적 종속된 것(부분적 함수 종속을 제거한 것.)
제 3 정규형 이행적 함수 종속 제거 모든 속성이 기본키에 대해 이행적 함수적 종속을 제거한 것.
BCNF 결정자이면서 후보키가 아닌 것 제거 모든 결정자가 후보키인 정규형
(결정자이면서 후보키 아닌것 제거한 것.)
제 4 정규형 다치 종속 다중 잢 종속 A → B가 존재할 경우,
모든 속성이 A에 함수적 종속 관계를 만족하는 것.
제 5 정규형 조인 종속성 이용 모든 조인 종속이 후보키를 통해서만 성립되는 정규형.

 

 

 

"반정규화"란,

말 그대로 정규화와 반대되는 뜻으로,

"시스템의 성능 향상, 편의성 등을 위해 정규화 원칙을 위배하는 행위"이다.

반정규화에는 테이블 통합, 테이블 분할, 중복 테이블 추가, 중복 속성 추가 등이 있다.

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기