Helmi

3. 데이터베이스 구축 - 정규화 자세한 설명 본문

정보처리기사/필기

3. 데이터베이스 구축 - 정규화 자세한 설명

Helmi 2023. 5. 17. 19:18

정규화 개념

- 논리 데이터 모델링 상세화 하는 과정

- 함수적 종속성 이용해 이상 현상 발생하지 않도록 릴레이션 분해하는 과정

 

정규화 목적 

- 구축된 데이터 베이스 품질 보장, 성능 향상

- 저장 공간 최소화, 데이터베이스 내부 자료 무결성 유지 극대화
- 데이터 구조 안정성 확대

① 개체 관계 정확성

② 데이터 일치성

③ 데이터 모델 단순성

④ 개체 내에 존재하는 속성 비중복성

 

각 정규화 과정 단계

단계 설명
제1정규형 - 반복 속성 제거
- 개체에 존재하는 속성들 중 반복되는 속성들 하위 개체로 도출
제2정규형 - 주 식별자 전체가 완전 기능 종속 되지 않는 속성 제거
- 주 식별자 속성 일부에만 함수적 종속 되는 속성들 상위 개체로 도출
제3정규형 - 주 식별자에 이행 함수 종속 되는 속성 제거
- 주 식별자 제외한 일반 속성 중 함수적 종속 속성들 상위 개체로 도출
BCNF 정규형 - Boyce-Codd Normal Form
- 결정자(후보키 아닌) 속성 제거
- 제3정규형 만족하면서 추가로 해당 릴레이션의 모든 결정자는 후보키여야
제4정규형 - 주 식별자에 종속(다중값 : Multi-Value)되는 속성을 두 가지 이상 두지 않도록 함
- 특정 조건 대해 제공되는 결과값 같은데, 데이터 값 두 번 이상 발생하는 속성 하위 개체로 도출
제5정규형 다시 조인해 중복 데이터 발생 경우 n개의 테이블로 분리

 

정규화 절차

제1정규형(1NF, First Normal Form)

- 어떤 릴레이션 R에 속한 모든 도메인 원자값만으로 되어 있다면 제1정규형(1NF)

- 릴레이션 내의 속성 원자값 가지고 있어야

제2정규형(2NF, Second Normal Form)

- 어떤 릴레이션 R이 1NF이고 기본키에 속하지 않은 모든 속성들이 기본 키에 완전 함수 종속이면 제2정규형에 속하는 규칙으로 특정 컬럼에만 종속되는 속성이(부분 함수 종속) 없어야

 

제3정규형(3NF, Third Normal Form)

- 어떤 릴레이션 R이 2NF이고 기본 키에 속하지 않은 모든 속성들이 기본 키에 이행적 함수 종속이 아닐 때 

- 주 식별자에 이행종속 되는 속성 제거. 주 식별자 제외 일반 속성들 중에 함수적 종속 속성들을 상위 개체로 도출


BCNF정규형(Boyce-Code Normal Form)

- 릴레이션 R의 결정자가 모두 후보 키이면 보이스 크드 정규형에 속함

- 후보키 아니면서 결정자인 속성이 존재할 때 발생하는 이상 현상 방지 목적

 

제4정규형(4NF, Fourth Normal Form)

- 하나의 속성이 다른 속성 값 결정하는 것이 아니라 R의 모든 속성이 집합 결정

- 하나의 릴레이션에 두 개 이상 다치종속이 발생하고 이를 제거하는 과정

- 다치 종속은 Fagin에 의해 처음 소개되고 정의됨

 

제5정규형(5NF, Fifth Normal Form)

- 릴레이션  R에 존재하는 모든 조인 종속이 릴레이션 R의 후보키를 통해서만 만족된다면 릴레이션 R은 제5정규형