[ SQLD : I. 데이터 모델링의 이해] 1-4. 관계(Relationship)

문지은·2023년 5월 31일
0

SQLD

목록 보기
4/30
post-thumbnail

관계(Relationship)

관계의 개념

관계의 정의

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

관계 패어링(Relationship Paring)

  • 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것
  • 각각의 엔터티의 인스턴스들이 자신이 관련된 인스턴스들과 관계의 어커런스로 참여하는 형태

관계의 분류

ERD 기준

  • 관계를 연결함에 있어 어떤 목적으로 연결되었느냐에 따라 분류
    • 존재에 의한 관계와 행위에 의한 관계로 구분
  • 표기 구분하지 않음

UML(Unified Modeling Language) 기준

  • 연관관계(Association) : 항상 이용하는 관계, 존재적 관계
  • 의존관계(Dependency) : 상대방 클래스의 행위에 의해 관계 형성
  • 연관관계는 표현방법이 실선으로 표현되고 소스코드에서 멤버변수로 선언하여 사용
  • 의존관계는 점선으로 표현되고 행위를 나타내는 코드인 Operation(Method) 에서 파라미터 등으로 이용할 수 있도록 함

관계의 표기법

관계명(Membership)

  • 엔터티가 관계에 참여하는 형태
  • 관계 시작점과 끝점 모두 관계이름을 가져야 하며 참여 자의 관점에 따라 관계이름이 능동적(Active)이거나 수동적(Passive)으로 명명됨
  • 관계명 명명 규칙
    • 애매한 동사를 피한다.
    • 현재형으로 표현한다.

관계차수(Degree/Cardinality)

  • 한 개가 참여하는 경우는 실선을 그대로 유지하고 다수가 참여한 경우 는(Many) 까마귀발 모양으로 그림
  • 1:1(ONE TO ONE) 관계
  • 1:M(ONE TO MANY) 관계
  • M:M(MANY TO MANY) 관계

관계선택사양(Optionality)

  • 필수참여(Mandatory Membership)
    • 참여하는 모든 참여자가 반드시 관계를 가지는, 타 엔터티의 참여자와 연결 이 되어야 하는 관계
  • 선택참여(Optional Membership)
    • 선택참여된 항목은 물리속성 에서 Foreign Key로 연결될 경우 Null을 허용할 수 있는 항목이 됨
  • 선택참여관계는 ERD에서 관계를 나타내는 선에서 선택참여하는 엔터티 쪽을 원으로 표시하고, 필수참여는 아무런 표시를 하지 않음.

관계의 정의 및 읽는 방법

관계 체크 사항

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

관계 읽기

  • 기준(Source) 엔터티를 한 개(One) 또는 각(Each)으로 읽는다.
  • 대상(Target) 엔터티의 관계참여도 즉 개수(하나, 하나 이상)를 읽는다.
  • 관계선택사양과 관계명을 읽는다.
profile
코드로 꿈을 펼치는 개발자의 이야기, 노력과 열정이 가득한 곳 🌈

0개의 댓글