221216 항해99 40일차 ERD

요니링 컴터 공부즁·2022년 12월 16일
0
post-custom-banner

Entity Relationship Diagram

  • 흔히 ER 다이어그램이라고 불리며 ERD라고 줄여 부르기도 한다.

  • 영어 약자 그대로 '존재하고 있는 것(Entity)들의 관계(Relationship)을 나타낸 도표(Diagram)'이다.

  • 여기서 말하는 존재하고 있는 것이란 데이터를 뜻하니 데이터들의 관계를 나타낸 도표인 셈이다.

  • 먼저 ERD의 규칙은 다음과 같다.

  • A는 부모, B는 자식의 관계를 가진 ERD이다. 여기서 '~B로 구성되어 있다'라는 말이 살짝 헷갈릴 수 있다.

  • 이를 풀어 설명해주면 '~B를 포함하고 있다' 라고 이해하면 된다.

  • 그리고 부모와 자식의 관계를 알아야 하는데 A 테이블의 기본키를 B 테이블이 가지고 있다면 A테이블이 부모 테이블, B테이블이 자식 테이블을 뜻한다.

  • 또한 그림에는 없지만 점선과 실선으로 관계를 구분하는데 실선은 부모 테이블의 기본키를 자식 테이블이 가지고 있으며 이를 기본키로 사용하는 경우이고, 점선은 부모 테이블의 기본키를 자식테이블이 가지고 있지만 이를 기본키로 사용하지 않을 때 사용한다.

  • 위의 학생 테이블과 수강내역 테이블과의 관계를 나타낸 ERD이다.

  • 먼저 부모 테이블과 자식 테이블이 누구인지 알아내야 하는데 수강내역 테이블이 학생 테이블의 기본키를 외래키로 가지고 있으니 수강내역 테이블이 자식 테이블, 학생 테이블이 부모 테이블임을 알 수 있다.

  • 다음으로 테이블 간의 관계를 보면 학생 테이블 쪽의
    는 1을 뜻하기 때문에 '하나의 학생', 수강내역 테이블 쪽의
    는 0~N 을 뜻하기 때문에 '0~N 개의 수강내역'을 뜻한다.

  • 이는 학생의 입장에서는 '하나의 학생은 0~N 개의 수강내역을 가진다', 수강내역의 입장에서는 '0~N 개의 수강내역은 하나의 학생에게 포함되어 진다'라는 해석이 가능하다.

  • 그리고 수강내역 테이블에서 학생 테이블의 기본키를 자신도 기본키로 사용하기 때문에 실선으로 표현되어 있음을 알 수 있다.

  • 이러한 모든걸 유추해 이 ERD를 해석해 보자면

    • 부모 테이블은 학생 테이블이다.
    • 자식 테이블은 수강내역 테이블이다.
    • 부모 테이블의 PK를 자식 테이블에서 PK로 사용하고 있다.
    • 학생 한 명은 0~N 개의 수강내역을 가진다.
    • 수강내역은 하나의 학생을 가진다.
    • 수강내역 테이블은 학생 테이블의 PK인 학생ID를 FK로 가진다.

  • 부서 테이블과 사원 테이블을 예로 든 그림이다.
  • 이전 예제와 달리 점선으로 관계를 표현한걸 보니 사원 테이블은 부서 테이블의 기본키를 가지고 있지만 이를 기본키로 사용하지는 않음을 알 수 있다.
  • 이 ERD를 이전 예제와 똑같은 방법으로 해석하면 다음과 같다.
    • 부모 테이블은 부서 테이블이다.
    • 자식 테이블은 사원 테이블이다.
    • 자식 테이블이 부모 테이블의 PK를 가지고 있지만 이를 PK로 사용하지는 않는다.
    • 하나의 부서는 0~N 명의 사원을 가질 수 있다.
    • 사원 테이블은 부서 테이블의 PK인 부서번호를 FK로 가진다.

참조:
[ Database ] ER 다이어그램 / ERD 기호 및 표기법

post-custom-banner

0개의 댓글