Practice/Oracle

SQLD준비_데이터모델링의 이해_관계

밍미a 2022. 10. 19. 20:25
728x90

1. 관계의 정의

  • 관계는 엔터티 간의 관련성을 의미한다.
  1. 관계의 종류
    • 존재관계 : 두 개의 엔터티가 존재 여부에 관계가 있는 것.
      • 엔터티간의 상태를 의미
      • ex) 고객이 은행에 회원가입을 하면 관리점이 할당되고, 그 할당된 관리점에서 고객을 관리하기 때문에 “고객”은 관리점에 소속된다. 즉 고객과 관리점은 존재관계이다.
    • 행위관계 : 두개의 엔터티가 행위에 의한 관련성이 있는 것
      • 행위관계는 엔터티간의 어떤 행위가 있는 것
      • ex) 증권회사는 계좌를 개설하고 주문을 발주한다. 즉, 계좌개설과 주문발주는 행위관계이다.

2. 관계 차수

  • 관계차수는 두 개의 엔터티 간에 관계에 참여하는 수를 의미
    • ex) 한명의 고객은 여러개의 계좌를 개설할 수 있다. 이때 1대N관계가 된다.
  • 관계 차수의 종류
    • 1대1 관계
      • 선택적 1:1 관계 = 한명의 고객은 하나의 고객등급이 부여되거나 고객등급이 없을 수도 있다.
      • 완전 1:1 관계 = 하나의 엔터티에 관계되는 엔터티의 관계가 하나이거나 없을 수도 있다.
    • 1대 N 관계
      • 1대 N 관계는 엔터티에 행이 하나 있을 때 다른 엔터티의 값이 여러개 있는것
    • M대 N 관계
      • 두 개 엔터티가 서로 여러 개의 관계를 가지고 있는 것
      • 관계형 데이터베이스의 M대N 관계의 조인은 카테시안곱이 발생한다.
        • 카테시안곱 = 10개행이 있고 10개 행이 있으면 두개를 곱해버려서 100개의 행을 만드는것. ⇒ 이를 해소하기 위해서는 M대N 관계를 1대N, N대 1로 해소해야 함
  • 필수적 관계, 선택적 관계
    • 필수적관계는 반드시 하나는 존재해야 하는 관계이다. |로 표시한다.
    • 선택적 관계는 있어도 되고 없어도 되는 관계이다 O로 표시한다.

3. 식별관계와 비식별관계

식별관계 - 구분할 수 있는 관계

  • 강한 개체는 독립적으로 존재한다.
  • 강한 개체는 다른 엔터티에게 기본키를 제공한다.
  • 강한 개체는 식별관계로 표현된다.
  • 강한 개체는 프라이머리키라고 생각하면 될 것 같다.
  • 식별관계란 이쪽에도 있고 저쪽에도 있는것, 왜래키로 받는 쪽이 약한개체이다.
  • 식별관계는 실선으로 표시한다.

비식별관계 - 구분할 수 없는 관계

  • 왜래키로 받은 개체가 기본키로 들어가지 않고 일반칼럼으로 관계를 가지면 그건 비식별관계라고 한다.
  • 비식별관계는 점선으로 표시한다.