데이터베이스 관계 유형

From CS Wiki
Database Relation Type

종류[edit | edit source]

구분 설명 예시
관계 차수

(카디널리티)

두 엔티티간 관계에서 참여자 수를 표현
  • 1:1
  • 1:N
  • N:M
선택 관계 엔티티간 상호 필수 존재 여부를 표현
  • 선택적 관계
  • 강제적 관계
식별 관계 한 엔티티의 PK가 다른 엔티티에서 PK/FK여부를 구분
  • 식별 관계
  • 비식별 관계
상속 관계 두 엔티티간 상하 상속 관계
  • 배타적 관계
  • 포함 관계

관계 차수[edit | edit source]

일대일(1:1) 관계[edit | edit source]

하나의 부모 엔티티에 연결된 자식 엔티티는 하나밖에 올 수 없는 관계
  • ex) 사원번호 - 주민등록번호
    • 사원번호, 주민등록번호 모두 고유한 사원을 가리킨다. 사원번호 하나엔 하나의 주민등록번호만 대응될 수 있다.
  • 하나의 테이블로 구성한다.

일대다(1:N) 관계[edit | edit source]

하나의 부모 엔티티에 연결된 자식 엔티티가 여러 개가 될 수 있는 관계
  • ex) 부서 - 사원
    • 부서에 여러 사원이 속한다. 사원은 여러 부서를 가질 수 없다.
  • 두개의 테이블로 구성하고 FK를 이용한다.

다대다(N:M) 관계[edit | edit source]

하나의 부모 엔티티와 연결된 자식 엔티티가 여러 개가 될 수 있고 여러 개의 부모 엔티티와 연결된 자식 엔티티가 하나가 될 수 있는 관계
  • ex) 사원 - 업무
    • 한명의 사원이 A업무, B업무를 동시에 할 수도 있고, A업무를 여러 사원이 같이 할 수도 있다.
  • 두개의 테이블에 관계 테이블이 하나 더 필요하다.(3개)

선택 관계[edit | edit source]

  • 선택적 관계: 한 엔티티가 다른 엔티티에 속할 수도 있고 안 속할 수도 있다.
    • ex) 직원 - 파견지: 직원은 파견지에 속할수도 있고 안 속할 수도 있다.
  • 강제적 관계:
    • ex) 직원 - 부서: 직원은 반드시 하나의 부서에 속하여야 한다.

식별 관계[edit | edit source]

  • 식별 관계 : 부모 엔티티의 주식별자가 자식 엔티티의 주식별자로 상속
    • ex) 사원 - 가족관계: 사원의 가족관계는 사원 PK를 주식별자로 이용한다.
  • 비식별 관계 : 부모 엔티티의 주식별자가 자식 엔티티의 일반속성으로 상속
    • ex) 사원 - 프로젝트: 사원은 프로젝트의 담당자라는 속성으로 이용된다.

상속 관계[edit | edit source]

  • 배타적 관계: 슈퍼타입의 엔티티가 반드시 하나의 서브타입에는 속하는 관계
    • ex) 직원 - 정직원/계약직원: 직원은 정직원이거나 계약직원 둘 중 하나이다.
  • 포함 관계: 슈타타입의 엔티티가 두 개 이상의 서브타입에 포함될 수 있는 관계
    • ex) 직원 - 개발자/기획자: 직원은 개발자이면서 기획자일수도 있다.