정규화란? 테이블을 올바른 형태로 변경하고 분할하는 것을 정규화라 한다.
제1정규형
- 관계형 데이터베이스 테이블에는 하나의 셀에 하나의 값만 저장할 수 있다.
- 반복되는 부분을 세로(행) 방향으로 늘려나간다.
- 테이블을 분할하여 중복을 제거하고 기본키(열을 묶어 지정할 수 있다)를 지정한다.
제2정규형
- 기본키에 의해 특정(함수종속성)되는 열과 그렇지 않은 열로 나누어 테이블을 분할하여 중복을 제거한다.
👉 부분 함수종속성(기본키의 일부로 특정할 수 있는 데이터)을 찾아내어 테이블을 분할하는 것
제3정규형
- 기본키 이외의 부분에서 테이블을 분할하여 중복을 제거한다.
✔️ 테이블을 분할할때는 서로 결합할 수 있도록 기본키를 추가해 분할한다.
정규화의 목적
- 하나의 데이터가 한 곳에 저장되도록 하기 위함이다.
👉 데이터가 변경되어도 한 곳만 변경하면 된다.
- 정규화를 통해 인덱스의 재구축을 억제할 수 있다.
👉 인덱스가 지정된 열의 데이터가 변경되는 경우 인덱스도 재구축해야 하지만 기본키는 분할된 테이블을 연계하기 위한 내부적인 데이터로 변경될 일이 거의 없다.