1-4. 관계 (Relationship)

관계의 정의

  • 사전적으로 정의하면 상호 연관성이 있는 상태이다.
  • 엔터티 간 논리적인 연관성을 의미한다.
  • 존재에 의한 관계와 행위에 의한 관계로 구분된다.

* 엔터티 간 논리적인 연관성을 의미하고 존재에 의한 관계와 행위에 의한 관계로 구분된다.

관계의 패어링

  • 관계는 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것(패어링)이고 이것의 집합을 관계로 표현한다는 것이다.
  • 각각의 엔터티의 인스턴스들은 자신이 관련된 인스턴스들과 관계의 어커런스(발생, 사건)로 참여하는 형태를 관계 패어링(Relationship Paring)이라 한다.

- 강사인 정성철은 이춘식과 황종하에게 강의를 하는 형태로 관계가 표현되어 있고

- 조시형은 황종하에게 강의를 하는 형태로 되어있다.

- 이와 같이 엔터티내에 인스턴스와 인스턴스사이에 관계가 설정되어 있는 어커런스(발생, 사건)를 관계 패어링이라고 함

* 인스턴스 각각은 자신의 연관성을 가지고 있을 수 있음

* 이것을 집합하여 "강의한다"라는 관계를 도출

 

관계의 분류 - 존재에 의한 관계

* 사원은 부서에 항상 속해있다.

- "소속된다"라는 의미는 행위에 따른 이벤트에 의해 발생되는 의미가 아니고 그냥 사원이 부서에 소속되어 있기 때문에 나타나는 즉, 존재의 형태에 의해 관계가 형성되어 있는 것이다.

 

*주문은 고객이 주문을 할 때 발생한다.

- 주문 엔터티의 주문번호는 고객이 "주문한다"라는 행위에 의해 발생되었기 때문에, 두 엔터티 사이의 관계는 행위에 의한 관계가 되는 것이다.

 

관계의 표기법

개념 설명
관계명(Membership) 관계의 이름
관계차수(Cardinality) 1:1, 1:M, M:M
관계선택사양(Optionality) 필수관계, 선택관계

관계의 표기법 - 관계명

  • 엔터티가 관계에 참여하는 형태를 지칭한다.
  • 각각의 관계는 두 개의 관계명을 가질수 있다. 즉 각각의 관계명에 의해 두 가지 관점으로 표현될 수 있다.

- 엔터티에서 관계가 시작되는 편을 관계시작점(The Beginning)이라고 부르고 받는 편을 관계끝점(The End)이라고 부른다.

- 관계 시작점과 끝점 모두 관계이름을 가져야 하며 참여자의 관점에 따라 관계이름이 능동적(Active)이거나 수동적(Passive)으로 명명된다.

 

* 관계의 명명 규칙

- 애매한 동사를 피한다. 예를 들면 "관계된다", "관련이 있다" 등은 구체적이지 않아 어떤 행위가 있는지 또는 두  참여자간 어떤 상태가 존재하는지 파악할 수 없다.

- 현재형으로 표현한다. 예를 들면 "수강을 신청했다", "강의를 할 것이다"라는 식으로 표현해서는 안된다. "수강 신청한다", "강의를 한다"로 표현해야 한다.

 

관계의 표기법 - 관계차수

  • 두 개의 엔터티 간 관계에서 참여자의 수를 표현하는 것을 관계 차수(Cardinality)라고 한다.
  • 가장 일반적인 관계 차수 표현방법은 1:1, 1:M, M:M이다.

1. 관계 차수 (1:1)

- 관계에 참여하는 각각의 다른 엔터티는 관계를 맺는 다른 엔터티에 대해 단지 하나의 관계만을 가지고 있다.

 

2. 관계 차수 (1:M)

- 한 명의 사원은 한 부서에 소속되고 한 부서에는 여러 사원을 포함한다.

 

3. 관계 차수 (M:M)

 

- 관계에 참여하는 각각의 엔터티는 관계를 맺는 다른 엔터티에 대해 하나 혹은 그 이상의 수와 관계를 가지고 있다.

 

관계의 표기법 - 관계선택사항(Optionality)

  • "반드시 지하철의 문이 닫혀야만 지하철은 출발한다."
  • 지하철출발과 지하철문닫힘은 필수(Mandatory)적으로 연결 관계가 있는 것이다. 이와 같은 것이 데이터 모델의 관계에서는 필수참여관계(Mandatory)가 된다.
  • 지하철의 출발을 알리는 안내방송은 지하철의 출발과 상관없이 방송해도 아무런 문제가 발생하지 않는다. 즉, 안내방송시스템이 고장나도 지하철 운행에는 별로 영향을 주지 않는다.
  • 지하철의 출발과 지하철방송과는 정보로서 관련은 있지만 서로가 필수적인(Mandatory) 관계는 아닌 선택적인 관계(Optional)가 되는 것이다. 이와 같은 것이 데이터 모델 관계에서는 선택참여관계(Optional)가 된다.

- 고객은 여러 개의 주문을 할 수 도 있고 한 개의 주문도 하지 않을 수 있다. (선택적 관계)

- 주문은 반드시 고객을 가진다. (필수적 관계)

관계 정의 시 체크 사항

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

관계 읽기

  • 기준(Source) 엔터티를 한 개(One) 또는 각(Each)으로 읽는다.
  • 대상(Target) 엔터티의 관계 참여도 즉 개수(하나, 하나 이상)를 읽는다.
  • 관계선택사양(필수/선택)과 관계명을 읽는다.

 

복사했습니다!