본문 바로가기
IT/SQLD

[SQLD] 과목1_1장_4.관계

by 윤싱찬 2018. 11. 28.

 1. 관계의 개념

가) 관계의 정의

  • 엔터티에 있는 인스턴스 사이의 논리적인 연관성으로서, 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태.
  • 관계는 엔터티의 정의에 따라 영향을 받기도 하고, 속성 정의 및 관계 정의에 따라서도 다양하게 변할 수 있음.

나) 관계의 패어링

  • 관계는 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것(패어링)이고 이것의 집합을 관계로 표현함.
  • 관계는 두 엔터티 사이에 두 개 이상의 관계 형성 가능(1:1 / 1:M : M:N)
  • 엔터티는 인스턴스의 집합을 논리적으로 표현하였다면, 관계는 관계 패어링의 집합을 논리적으로 표현한 것

2. 관계의 분류

1) 존재에 의한 관계

  • 두 엔터티 사이의 관계가 존재의 형태에 의해 형성되는 경우

2) 행위에 의한 관계

  • 두 엔터티 사이의 관계가 행위에 의한 관계로 인해 형성되는 경우

3. 관계의 표기법

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

가) 관계명(Membership)

1) 관계명

  • 관계 시작점 : 엔터티에서 관계가 시작되는 편
  • 관계 끝점 : 엔터티에서 관계를 받는 편

2) 관계 시작점과 끝점 모두 관계이름을 가져야 함.
3) 참여자 관점에 따라 관계이름이 능동적 또는 수동적으로 명명됨.
4) 명명규칙

  • 애매한 동사를 피함(Ex:관련이 있다, 이다, 한다 등등)
  • 현재형으로 표시함(Ex:수강을 신청했다가 아닌 수강 신청한다로 표시)

나) 관계차수(Degree/Cardinality)

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

  • 관계를 맺는 엔터티가 하나의 관계만을 가지는 경우

2) 1:M(ONE TO MANY) 관계를 표시하는 방법

  • 관계를 맺는 엔터티가 한 개 이상인 경우이며, 반대의 방향은 한 개의 관계만을 가짐.

3) M:M(MANY TO MANY) 관계를 표시하는 방법

  • 관계를 맺는 엔터티가 한 개 이상인 경우이며, 반대의 경우도 한 개 이상의 관계를 가짐.
  • 이 경우, 두 개의 주식별자를 상속받은 관계엔터티를 이용하여 3개의 엔터티로 구분하여 표현

다) 관계선택사양(Optionality)

1) 필수참여(Mandatory Membership)

  • 참여하는 모든 참여자가 반드시 관계를 가지는, 타 엔터티의 참여자와 연결이 되어야 하는 관계
  • 주문서와 주문목록 관계처럼, 서로가 반드시 존재해야 하는 관계

2) 선택참여(Optional Membership)

  • 참여하는 모든 참여자가 관계를 가지지 않을 수도 있는 관계
  • 목록과 주문목록 관계처럼, 주문목록은 반드시 목록에 있지만, 목록은 주문목록에 없을 수 있음

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

가) 관계 체크사항

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

나) 관계 읽기

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

문서에 대하여

문서정보


'IT > SQLD' 카테고리의 다른 글

[SQLD] 과목1_1장_5.식별자  (0) 2018.11.28
[SQLD] 과목1_1장_3.속성  (0) 2018.11.28
[SQLD] 과목1_1장_2.엔터티  (0) 2018.08.16
[SQLD] 과목1_1장_1.데이터 모델의 이해  (0) 2018.08.10