우리가 흔히 알고 있는 데이터 정리방법인 스프레드시트 등이 RDMS (relational database management system)의 기본구조이며 2차원 테이블을 여러가지 만들고 관계가 있는 요소들을 연결하여 의미있는 테이블끼리의 데이터를 이어주는 구조라고 할 수 있다.
한 테이블에 데이터의 종류가 여러개 있는 데, 이들의 중복을 최소화하고 의미있는 관계가 있는 단위로 쪼개주는 작업을 표준화 (normalization)라고 한다.
표준화는 7단계가 있으며 3단계까지만 완료하면 RDMS에서 충분히 쓸만한 데이터의 묶음들이 나오게 된다.
표준화 관련 링크 : What is Normalization?
테이블의 연결의 담당하는 데이터끼리의 관계는 3가지로 나뉠 수 있는데
이 중 many:many는 반드시 이를 연결 해주는 중간테이블이 필요하며, 이는 한 테이블의 요소를 대표하는 키값과 다른 테이블에서 연결 시켜 주려는 요소의 키값을 정리한 테이블이다.
결국 many:many의 관계는 쪼개고 보면 many => 1 => many (many:1 과 1:many를 붙여준 관계)로서 매개자인 중간 테이블이 필요하다.
마지막으로 정리해야 할 부분은 모든 테이블은 Primary Key를 넣어주는 것이 일반적이며, 중간테이블은 보통 시작테이블의 foreign key와 타겟 테이블의 primary key를 넣어주는 것으로 생각하면 쉬워 질 것 같다.