본문 바로가기

DB

[DB] 관계의 개념, 특징, 분류

0. 관계의 개념

  • 사전적 정의 : 상호 연관성이 있는 상태
  • 데이터 모델링에서의 정의 : 엔터티의 인스턴스 사이의 논리적인 연관성에 대한 존재의 형태나 행위 
  • 서로에게 연관성이 부여된 상태

 

1. 관계의 분류

  • 존재에 의한 관계행위에 의한 관계로 나눌 수 있다.
  • ex) 황경빈이라는 사원이 DB팀에 '소속되어' 있다.  -> 존재의 의한 관계 
  • ex) 김경재 고객은 '주문하여' 주문번호를 생성하였다.   -> 행위에 의한 관계
  • ERD에서는 존재적 관계, 행위에 의한 관계를 구분하지 않고 표현한다.
  • 그러나 클래스다이어그램에서는 이것을 구분하여 연관관계와 의존관계로 표현한다.

 

2. 관계의 표기법 3가지 개념

 

 2-1 관계명 (Membership)

  • 엔터티가 관계에 참여하는 형태를 지칭한다.
  • 각각의 관계명은 두 개의 관계명을 가지고 있다.
  • ex) 부서는 사원을 '포함한다'. / 사원은 부서에 '소속된다.'
  • 애매한 동사는 피해서 표기한다.
  • 현재형으로 포함한다. ex) 수강을 신청한다. 강의를 한다.

 2-2 관계차수 (Cardinality)

  • 가장 일반적인 표현방법은 1:M, 1:1, M:N이다
  • 고려해야 할 사항을 한 개의 관계가 존재하느냐, 아니면 두 개 이상의 관계가 존재하는지 파악한다.
  • 관계 차수를 표시하는 방법은 crow's Foot 모델에서는 선을 이용해 표현한다.
  • 한 개가 참여하는 경우에는 실선, 다수가 참여한 경우에는 까마귀 발 같은 모양을 사용한다.

 2-3 관계선택사양 (Optionality)

  • 참여하는 엔터티가 항상 참여하는지, 참여할 수도 있는지 나타내는 방법을 나타내는 방법이다
  • 그 방법은 필수참여관계(Mandatory)선택적인 관계(Optional)가 된다.
  • ex) 주문서와 주문목록   / 주문서는 반드시 주문목록이 필요하고, 주문목록도 주문서가 없으면 의미가 없으므로      이는 필수참여 관계가 된다.
  • ex) 목록과 주문   / 목록은 주문이 될 수도 있고, 주문되지 않은 목록이 될 수도 있다. 이는 선택적인 관계가 된다.

 

3. 관계의 정의 유의사항

  • 두 개의 엔터티 사이에 관심있는 연관 규칙이 있는가?
  • 두 개의 엔터티 사이에 정보의 조합이 발생하는가?
  • 업무기술서, 장표에 관계 연결에 데한 규칙이 서술되어 있는가?
  • 업무기술서, 장표에 관계 연결을 가능하게 하는 동사(Verb)가 있는가?