본문 바로가기
DataBase

[SQLD] 3. 관계에 대해서

by bkuk 2022. 10. 18.

1. 관계의 개념

가. 관계의 정의

 

 

 

나. 관계의 패어링

관계는 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것(패어링)이고 이것의 집합을 관계로 표현한다는 것이다. 따라서 개별 인스턴스가 각각 다른 종류의 관계를 가지고 있다면 두 엔터티 사이에 두 개 이상의 관계가 형성될 수 있다. 각각의 엔터티의 인스턴스들은 자신이 관련된 인스턴스들과 관계의 어커런스로 참여하는 형태를 관계 패어링(Relationship Paring)이라 한다.

2. 관계의 분류

UML(Unified Modeling Language)에는 클래스다이어그램의 관계중 연관관계(Association)와 의존관계(Dependency)가 있다. 이 둘의 차이는 연관관계는 항상 이용하는 관계로 존재적 관계에 해당하고 의존관계는 상대방 클래스의 행위에 의해 관계가 형성될 떄 구분하여 표현한다는 것이다.

 

3. 관계의 표기법

  • 관계명(Membership) : 관계의 이름
  • 관계차수(Cardinality) : 1:1, 1:m, m:m
  • 관계선택사양(Optionality) : 필수관계, 선택관계

 

가. 관계명

 

엔터티에서 관계가 시작되는 편을 관계시작점(The Beginning)이라고 부르고, 받는 편을 관계끝점(The end)이라고 부른다. 관계 시작점과 끝점 모두 관계이름을 가져야 하며 참여자의 관점에 따라 관계이름이 능동적(Active)이거나 수동적(Passive)으로 명명된다.

 

  • 애매한 동사를 피한다. 예를 들면 '관계 된다', '관련이 있다'. 등은 구체적이지 않다.
  • 현재형으로 표현한다. 예를 들면 '수강을 신청했다' 라는 식으로 표현해서는 안된다. '수강 신청한다'로 표현해야 한다.

 

 

나. 관계차수

두 개의 엔터티간 관계에서 참여자의 수를 표현하는 것을 관계차수라고 한다. 한 개가 참여하는 경우는 실선을 그대로 유지하고, 다수가 참여한 경우는 까마귀발과 같은 모양으로 그려준다.

1) 1:1 관계를 표시하는 방법

2) 1:m 관계를 표시하는 방법

관계에 참여하는 각각의 엔터티는 관계를 맺는 다른 엔터티의 엔터티에 대해 하나나 그 이상의 수와 관계를 가지고 있다. 그러나 반대의 방향은 단지 하나만의 관계를 가지고 있다.

 

3) m:m 관계를 표시하는 방법

다. 관계선택사양

 

 

필수참여는 참여하는 모든 참여자가 반드시 관계를 가지는, 타 엔터티의 참여자와 연결이 되어야 하는 관계이다. 예를 들면 주문서는 반드시 주문목록을 가져야 하며 주문목록이 없는 주문서는 의미가 없으므로 주문서와 주문목록을 필수참여관계가 되는 것이다. 반대로 목록은 주문이 될 수 도있고, 주문이 되지 않은 목록이 있을수도 있으므로 목록과 주문목록의 관계는 선택참여가 되는 것이다.

4. 관계의 정의 및 읽는 방법

가. 관계 체크사항

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

 

나. 관계 읽기

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

댓글