ERD 도식의 의미

오픈소스·2022년 8월 14일
0
post-thumbnail

모두의 SQL, P.142

ERD를 통해 관계 차수(카디널리티. cardinality)와 관계 선택 사양(optionality)을 표현할 수 있습니다. 관계 차수는 1:1, 1:N, M:N 등 하나의 개체에 몇 개의 개체가 대응되는지를 표현하는 것을 말합니다. 관계 선택 사양은 관계가 필수인지 아닌지(없을 수도 있을지)를 표현하는 것을 말합니다. 화살표 방향은 어느 쪽에 속하는지를 나타냅니다.

관계 차수 도식의 의미는 다음과 같습니다.

  • 1 : 관계를 맺는 개체와 하나의 관계를 갖습니다.
  • 0 또는 1 : 관계를 맺는 개체와 0이거나 1의 관계를 갖습니다.
  • 1 이상 : 관계를 맺는 개체와 1이거나 여러 개의 관계를 갖습니다.
  • 0 이상 : 관계를 맺는 개체와 0이거나 여러 개의 관계를 갖습니다.

관계 선택 사양도식의 의미는 다음과 같습니다.

  • 실선 : 필수 관계. 즉 A와 B가 필수 관계일 때 사용합니다. 예로 B가 존재하려면 A가 반드시 존재해야 합니다.
  • 점선 : 선택적 관계. 즉 A와 B가 선택적 관계일 때 사용합니다. 예로 B는 A가 없어도 존재할 수 있습니다.

employesss 테이블과 job_history 테이블의 관계를 예로 살펴보겠습니다.

'employees'는 여러 개의 job_history를 가질 수 있다. 그리고 'employee_id가 없는 job_history는 존재하지 않는다'라는 의미입니다. 예를 들어 employee_id가 101인 Neena Kochhar는 두 개의 job_history를 갖고 있으며 employee_id로 연결되어 있습니다.

SELECT A.firstname, A.last_name, B.*
FROM   employess A, job_history B
WHERE  A.employee_id = B.employee_id
AND    A.employee_id = 101;
FIRST_NAMELAST_NAMEEMPLOYEE_IDSTART_DATEEND_DATEJOB_IDDEPARTMENT_ID
NeenaKochhar10197/09/2101/10/27AC_ACCOUNT110
NeenaKochhar10101/10/2805/03/15AC_MGR110

job_history 테이블에 employee_id 테이터 값 없이 테이터를 생성하려고 하면 오류가 발생합니다.

0개의 댓글