IT/SQLD(SQL개발자)

[SQLD] 관계(Relationship)

pandada 2019. 6. 10. 19:19
반응형

관계(Relationship)

 

관계(Relationship)란?!

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

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

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

 

 

관계의 페어링

  - 각각의 엔터티의 인스턴스들은 자신이 관련된 인스턴스들과 관계의 어커런스로 참여하는 형태를 말함 (인스턴스 각각은 자신의 연관성을 가지고 있을 수 있다.)

ex)

<관계 페어링 설명>

 

관계의 분류

  * 존재에 의한 관계

    - 예로는 부서에 사원이 소속되는 것.(부서아래에 부서에 소속된 사원이 있는것이므로 존재.)

  * 행위에 의한 관계

    - 위의 관계의 패어링의 그림이 행위에 의한 관계이다.(행동을 하는것.)

  * 연관관계

    - 항상 이용하는 관곌 존재적 관계에 해당.

    - 실선 사용(->)

  * 의존관계

    - 상대방 클래스의 행위에 의해 관계가 형성될 때 구분하여 표현

    - 점선사용(---->)

 

 

관계명

- 엔터티가 관계에 참여하는 형태를 지칭한다. 각각의 관계는 두개의 관계명을 가지고 있다.

< 관계명 >

위 그림에서 포면 '포함 된다' 와 '소속된다' 2가지 관계명이 나오는 것을 확인할 수 있다.

포함한다는 '관계의 시작점' 이며 소속된다는 '관계의 끝점' 이된다.

 

관계명 작성시 유의사항

   - 애매한 동사를 피한다. 예를 들면 '관계된다', '관련있다', '이다', '한다' 등은 구체적이지 않으므로 어떤 행위가 있는지 모르게 됨으로써 피해줘야함.

   - 현재형으로 표현한다. 예를 들면 '수강 신청한다', '강의를 한다' 로 표현해야함

 

 

관계차수

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

  * 1:1

< 1:1 관계 차수>

 * 1:M

< 1:  N 관계 차수>

 * M:M

< N : N 관계 차수 >

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

  - 반대의 방향도 동일하게 관계에 참여하는 각각의 엔터티는 관계를 맺는 다른 엔터티의 엔터티에 대해 하나 또는 그 이상의 수와 관계를 가지고 있다. 

 

 

관계읽기

  - 연관규칙이 존재하는가?, 정보의 조합이 발생되는가?, 관계연결에 대한 규칙이 서술되있는가? 

  - 관계연결을 가능하게 하는 동사가 있는지 확인 해봐야한다.

  - 기준 엔터티를 한 개(One) 또는 각(Each)으로 읽는다.

  - 대상 엔터티의 관계참여도 즉 개수(하나, 하나 이상)를 읽는다.

  - 관계선택사양과 관계명을 읽는다.

반응형

'IT > SQLD(SQL개발자)' 카테고리의 다른 글

[SQLD] 데이터 모델링관점과 분류  (0) 2019.06.13
[SQLD] 식별  (0) 2019.06.11
[SQLD] 속성(Attribute)  (0) 2019.06.09
[SQLD] 엔터티(Enterty)  (0) 2019.06.08
[SQLD] 데이터 모델링의 이해  (0) 2019.06.07