포스트

SQLD: 관계 이해하기

이기적 SQLD 이론 강의

관계 (Relationship)

엔터티 내의 인스턴스들 간에 서로 논리적인 연관성이 있는 상태.

엔터티와 인스턴스

엔터티: 현실에 있는 집합을 단순 명사화 한 것
인스턴스: 엔터티 내의 엔트리들 - 엔터티라는 집합의 구성

관계의 분류

존재와 행위에 의한 관계가 있다.

존재에 의한 관계: 직원은 부서에 소속된다
행위에 의한 관계: 고객은 상품을 주문한다

  • ERD는 존재/행위 등 관계를 그림으로 표시한다.

ERD

Entity Relationship Diagram
엔터티끼리의 관계를 이용하여 그린 그림

  • UML 클래스다이어그램은, 연간관계(존재)는 실선으로 표기하고, 의존관계(행위)는 점선으로 표시한다.

시험에서는 ‘다음 관계의 분류에 대해 올바르지 않은 경우는?’ 등으로 나오며, 말장난 수준으로 나온다. (예: 존재에 의한 관계는 점선이다.)

관계를 표시하는 방법

표기하는 방식에 따라 IE와 Barker 표기법으로 구분된다.

  • 시험에서는 IE가 대부분 나온다.

ERD에서의 선(관계)은 세 가지 방식으로 표현된다:

  • 관계명(Membership)
  • 관계차수(Cardinality/Degree)
  • 관계선택사양(Optionality)
  1. 관계명을 표시한다. 이때, 애매한 동사나 과거형은 피한다.

직원이 부서에 소속되어있다, 부서가 직원을 보유하고있다

IE와 Barker 모두 표기방식 동일

  1. 관계차수는 엔터티 내 각 인스턴스들이 얼마나 참여하는지를 의미한다.

1:1, 1:M, M:N 등

degree

IE 표기방식에서는 위와 같은 형태로 관계차수를 표현한다.

반면, Barker 표기방식은 1의 의미를 별도로 표현하지 않는다.

diff1
diff2

  1. 관계선택사양은 엔터티 내 각 인스턴스들이 필수/선택 참여하는지를 의미한다.

erddiagram

difference

Barker 표기법에서는 1관계는 표현하지 않으며, 0에 대한 표기는 반대쪽을 점선으로 표현한다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.