관계(Relationship)

한준수·2023년 5월 24일
0

SQLD

목록 보기
4/31

관계의 개념

관계의 정의

엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태, 관계 페어링의 집합

ex) 강사 - 가르친다(관계) - 수강생

관계의 패어링

페어링 : 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것
유의해야 할 점은 관계는 패어링을 집합의 관계로 표현한다는 것이다. 따라서 개별 인스턴스가 각각 다른 종류의 관계를 가지고 있다면 두 엔터티 사이에 두 개 이상의 관계가 형성될 수 있다.


관계의 분류

UML(통합모델링언어)에서의 관계

연관관계(실선)

항상 이용하는 관계 ex) 소속된다.
연관 관계는 표현방법이 실선으로 표현되고 소스코드에서 멤버변수로 선언하여 사용하게 된다.

의존관계(점선)

상대 행위에 의해 발생하는 관계 ex ) 주문한다.
상대방 클래스의 행위에 의해 관계가 형성될 때 구분하여 표현한다는 것이다.


관계의 표기법

관계명(Membership)

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

엔터티에서 관계가 시작되는 편을 관계 시작점이라 부르고 받는편을 관계끝점 이라고 부른다.
관계명은 명명규칙에 따라 작성해야 한다.

관계명 명명규칙

  • 애매한 동사를 피한다.
    ex)'관계된다', '관련이 있다', '이다',
  • 현재형으로 표현한다.
    ex) 수강 신청한다, 강의를 한다.

관계차수(Degree/Cardinality)


두 개의 엔터티 간 관계에서 참여자의 수를 표현하는 것
가장 일반적인 관계차수 표현방법은 1:1, 1:N, M:N이다.
가장 중요하게 고려해야할 사항은 한 개의 관계가 존재하느냐 아니면 두 개 이상의 멤머수비이 존재하는지를 파악해야 한다.

관계선택사양(Optionality)

필수관계

참여하는 모든 참여자가 반드시 관계를 가지는, 타 엔터티의 참여자와 연결이 되어야 하는 관계이다.

ex) 주문서는 반드시 주문목록을 가져야한다.

선택관계

참여자의 선택에 따라서 타 엔터티와 연결이 되는 관계이다.

주문 목록은 주문이 될수도 있고 안될 수도 있다.


관계 체크사항

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

0개의 댓글