DB테이블 1:1관계, 1:N관계, N:M관계

가수왕·2022년 6월 16일
0

DB

목록 보기
2/3

1. 1:1 관계

연결관계에 있는 테이블의 행이 1:1로 매칭되는 관계를 말한다.

사실 이 관계는 하나의 테이블이 2개로 나뉜 상태라고 생각할 수 있다.

처음에는 1:1 관계를 만드는게 아니라 하나의 테이블로 구성하면 되지 않나 생각했는데 DB의 효율성을 위해 나누는 경우가 있다고 한다.
소수의 사람만 데이터를 가지는 컬럼이 있다면 이런경우 테이블을 따로 만들어 소수의 데이터를 저장하면 효율적으로 공간을 사용할 수 있을것이다.

2. 1:N 관계

A테이블의 로우 하나가 B테이블의 여러개의 로우와 연결되고 B테이블의 로우 하나는 A테이블의 로우 하나에만 연결되는 상황을 말한다.

엄마와 자식들의 관계를 생각하면 될 것 같다. 보통의 경우 엄마는 자식들이 여러명일 수 있지만 자식들에게 엄마는 한명일 것이다.

3. N:M 관계

A테이블의 로우 하나가 B테이블의 여러개의 로우와 연결되고 반대로 B테이블의 로우 하나가 A테이블의 여러개의 로우와 연결되는 상횡이다.


이 관계는 대학교 수강신청 상황을 생각하면 될 것같다. 학생들 각각은 여러개의 과목을 수강할 수 있다. 하나의 과목 입장에서는 여러명의 학생들이 이 수업을 참가하게 된다.

4. 후기

DB를 설계할 때 항상 이 테이블간 관계가 헷갈렸다. 특히 1:N 관계와 N:M관계가 많이 헷갈렸는데 예시를 생각하다보니 이걸 구분하는 노하우가 살짝 생긴것 같다.

또한 1:1관계는 논리적인 관점에서는 의미 없는 관계라고 생각했는데 기술적인 관점에서 생각해보니 의미 없는 관계는 아니란걸 알게 되었다.

0개의 댓글