관계형 데이터 모델링 프리미엄 가이드 DB구축 (2014년)
관계 구성 요소 0 0 50,786

by 구루비스터디 관계 Relationships [2018.06.10]


10.3 관계 구성 요소

  1. 10.3 관계 구성 요소
    1. 1. 카디널러티(Cardinality)
    2. 2.옵셔널러티(Optionality)
    3. 3.관계 디그리(Releationship Degree)


1. 카디널러티(Cardinality)

  • 엔터티의 연관성을 파악하고 관계를 도출해 관계선을 표현할 때 가장 기본적인 요소
  • 1:1관계, 1:M관계, M:M관계
  • M:M관계는 최종 물리 모델에서는 구현될 수 없다.



2.옵셔널러티(Optionality)

  • 상관되는 관계 값의 존재여부를 의미
  • 하위엔터티의 값과 연관되는 상위엔터티의 값이 반드시 존재해야 하는지(Mandatory)존재하지 않아도 되는지(Optional)을 의미(반대도 마찬가지)


그림 10.28


그림 10.36


  • 양쪽 옵셔널러티가 선택인 관계선은 관계가 없는 거나 마찬가지이지만 관계선을 삭제하는 것은 바람직하지 않다
  • 상위엔터티 쪽의 옵셔널러티를 필수(Mandatory)가 될수 있도록 만들어 주는 것이 좋으며고객 엔터티의 관계선을 필수(Mandarory)로 만틀지 못하더라도 고객과 통장은 연관관계가존재하므로 관계선을삭제하는 것은좋지 않다|


그림 10.37


  • 통장엔터티는 실체로서 입고된 상태의 통장을 관리하는 엔터티
  • 고객통장 엔터티는 고객에게 발급된 통장을 관리하는 엔터티
  • 고객 엔터티는 통장엔터티와는 관계가 없으며 고객통장 엔터티와 관계가 존재
  • 고객통장 엔터티에는 고객번호가 존재하는 인스턴스만 관리
  • 재고 상태의 발급 전 통장과 고객에게 발급된 통장을 별도의 엔터티에서 관리하면 관계선도 정상이되며 엔터티의 성격도 명확해진다.


  • 프로세스에 의해 관리속성이 많이 달라지면 데이터 성격이 변한 것일수 있으므로 별도의 엔터티로 관리되는 것이 효과적이다.
  • 그림 10.36모델과 같은 양 방향 옵셔널러티가 선택(Optional)인 관계는 서브타입으로 표현 가능. 고객에게 발급되기 전의 통장과 발급된 통장을 그림 10.38과 같이 서브타입으로 구분해서 관리할 수 있다.


그림 10.38


3.관계 디그리(Releationship Degree)

  • 하나의 관계에 포함된 엔터티의 개수
  • 관계는 3개이상의 엔터티 사이에서도 발생할 수 있다.
  • 어떤 학생이 어떤 교수의 어떤과목을 수강 신청했는지를 관리
그림 10.39


  • M:M관계 해소
그림 10.40


  • 신청일자 속성은 학생,과목,교수 엔터티의 주식별자 조합에 의해서 유일하게 결정됨.
  • 학생,과목,교수 엔터티의 주 식별자 조합이 결정자가 돼 함수 종속의 왼쪽에 표현됨.
  • FD : (학생번호,과목코드,교수ID) -> 신청일자


그림 10.41


릴레이션a
  • 학생(홍길동)과 교수(김길동)으로 이루어진 인스턴스에 대해 과목(철학,역사)에 해당하는 카디널러티는 M개
  • 학생과 과목으로 이루어진 인스턴스에 해당 교수도 M개 존재
  • 교수와 과목으로 이루어진 인스턴스에 해당하는 학생도 M개존재


릴레이션b - 현실적인면고려
  • 학생(홍길동)과 과목(철학)을 나타내는 인스턴스에 해당하는 교수(김길동)는 한 개이다.
  • 반면 학생(홍길동)과 교수(김길동)이 나타내는 인스턴스와 연관되는 과목(철학,역사) 은 M개이며,
  • 교수(최길동)와 과목(영문)을 나타내는 인스턴스와 연관되는 학생(홍길동,이길동)은 M개이다.
  • 즉그림10.41의 릴레이션b에서 학생(홍길동)과 과목(철학)을 알게 되면 교수(김길동)는 하나이므로 누구인지 알게된다.
  • 하지만 학생(홍길동)과 교수(김길동)만 알아서는 수강과목(철학,역사)중 무엇인지 알 수 없게된다.
  • 교수(최길동)와 과목(영문)을 알아서도 학생(홍길동,이길동)이 누구인지 알 수 없다.


그림 10.42


  • 교수를 결정하는 학생과 과목이 결정자가 돼 함수종속의 왼쪽에 표현되고 교수는 종속자가 돼 오른쪽에 표현된다.
  • FD : (학생,과목) -> 교수
  • 일반적으로 N개체관계에서 카디널러티가 1인 엔터티의 주 식별자는 N개체 관계에서 주 식별자에 포함되지 않고 종속자가 된다.
  • 인스턴스가 늘어나는 데 영향을 끼치지 않으므로 카디널러티가 1인 엔터티(교수)는 주식별자에 포함되지 않는다.
  • 함수종속을 찾으면 주 식별자를 알 수 있다.


그림 10.43


  • 3개체관계를 간혹 두개체 관계로 잘못 도출할 수가있다.


그림 10.44


  • 3개체 관계를 세 개의 2개체 관계로 도출하면 데이터를 관리하는데 문제가 없어서 3개체 관계를 사용하지 말것을 권유하기도 한다. 하지만 요건만 제대로 반영됐다면 3개체 관계가 오히려 효율적이므로 3개체관계를 사용하는것이 바람직 하다.
"구루비 데이터베이스 스터디모임" 에서 2014년에 "관계형 데이터 모델링 프리미엄 가이드" 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/3639

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입