💡 DB를 설계하기 위해선 데이터 정규화를 알아야한다!!!!!!
1정규화를 만족하면 → 2정규화로 → 2정규화를 만족하면 3정규화로 단계가 있다.
Atomic(원자성) columns
라는 조건에 만족하도록 비정규형 테이블을 → 제1 정규형 테이블로 구조화한것
Atomic columns: 컬럼은 값을 1개만 가져라
다대다 관계가 → 바로 제1 정규화라고 할수 있겠다. (중간테이블)
No partial dependencies
라는 조건에 만족하게끔 제1 정규형 테이블을 → 제2 정규형 테이블로 정규화
No partial dependencies
: 기본키(PK)가 복합키일때 필드는 기본키 2개 모두에 종속종이어야한다. (PK가 2개면 → 2개를 다 의지 )
즉 필드는 기본키에 종속(의지)적이어야한다.
Pk = title → 근데 가격은 type에 따라 메겨진다 → 가격은 title(PK)
와 type
을 의지 (기본키의 중복) PK가 2개
따라서 타입을 따로 테이블로 분리시키면 중복되는 부분이 사라짐
No transitive dependencies
라는 조건에 만족하게끔 제2 정규형 테이블을 제3 정규형 테이블로 정규화
No transitive dependencies
: 이행적 종속성이 없어야 한다
즉 PK가 아닌 일반컬럼에 종속적인 컬럼은 → 테이블을 따로 빼자