1 : 1 관계 (일대일 관계)

  • 어느 엔티티 쪽에서 상대 엔티티와 단 하나의 관계를 가지는 것

 

예를 들어 우리나라는 일부일처제로 한 남자는 한 여자와, 한 여자는 한 남자와 밖에 결혼을 할 수 없다.

남편 또는 부인을 2명 이상 둘 수 없는데, 이러한 관계가 1 : 1관계다.

 

1 : N 관계 (일대다 관계)

  • 한 쪽 엔티티가 관계를 맺은 엔티티 쪽의 여러 객체를 가질 수 있는 것

 

현실에서는 1:N 관계가 많은데, 실제 DB를 설계할 때 자주 쓰이는 방식이다.

1:N 관계는 M:N처럼 새로운 테이블을 만들지 않는다.

예를 들어 부모와 자식 관계를 생각해보면, 부모는 자식을 1명, 2명, 3명 , 그 이상도 가질 수 있다. 이를 부모가
자식을 소유한다고( has a 관계 ) 표현한다.

 

반대로 자식 입장에서는 부모를 하나만 가질 수 밖에 없다.
이러한 관계를 1:N 관계라고 한다.


부모 테이블에서는 내 자식들이 누구인지 정보를 넣을 필요가 없고, 자식 테이블에서만 각각의 자식들이
자신의 부모 정보를 FK로 넣음으로써 관계를 표현한다.

 

 

 

M : N 관계 (다대다 관계)

  • 관계를 가진 양쪽 엔티티 모두에서 서로가 서로를 1:N 관계로 보고 있는 것

 

예를 들어, 학원과 학생의 관계를 생각해보면, 한 학원에는 여러명의 학생이 수강할 수 있으므로 1:N 관계를 가진다.
반대로 학생도 여러개의 학원을 수강할 수 있으므로, 이 사이에서도 1:M 관계를 가진다.
그러므로 학원과 학생은 M:N관계를 가진다고 할 수 있다.

 

M:N 관계는 서로가 서로를 1:N 관계로 갖고 있기 때문에 서로의 PK를 자신의 FK로 갖고 있어야 한다.

일반적으로 M:N관계는 두 테이블의 PK를 복합키로 갖는 또 다른 테이블을 생성해서 관리한다.

 

'DB' 카테고리의 다른 글

SQL INNER JOIN과 OUTER JOIN  (0) 2022.02.24

+ Recent posts