[1과목] 13. 관계

yeomss·2022년 3월 4일
0

SQLD

목록 보기
13/14
post-thumbnail

관계의 개념


관계의 정의

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

  • 상호 연관성이 있는 상태
  • 엔터티와 엔터티 간 연관성을 표현하기 때문에 엔터티의 정의에 따라 영향을 받기도 하고,
  • 속성 정의관계 정의에 따라서도 다양하게 변할 수 있다.

관계의 페어링

엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것

  • 각각의 인스턴스들이 자신과 관련된 인스턴스들과 관계의 어커런스로 참여하는 형태
  • 페어링의 집합관계로 표현한다.
  • 개별 인스턴스가 각각 다른 종류의 관계를 가지고 있다면 두 엔터티 사이에 두 개 이상의 관계가 형성될 수 있다.
  • 관계의 표현에는 이항 관계, 삼항 관계, n항 관계가 존재할 수 있는데 실제에 있어서 삼항 관계 이상은 잘 나타나지 않는다.

관계의 분류


  1. 존재에 의한 관계
  2. 행위에 의한 관계

관계를 연결함에 있어 어떤 목적으로 연결되었느냐에 따라 위처럼 분류할 수 있다.

UML 에서는 존재적 관계를 → 연관 관계 (Association) : 실선, 멤버 변수로 선언

행위적 관계를 → 의존 관계 (Dependency) 로 표현한다. : 점선, 메서드에서 파라미터 등으로 이용

관계의 표기법


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

관계명

  • 엔터티가 관계에 참여하는 형태를 지칭한다.
  • 각각의 관계는 두 개의 관계명을 가지고 있다.
  • 각각의 관계명에 의해 두 가지의 관점으로 표현될 수 있다.
  • 관계가 시작되는 편을 관계 시작점 (The Begining) 이라고 부르고, 받는 편을 관계 끝점 (The End)라고 부른다.
  • 관계 시작점과 끝점 모두 관계 이름을 가져야 하며 참여자의 관점에 따라 관계 이름이 능동적이거나 수동적으로 명명 된다.
  • 명명 규칙
    1. 애매한 동사를 피한다.
      1. 관계 된다. 관련이 있다. 이다. 한다 등
    2. 현재형으로 표현한다.
      1. 수강신청을 한다. ⭕️ 수강신청을 했다 ❌
      2. 강의를 한다. ⭕️ 강의를 할 것이다 ❌

관계 차수

  • Degree/Cardinality
  • 두 개의 엔터티간 관계에서 참여자의 수를 표현하는 것
  • 한 개의 관계가 존재하느냐 아니면 두 개 이상의 멤버쉽이 존재하느냐를 중요하게 파악해야 한다.
  • 관계를 표현하는 방법
    1. 1 : 1


    2. 1 : M


    3. M : N

    • 이러한 데이터 모델은 이 후에 두 개의 주식별자를 상속받은 관계 엔터티를 이용하여 3개의 엔터티로 구분하여 표현한다.

관계 선택 사양

  • Optionality
  • 관계를 총한 상대방 과의 업무적인 제약조건을 표현하는 것으로 중요한 표기법이다.
  • 어떻게 설정했는지에 따라 참조무결성 제약조건의 규칙이 바뀌게 되므로 유의해서 설계해야 한다.
  • 필수 참여 관계
    • Mandatory Membership
    • 예) 지하철 문과 지하철과의 관계, 주문서와 주문목록
    • 참여하는 모든 참여 엔터티가 반드시 관계를 가진다.
  • 선택 참여 관계
    • Optional Membership
    • 예) 지하철 음성 방송과 지하철과의 관계, 목록과 주문목록
    • 선택 참여된 항목은 물리속성에서 FK로 연결될 경우 Null 을 허용할 수 있는 항목이 된다.
    • ERD 에서 관계를 나타내는 선에서 선택참여하는 엔터티 쪽을 원으로 표시한다.
      (필수참여는 아무런 표시하지 않는다.)
    • 양쪽 엔터티에 모두 선택 참여가 표시된다면, 즉 0:0 관계가 된다면 그 관계는 잘못될 확률이 많으므로 관계 설정이 잘못되었는지를 검토해 보아야 한다.

관계의 정의 및 읽는 방법


관계 체크 사항

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

관계 읽기

먼저 관계에 참여하는 기준 엔터티를 하나 또는 각 으로 읽고, 대상 엔터티의 개수(하나, 하나 이상)를 읽고 관계 선택 사양과 관계명을 읽도록 한다.

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

0개의 댓글