정규화의 목표
데이터의 중복성을 허락하지 않음으로서 무결성을 유지하며, DB의 용량을 줄일 수 있다.
정규화 단계
- 제 1 정규화
- 테이블의 컬럼이 하나의 값만을 가지도록 테이블을 분해하는 것
- 제 2 정규화
- 제 1 정규화를 거친 테이블에서 완전 함수 종속을 만족하도록 테이블을 분해하는 것
- 완전 함수 종속이란 각 컬럼이 모두가 기본키 전부를 알아야만 식별할 수 있도록, 즉 기본키의 집합에 종속되어야 한다.
- 아래 그림1에서 성적은 기본키 학생번호와 강좌이름에 동시에 종속되어 있기에 완전함수 종속을 만족하지만, 강의실은 강좌이름만으로 식별될 수 있기에 2번 그림과 같이 테이블이 분리되어야 한다.


- 제 3 정규화
- 제 2 정규화를 거친 테이블에 대해서 이행적 종속을 없애도록 테이블을 분해하는 것
- 이행적 종속이란 A -> B, B -> C가 성립할 때 A -> C가 성립되는 것을 의미한다.
- BCNF 정규화
- 제 3 정규화를 거친 테이블에 대해 모든 결정자가 후보키가 되도록 분리하는 것
- 이에 대해서는 아래 사진을 참조하자.

'TIL > 기술면접 대비' 카테고리의 다른 글
CORS(Cross Origin Resource Sharing) (0) | 2023.08.22 |
---|---|
HTTP 메서드 (0) | 2023.08.21 |
Primary Key, Foreign Key (0) | 2023.08.20 |
mvc 패턴 (0) | 2023.08.17 |
NoSQL과 RDBMS의 특징과 차이점(장, 단점)에 대해서 (0) | 2023.08.16 |