[DB] 연관관계와 ERD

오진석·2023년 8월 30일

DB

목록 보기
1/1

Database의 연관관계란?

관계형 데이터베이스에서는 연관관계를 많이 사용합니다. 연관관계란 두 개 이상의 테이블 간에 존재하는 관계를 의미합니다.

연관관계의 종류

연관관계의 종류로는

  • 일 대 일 (1 to 1)
  • 일 대 다 (1 to N)
  • 다 대 일 (N to 1)
  • 다 대 다(N to M)

이렇게 네 가지 종류가 있습니다.

그렇다면 ERD란?

위와 같은 연관관계를 그림으로 표현한 것을 ERD(Entity Relationship Diagram)라고 합니다. ERD는 데이터베이스를 구성할 때 필수적인 요소로, 데이터베이스 설계 시 각 테이블 간의 관계를 명확히 파악할 수 있도록 도와줍니다.

테이블 정보와 PK, FK 그리고 관계선과 특수 기호로 구성됩니다.

관계선의 종류

  • 실선(Identifying): 식별관계
    • 부모테이블의 PK가 자식테이블의 FK/PK가 되는 경우
    • 부모가 있어야 자식이 생기는 경우
  • 점선(Non-Identifying): 비식별관계
    • 부모테이블의 PK가 자식테이블의 일반속성이 되는 경우
    • 부모가 없어도 자식이 생기는 경우

특수 기호의 종류

  • | : 1개 / 실선은(dash) ‘1'을 나타낸다.
  • ∈ : 여러개 / 까마귀 발(crow’s foot or Many)은 ‘다수' 혹은 '그 이상'을 나타낸다.
  • ○ : 0개 / 고리(ring or Optional)은 ‘0'을 나타낸다.

연관관계를 ERD로 표현하면!

  • 가장 기본적인 구조

    하나의 학과의 여러명의 학생이 소속 될 수 있다.

    학생테이블의 정보는 학생 번호, 이름, 나이, 학과번호로 구성 되어 있고

    학과 테이블은 학과 번호, 확과 사무실 번호, 강의실로 구성 되어 있다.

    학과 테이블 입장에서 학생테이블을 바라보고 일 대 다( 1 to N )구조를 이룬다.

    반대로 학생 테이블 입장에선 학과 테이블을 바라보고 다 대 일 (N to 1)관계를 이룬다.

  • 일 대 일 (1 to 1)

    1. 1 to 1 단방향
    2. 1 to 1 양방향

  • 일 대 다 (1 to N), 다 대 일 (N to 1)

    1. 1 to 0~N : 하나와 0개 에서 N개 까지 연결 된다.
    2. 1 to 1~N : 하나와 1개 에서 N개 까지 연결 된다.
    3. 1 to N : 하나와 N개 까지 연결 된다.

  • 다 대 다(N to M)

    1. N to M
    2. N to 1 관계 테이블 1 to M
    연관관계를 설계 하다보면 다 대 다 관계는 빈번하게 필요해집니다. 하지만 다 대 다 관계를 코드로 구현하는 것이 정말 복잡합니다.

    이것을 해소하기 위해 만든 관계가 두 번째 그림입니다. 다 대 다 관계 사이에 그 둘의 관계를 정리해주는 관계 속성을 만들어서 두 테이블이 해당 속성을 일 대 다, 다 대 일 관계로 참조하게 해서 복잡함이 해결된 모습입니다.

  • 그 외

    위의 네가지 관계를 특수 기호와 관계선의 종류를 섞어서 더 다양하게 표현 할 수 있지만, 자주 사용 되지 않고 너무 이해하기 난해한 구조가 되기 때문에 생략했습니다.

    ex) 영 대 다 (0 to N), 영 대 일 ( 0 to 1 ) … 등등

  • REF

    ERD 점선, 실선, 특수기호 https://eyecandyzero.tistory.com/246

    ERD 특수기호, 대표적인 네가지 관계 https://mjn5027.tistory.com/43

0개의 댓글