반응형
먼저,
"정규화"란,
데이터베이스의 테이블에서
테이블의 속성들이 상호 종속적인 관계를 갖는
특성을 이용하여 테이블을 '무손실 분해'하는 과정을 말한다.
이런 특성의 정규화의 목적은 가능한 한 중복을 제거하여 삽입, 삭제, 갱신 이상의 발생 가능성을 줄이 것이다.
정규화는 제1 정규형부터 시작해 1,2,3,4,5, BCNF가 있고,
순서는 1 → 2 → 3 → BCNF → 4 → 5 정규화로 진행된다.
각 정규화 과정의 특징들은 다음과 같다.
정규화 단계 | 특징 | 설명 |
제 1 정규형 | 도메인이 원자값 | 테이블에 속한 모든 속성의 도메인이 원자 값만으로 되어 있는 정규형. |
제 2 정규형 | 부분적 함수 종속 제거 | 기본키가 아닌 모든 속성이 기본키에 대해 완전 함수적 종속된 것(부분적 함수 종속을 제거한 것.) |
제 3 정규형 | 이행적 함수 종속 제거 | 모든 속성이 기본키에 대해 이행적 함수적 종속을 제거한 것. |
BCNF | 결정자이면서 후보키가 아닌 것 제거 | 모든 결정자가 후보키인 정규형 (결정자이면서 후보키 아닌것 제거한 것.) |
제 4 정규형 | 다치 종속 | 다중 잢 종속 A → B가 존재할 경우, 모든 속성이 A에 함수적 종속 관계를 만족하는 것. |
제 5 정규형 | 조인 종속성 이용 | 모든 조인 종속이 후보키를 통해서만 성립되는 정규형. |
"반정규화"란,
말 그대로 정규화와 반대되는 뜻으로,
"시스템의 성능 향상, 편의성 등을 위해 정규화 원칙을 위배하는 행위"이다.
반정규화에는 테이블 통합, 테이블 분할, 중복 테이블 추가, 중복 속성 추가 등이 있다.
반응형
최근댓글