Study/데이터베이스 | DB
정규화란 ? / 정규화 절차
cosmohoo
2021. 5. 25. 23:11
반응형
정규화
- 데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성을 위한 방법
- 데이터를 분해하는 과정
- 데이터중복을 제거하고, 데이터 모델의 독립성을 확보하기 위한 방법
- 실직적으로 제 3정규화까지만 수행
- 정규화를 수행하지 않아, 불필요한 값이 추가되거나, 입력할수 없는 현상을 이상현상(Anomarly)라고 함
정규화 절차
정규화 절차 | 설명 |
제1정규화 | -속성(Attribute)의 원자성을 확보 -기본키(Primary)를 설정 |
제2정규화 | 기본키가 2개 이상의 속성으로 이루어진 경우, 부분 함수 종속성을 제거(분해) |
제3정규화 | -기본키를 제외한 칼럼 간에 종속성을 제거 -이행 함수 종속성 제거 |
BCNF | 기본키를 제외하고 후보키가 있는 경우, 후보키가 기본키를 종속시키면 분해 |
제4정규화 | 여러 칼럼들이 하나릐 칼럼을 종속시키는 경우 분해하여 다중값 종속성을 제거 |
제5정규화 | 조인에 의해서 종속성이 발생되는 경우 분해 |
정규화의 문제점
- 데이터 조회시에 조인(JOIN)을 유발하기 때문에 CPU와 메모리를 많이 사용한다.
- 중첩된 루프가 나타날수 있다.
for(i =0 ; i<N; i++)
{
for(j=0; j<M; j++)
}
- 하지만 실제로 위와 같은 비효율이 발생하지는 않는다.
- 이러한 문제점을 해결하기 위해 인덱스(INDEX)와 옵티마이저가 있다.
반응형