관계relationship

이름이 비슷, 비교: 릴레이션relation

A relationship among entities represents an interaction among the entities.
Ex. works_on between an employee and a project[1]

두 개 사이에 존재하는 binary_relationship
세 개 사이에 존재하는 ternary_relationship
...

binary와 ternary의 예:[2]
binary:
https://i.imgur.com/CBaFbuil.png

EMPLOYEE와 DEPARTMENT 사이에 WORKS_FOR relationship과 그 중 일부 인스턴스instance를 나타낸 그림.
EMPLOYEE가 DEPARTMENT를 위해 WORKS_FOR.
ternary:
https://i.imgur.com/5QZxTX6l.png

PROJECT를 위해 공급자(SUPPLIER)s가 부품(PART)s을 공급(SUPPLY).

Relationship에서 degree란?[3]
릴레이션relation차수degree와 전혀 다른???
  • The number of participating entity types.
  • Binary, ternary, etc.

Relationships as Attributes - 관계속성attribute으로 표현하기[4]
ex. EMPLOYEE 와 DEPT 사이에 WORKS_FOR
옵션 1. EMPLOYEE에 DEPT 속성 - 직원이 일하는 부서 - 하나 뿐 - single-valued attribute
옵션 2. DEPT에 EMP 속성 - 부서에서 일하는 직원(들) - 복수도 가능 - multiple-valued attribute


ex.
 [고객] ---- <구매> ----- [책]
E-R diagram에서 마름모로 표현.[5]

관계의 구분 : 세 가지 형태.
■ 일대일(1 : 1) 관계
■ 일대다(1 : n) 관계
■ 다대다(n : m) 관계[6]

  • one-to-one
  • one-to-many
  • many-to-many[7]

관계의 의존성/종속성.
개체 B가 독자적으로 존재할 수 없고, 개체 A의 존재 여부에 의존적이면, B는 A에 종속되어 있다.
B가 A에 종속이라면,
A가 존재해야 B가 존재할 수 있고,
A가 삭제되면 B도 같이 삭제되어야 한다.
이런 것을 존재종속(existence dependence)이라 한다.
여기서
다른 개체의 존재 여부를 결정하는 개체: 오너 개체(owner entity)
다른 개체의 존재 여부에 의존적인 개체: 약한 개체(weak entity)

ex.
학교 DB에선 학생 개체가 있어야 학부모 객체가 존재하고, 학생 개체가 없으면 학부모 객체가 필요없다.
회사 DB에선 직원 개체가 owner entity, 부양가족 개체가 weak entity.

E-R diagram에선,
약한 개체는 이중 사각형으로,
약한 개체가 owner entity와 맺는 관계relationship는 이중 마름모로 표현.[8]

Role name[9]

 [학생] ---- < 수강 > ---- [과목]
(학생이 과목을 수강) 같은 경우엔 필요없는데,
 [EMP] ---- < SUPERVISION > ---- [EMP]
(직원이 직원의 supervisor) 같은 경우에 필요.
https://i.imgur.com/yNIYBe6l.png

여기서 SUPERVISION은 recursive_relationship.
EMPLOYEE entity type은 두 role을 play한다 : 1은 supervisor, 2는 supervisee.
그림에서 e5가 e1의 직속상관.

ER diagram 기호

그냥 마름모: relationship - 둘 다 strong entity? chk
이중 마름모: identifying relationship - 하나는 weak entity?