본문 바로가기

Data Science/SQLD

[SQLD] 데이터 모델링의 이해 1-4. 관계

반응형

1. 관계의 개념

 

가.관계의 정의

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

 

-> 엔터티와 엔터티 간의 연관성을 표현. [즉, 엔터티의 정의에 따라, 속성 정의 및 관계 정의에 따라 변할 수 있다.]

 

나. 관계의 페어링

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

-> 이것의 집합을 관계로 표현한다. [즉, 개별 인스턴스가 각각 다른 관계를 갖는다면, 두 개 이상의 관계 형성 가능]

 

관계 페어링 : 각각의 엔터티의 인스턴스들은 자신이 관련된 인스턴스들과 관계의 어커런스로 참여하는 관계

강사1 정성철
강사1의 학생 이춘식, 황종하
강사2 조시형
강사2의 학생 황종하
각각의 관계 강의

-> 관계 페어링 : 엔터티내에 인스턴스와 인스턴스사이에 관계가 설정되어 있는 어커런스

 

엔터티 : 인스턴스의 집합을 논리적으로 표현

관계 : 관계 페어링의 집합을 논리적으로 표현

 

#관계의 표현 [삼항 관계 이상은 잘 나타나지 않는다.

: 이항관계, 삼항관계, n항 관계

 


2. 관계의 분류

: 어떤 목적으로 연결되었느냐에 따른 분류

-> 존재에 의한 관계 / 행위에 의한 관계 

 

존재에 의한 관계 : [부서] DB팀 -소속한다> [사원] 황경빈

=사원이 부서에 항상 속해있다

 

행위에 의한 관계 : [고객] 김경재 -주문한다> [주문] CTA201

=주문은 고객이 주문을 할 때 발생된다.

 

UML [Unified Modeling Language] : 연관관계 / 의존관계

연관관계 : 항상 이용하는 관계 -> 존재적 관계

의존관계 : 행위에 의해 관계가 형성

 

클래스 다이어그램 -> 연관관계와 의존관계로 표현

연관관계 : 실선으로 표현, 멤버변수로 선언

의존관계 : 점선으로 표현, Operation(Method)에서 파라미터로 이용가능


3. 관계의 표기법

  • 관계명 : 관계의 이름
  • 관계차수 : 1:1, 1:M, 1:N
  • 관계선택사양 : 필수관계, 선택관계

가. 관계명 : 엔터티가 관계에 참여하는 형태를 지칭 / 두 개의 관계명을 가진다 / 각각의 관계명에 의해 두 가지 관점으로 표현

 

#관계의 관계명

부서 [포함한다 / 소속된다] 사원

 

관계시작점: 관계가 시작되는 편

관계끝점 : 받는 편

 

참여자의 관점에 따라, 능동적이거나 수동적으로 명명

  • 애매한 동사를 피한다.
  • 현재형으로 표현

나. 관계차수

: 두 개의 엔터티간 관계에서 참여자 수를 표현

 

Crow's Foot 모델 : 선을 이용해 표현 [까마귀발]

(1) 1:1 관계 : 관계를 맺는 다른 엔터티의 엔터티에 대해 단지 하나의 관계

-> 한 사원에게는 한 가지의 병역사항만을 작성한다.

(2) 1:M 관계 : 관계를 맺는 다른 엔터티의 엔터티에 대해 하나나 그 이상의 수와 관계 / 반대는 단지 하나만의 관계

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

(3) M:M 관계 : 관계를 맺는 다른 엔터티의 엔터티에 대해 하나나 그 이상의 수와 관계 / 반대도 동일

-> 주식별자를 상속받은 관계엔터티를 이용해 3개의 엔터티로 구분하여 표현

 

다. 관계 선택사양 [관계를 통한 상대방과의 업무적인 제약조건의 표현 / 참조무결성 제약조건의 규칙에 영향을 준다.]

: 필수관계, 선택관계

필수참여관계 : 지하철 출발, 지하철 문닫힘 

선택참여관계 : 지하철 출발, 지하철 방송

 

필수참여 : 타 엔터티의 참여자와 연결이 되어야 하는 관계 [주문서와 주문목록]

선택참여 : 물리속성에서 Foreign Key로 연결될 경우 Null을 허용할 수 있는 목록 [목록과 주문목록]

-> 업무 로직과 직접적으로 관련된 부분으로 개발 시점에 반드시 고려되어야 한다.

 

#ERD

선택 참여 : 선택참여하는 엔터티 쪽을 원으로 표시

-> 하나의 주문목록에는 한 개의 목록을 항상 포함하고 한 목록은 여러 개의 주문목록에 의해 포함될 수 있다.

[주문목록]-여러개-포함한다--포함된다-[목록]

필수 참여 : 아무런 표시를 하지 않는다.

-> 0:0 [모두 선택참여]인 경우 잘못될 확률이 높으므로, 다시 확인


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

 

가. 관계 체크사항

  • 관심있는 연관규칙 존재 여부
  • 정보의 조합 발생 여부
  • 관계연결에 대한 규칙 서술 여부
  • 관계연결을 가능하게 하는 동사 존재 여부

나. 관계 읽기

: 관계에 참여하는 기준 엔터티를 하나 또는 각으로 읽고 대상 엔터티의 개수를 읽고 관계선택사양과 관계명을 읽는다.

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

[부서] -|-포함한다-O|<[사원]

 

각각의/하나의 기준엔터티 관계 차수 관계 엔터티 선택사양[필수/선택] 관계명

각각의 사원은 한 부서에 때때로 속한다.

각 부서에는 여러 사원이 항상 소속된다.

반응형