< 제 1 정규형 >
✅ Atomic Columns : 각 칼럼, 행 하나하나가 원자적이여야한다.
> tag칼럼의 행에 데이터가 다중으로 있는 것을 확인할 수 있다.

> tag table을 만들어서 tag칼럼속 값인 rdb / free / commercial 로 행을 생성한다. tag table의 각 행의 값과 topic 행이 서로 연결되어야하기 때문에 이 tag와 topic을 연결해주는 중간역할을 하는 topic_tag_relation table을 생성한다.
< 제 2 정규형 >
✅ No partial dependencies: 부분 종속성이 없어야 한다.(=중복키가 없어야한다.)
> 제 1 정규형이 적용된 topic 테이블을 보면 분홍색 데이터들은 type과는 상관없이 title이 MySQL에 pk값을 가져 description ~ author_profile 칼럼까지의 데이터들을 중복으로 작성되고있다. 즉, title에 description ~ author_profile 칼럼이 부분적으로 종속되어있다.

> 부분적으로 종속되는 부분들만 가져온다. type에 의해 description ~ author_profile 칼럼이 중복되어있었다. 새로운 topic 테이블에는 type 칼럼이 없기 때문에 중복되는 데이터가 있을 필요가 없기 때문에 삭제한다.

> type에 의해 결정되는 price와 topic와 연결시킬 title 데이터를 가진 topic_type 테이블을 생성한다.
< 제 3 정규형 >
✅ No transitive dependencies: 이행적 종속성

> author_id와 author_profile은 author_id에 종속되어있고 author_id는 title에 종속되어있다. 👉 이행적 종속성

> 중복된 데이터인 author_id와 author_profile 칼럼의 데이터를 topic table에서 빼서 author table을 생성하여 이를 topic에서 연결할 수 있게 author_id 칼럼을 생성한다.