[SQLD] 데이터 모델링 - 관계( Relationship )

Libra·2022년 7월 7일
0

📌 관계(Relationship)이란?

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

  • 상호연관성이 있는 상태

  • 관계는 엔터티,속성,관계의 정의에 따라서도 다양하게 변할 수 있다.


📌관계의 패어링

출처: https://mjn5027.tistory.com/43


📌관계의 분류

관계는 존재에 의한관계행위에 의한 관계로 분류된다.

  • 존재에 의한 관계
    - 예) "컴퓨터학과에 홍길동이라는 사람이 있다." 와 같이 어떠한 행위로 인한 것이 아니라 존재 여부로 인한 관계

  • 행위에 의한 관계
    - 예) "홍길동 학생이 SQLD 기초 과목을 수강 신청한다." '신청한다'라는 행위에 의해 발생한 관계

    출처: https://goc1221.tistory.com/31?category=783303


📌 UML의 '클래스 다이어그램' 관계

UML의 클래스 다이어그램의 관계는 다음과 같다.

  • 연관관계(Association)

    • 존재적 관계에 해당
    • 실선으로 표현
    • 소스코드에서 멤버변수로 선언하여 사용
  • 의존관계(Dependency)

    • 행위적 관계에 해당
    • 점선으로 표현
    • Operation(Method)에서 파라미터 등으로 이용

💡'ERD'와 '클래스 다이어그램'의 관계차이

  • ERD에서는 존재적 관계와 행위적 관계를 구분하여 표현하지 않는다.
  • 클래스 다이어그램에서는 연관관계와 의존관계로 구분하여 표현한다

📌 관계 체크사항

  1. 두 개의 엔티티 사이에 관심있는 연관규칙이 존재하는가?

  2. 두 개의 엔터티 사이에 정보의 조합이 발생되는가?

  3. 관계연결에 대한 규칙이 서술되어 있는가?

  4. 관계연결을 가능하게 하는 동사가 있는가?


📌 관계의 표기법

  • 관계명(Membership): 관계의 이름

  • 관계차수(Cardinality): 1:1, 1:M, M:N

  • 관계선택사양(Optionality): 필수관계, 선택관계


📌 관계읽기

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

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

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


참조한 블로그
https://ppomelo.tistory.com/54
https://goc1221.tistory.com/31?category=783303
https://someone-life.tistory.com/11

0개의 댓글