정규화


정규화란?

테이블을 올바른 형태로 만들고 분리하는 데이터베이스의 설계를 재구성하는 테크닉이다.

정규화가 왜 필요할까?

결과적으로 데이터베이스 크기가 줄어들고 찾아야 할 데이터가 적어져 쿼리가 빨라진다.

정규화되지 않은 구조의 테이블

정규화가 제대로 되지 않은 테이블의 경우 갱신/삽입/삭제 시 다양한 문제가 발생할 수 있다.
이를 테이블의 구성을 논리적으로 변경하여 해결하고자 하는 것이 정규화이다.

정규화의 법칙(Normalization Rule)은 1차정규화, 2차정규화, 3차정규화, BCNF, 4차정규화, 5차정규화로 나눌 수 있다.

원자값: 더 이상 쪼갤 수 없는 조각 정보

속성값은 원자값을 가져야 한다.

예를 들어 주소는 [ 도 / 시 / 번지 / 아파트명 ]으로 나눠 저장하면 원자값일까?
배달 업체인 경우 주소를 [도 시 번지 아파트명] 한 번에 저장하는 것이 원자값이고
부동산 업체인 경우 [ 도 / 시 / 번지 / 아파트명 ] 따로 나눠 저장하는 것이 원자값이다.

각각의 목적에 따라 원자값이 달라질 수 있다.

원자적 데이터를 사용하면 쿼리 작성이 쉽고 수행 시간이 빨라 쿼리를 효율적으로 수행할 수 있고
저장 데이터가 대용량인 경우 더욱 효율적이다.

제1 정규형 (1NF)

제2 정규형 (2NF)

제3 정규형 (3NF)