이름이 비슷, 비교: [[릴레이션relation]] A '''relationship''' among [[개체entity|entities]] represents an interaction among the entities. Ex. `works_on` between an `employee` and a `project`[* KU황인준 2022-03-21 19m] 두 개 사이에 존재하는 [[binary_relationship]] 세 개 사이에 존재하는 [[ternary_relationship]] ... binary와 ternary의 예:[* KU황인준 2022-04-20 42m] 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란?[* 황인준 2022-04-20 44m] ''[[릴레이션relation]]의 [[차수degree]]와 전혀 다른???'' * The number of participating entity types. * Binary, ternary, etc. '''Relationship'''s as Attributes - '''관계'''를 [[속성attribute]]으로 표현하기[* KU황인준 2022-04-20 45m] ex. EMPLOYEE 와 DEPT 사이에 WORKS_FOR 옵션 1. EMPLOYEE에 DEPT 속성 - 직원이 일하는 부서 - 하나 뿐 - single-valued attribute 옵션 2. DEPT에 EMP 속성 - 부서에서 일하는 직원(들) - 복수도 가능 - multiple-valued attribute ---- ex. {{{ [고객] ---- <구매> ----- [책] }}} E-R diagram에서 마름모로 표현.[* https://terms.naver.com/entry.naver?docId=3431123&cid=58430&categoryId=58430&expCategoryId=58430] 관계의 구분 : 세 가지 형태. ■ 일대일(1 : 1) 관계 ■ 일대다(1 : n) 관계 ■ 다대다(n : m) 관계[* https://terms.naver.com/entry.naver?docId=3431124&cid=58430&categoryId=58430&expCategoryId=58430] * one-to-one * one-to-many * many-to-many[* Learning PHP, MySQL, and JavaScript의 TOC에서] 관계의 의존성/종속성. 개체 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]]는 이중 마름모로 표현.[* https://terms.naver.com/entry.naver?docId=3431126&cid=58430&categoryId=58430&expCategoryId=58430] = Role name[* KU황인준 2022-04-20 49m p32] = {{{ [학생] ---- < 수강 > ---- [과목] }}} (학생이 과목을 수강) 같은 경우엔 필요없는데, {{{ [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? ---- Up: [[database]]