본문 바로가기

데이터베이스

관계 타입의 유형

관계 타입(Relationship type)은 개체 타입들 간에 어떠한 형태의 관계를 맺고 있는지에 대한 것이다. 혹은 2개 이상의 개체들 간에 관계에 어떤 유형으로 참여하는지를 말한다. 여기서는 개체와 개체 타입을 구분해서 이해하면 좋겠다. Entity Type은 Entity의 속성을 모아놓은 것이고 Entity 실제 현실에 존재하는 Entity이다. 혹시 아래에 Unary Relationship은 1개의 개체 타입만 관계에 참여하는데 2개 이상의 개체들 간에 관계의 참여 유형을 말했다는 표현에 헷갈릴 수 있을 것 같아 미리 언급해 보았다. 

 

관계 타입의 유형은 크게  Degree와 Cardinality에 따라 나눌 수 있다.

 

# Degree로 나눠 본 유형

 

Degree of Relationship은 관계(Relationship)에 연관되어 있는 혹은 참여하는 개체 유형들(Entity types)의 수에 따라 나눌 수 있다.

 

Unary Relationship(degree 1)는 관계에 참여하는 개체 타입이 1개만 존재할 때이다. 

예로 직원 중 상사는 부하직원을 관리감독한다.  

 

Unary Relationship .

Binary Relationship(degree 2)는 관계에 참여하는 개체 타입이 2개가 존재할 때이다.

예로 직원들은 부서에 소속된다. 

Binary Relationship

Ternary Relationship(degree 3)는 관계에 참여하는 개체 타입이 3개가 존재할 때이다.

예로 직원들은 각자 부서에 속해서 어떤 프로젝트를 수행한다. 

Ternary Relationship

N-ary(n degree)는 관계에 참여하는 개체 타입이 N개가 존재할 때이다. 

 

# Cardinality로 나눠 본 유형

Cardinality는 테이블 혹은 개체 타입 간에 관계에 실제 참여하는 개별 개체 수를 의미한다. 4가지로 나누어 볼 수 있다.

 

1:1(One to One) : A 테이블의 하나의 행(Row)가 B테이블의 하나의 행과 관계를 맺을 경우다. 

예를 들면 사람과 여권 

One to One

1:N(One to Many) : A 테이블에 하나의 행이 B테이블의 하나 이상의 행들과 관계를 맺을 경우다. 이 반대의 경우 로 N:1(Many to One도 성립한다. 

예를 들면 고객과 영수증 간의 관계로 한 명의 고객이 여러 개의 영수증을 소지할 수 있다.

One to Many

M:N(Many to Many) : A테이블의 여러 행이 B테이블의 여러 행과 관계를 맺을 경우다. 

예를 들면 한 명의 직원에게 동시에 여러 프로젝트가 할당될 수 있고 하나의 프로젝트에 여러 명의 직원이 배정될 수 있다. 

Many to Many

 

 

 

 

'데이터베이스' 카테고리의 다른 글

IS-A Relationship  (0) 2020.07.07
Minimum Cardinality와 Maximum Cardinality 차이  (0) 2020.07.06
제약조건(Constraint)  (0) 2020.07.04
트리거(Trigger)  (0) 2020.07.03
관계(Relationship)와 관계 타입(Relationship Type)  (0) 2020.07.02