SQLD 1-4 관계

강태공·2022년 11월 1일
0

관계의 정의

① 사전적으로 정의하면 상호 연관성이 있는 상태이다.
② 엔터티 간 논리적인 연관성을 의미한다.
③ 존재에 의한 관계와 행위에 의한 관계로 구분된다.

엔터티 간 논리적인 연관성을 의미하고 존재에 의한 관계와 행위에 의한 관계로 구분된다.

관계의 패어링

① 관계는 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것(패어링)이고 이것의 집합을 관계로 표현한다는 것이다.
② 각각의 엔터티의 인스턴스들은 자신이 관련된 인스턴스들과 관계의 어커런스(발생, 사건)로 참여하는 형태를 관계 패어링(Relationship Paring)이라 한다

관계의 분류 - 1. 존재에 의한 관계

  • "소속된다"라는 의미는 행위에 따른 이벤트에 의해 발생되는 의미가 아니고 그냥 사원이 부서에 소속되어
    있기 때문에 나타나는
  • 즉 존재의 형태에 의해 관계가 형성되어 있는 것이다.

관계의 분류 – 2. 행위에 의한 관계

  • 주문 엔터티의 주문번호는 고객이 "주문한다"라는 행위에 의해 발생되었기 때문에
  • 두 엔터티 사이의 관계는 행위에 의한 관계가 되는 것

관계의 표기법 - 1. 관계명

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

관계 명명의 규칙

  • 애매한 동사를 피한다. 예를 들면 "관계된다", "관련이 있다" 등은 구체적이지 않아 어떤 행위가 있는지 또는 두 참여자간 어떤 상태가 존재하는지 파악할 수 없다.
  • 현재형으로 표현한다. 예를 들면 "수강을 신청했다", "강의를 할 것이다"라는 식으로 표현해서는 안된다. "수강 신청한다", "강의를 한다"로 표현해야 한다.

관계의 표기법 - 2. 관계차수

① 두 개의 엔터티 간 관계에서 참여자의 수를 표현하는 것을 관계 차수(Cardinality)라고 한다.
② 가장 일반적인 관계 차수 표현방법은 1:1, 1:M, M:M이다

  • 관계차수 1:1

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

  • 관계차수 1:m

한 명의 사원은 한 부서에 소속되고 한 부
서에는 여러 사원을 포함한다.

  • 관계 차수 1: m

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

# 관계의 표기법 - 3. 관계차수

① “반드시 지하철의 문이 닫혀야만 지하철은 출발한다.”
② 지하철출발과 지하철문닫힘은 필수(Mandatory)적으로 연결 관계가 있는 것이다. 이와 같은 것이 데이터 모델의 관계에서는 필수참여관계(Mandatory)가 된다.
③ 지하철의 출발을 알리는 안내방송은 지하철의 출발과 상관없이 방송해도 아무런 문제가 발생하지 않는다. 즉 안내방송시스템이 고장이 나도 지하철운행에는 별로 영향을 주지 않는다
④ 지하철의 출발과 지하철방송과는 정보로서 관련은 있지만 서로가 필수적인(Mandatory) 관계는 아닌 선택적인 관계(Optional)가 되는 것이다. 이와 같은 것이 데이터 모델 관계에서는 선택참여관계(Optional)가 된다

  • 고객은 여러 개의 주문을 할 수 도 있고 한 개의 주문도 하지 않을 수 있다.(선택적 관계)
  • 주문은 반드시 고객을 가진다. (필수적 관계)

관계 정의 시 체크 사항

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

관계 읽기

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

0개의 댓글

관련 채용 정보