지지 On Air

1-1-4. 관계 (Relationship) [ SQLD / SQLP / SQL 가이드 ] 본문

개발/SQL [SQLD&SQLP]

1-1-4. 관계 (Relationship) [ SQLD / SQLP / SQL 가이드 ]

슈스 지지 2022. 7. 9. 08:09
반응형

과목 I. 데이터 모델링의 이해
  - 제 1장 데이터 모델링의 이해
    > 제 4절 관계

1. 관계의 개념

관계의 정의

관계를 사전적으로 정의하면 상호 연관성이 있는 상태로 말할 수 있다. 이것을 데이터 모델에 대입하여 정의하면, '엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연솬성이 부여된 상태'라고 할 수 있다.

 

관계의 패어링

관계는 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것(패어링)이고, 이것을 집합의 관계로 표한한다.

개별 인스턴스가 각각 다른 종류의 관계를 가지고 있다면, 두 엔터티 사이에 두 개 이상의 관계가 형성될 수 있다.

 

2. 관계의 분류

관계의 목적에 따라 존재에 의한 관계, 행위에 의한 관계로 분류할수 있다.

위 그림에서 학생은 학과에 항상 속해있으므로 존재에 의한 관계이고,

고객이 '주문한다'라는 행위를 하여 A001이라는 주문번호를 생성했기 때문에 행위에 의한 관계가 된다.

 

3. 관계의 표기법

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

관계명

관계명은 엔터티가 관계에 참여하는 형태를 지칭한다. 애매한 동사를 피하고, 현재형으로 표현한다. (예, 소속된다, 주문한다)

 

관계차수

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

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

3) M:N 관계 : 관계에 참여하는 각각의 엔터티는 관계를 맺는 다른 엔터티의 엔터티에 대해 하나나 그 이상의 수와 관계를 갖고 있으며, 반대의 방향도 동일하게 관계에 참여하는 각각의 엔터티를 맺는 다른 엔터티의 엔터티에 대해 하나 또는 그 이상의 수와 관계를 가지고 있다.

 

관계선택사양

참여하는 엔터티가 항상 참여하는지, 참여할 수도 있는지를 나타내는 방법이 필수와 선택 참여이다. 관계선택사양은 관계를 통한 상대방과의 업무적인 제약조건을 표현하는 것으로서 간단하면서 아주 중요한 표기법이다.

 

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

관계 체크사항

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

관계 읽기

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

관계 에서도 꼭 한문제씩은 출제가 되는 것 같습니다.

말장난 문제나 (ex.동사->명사) , 관계 표기법에서 주관식 문제가 나올 가능성이 있습니다 :)


본 포스팅은 '한국데이터산업진흥원' 에서 발행한 'SQL 전문가 가이드' 를 참고/인용 하였음을 밝힙니다.
반응형
Comments