Yeonnnnny

[1과목] 1-4. 관계 (Relationship) 본문

SQLD

[1과목] 1-4. 관계 (Relationship)

yeonny_do 2024. 3. 1. 09:03

■ 관계의 개념

  • 관계는 엔터티 간의 연관성을 나타낸 개념
  • 관계를 정의할 때는 인스턴스(각 행 데이터)간의 논리적인 연관성을 파악하여 정의
  • 엔터티를 어떻게 정의하느냐에 따라 변경되기도 함

 

 관계의 종류

  1. 존재적 관계 
    • 한 엔터티의 존재가 다른 엔터티의 존재에 영향을 미치는 관계
    • 엔터티 간의 연관된 상태를 의미
    • ex) 부서 엔터티가 삭제되면 사원 엔터티의 존재에 영향을 미침
  2. 행위적 관계
    • 엔터티 간의 어떤 행위가 있는 것을 의미
    • ex) 고객 엔터티의 행동에 의해 주문 엔터티가 발생

※ ERD에서는 존재 관계와 행위 관계를 구분하지 않음

 

 

 관계의 구성

  1. 관계명
  2. 차수 (Cardinality)
  3. 선택성 (Optionality)

 

 관계의 차수 

  • 한 엔터티의 레코드(인스턴스)가 다른 엔터티의 레코그와 어떨게 연결되는지를 나타내는 표현
  • 주로 1:1, 1:N, N:M 등으로 표현

 

  1. 1 대 1 관계
    • 완전 1대 1 관계
      • 하나의 엔터티에 관계되는 엔터티가 반드시 하나로 존재하는 경우
      • ex) 사원은 반드시 소속 부서가 있어야 함
    • 선택적 1 대 1 관계
      • 하나의 엔터티에 관계되는 엔터티가 하나이거나 없을 수 있는 경우
      • ex) 사원은 하나의 소속 부서가 있거나 아짓 발령 전이면 없을 수 있음
  2. 1 대 N 관계
    • 엔터티에 하나의 행에 다른 엔터티의 값이 여러 개 있는 관계
    • ex) 고객은 여러 개 계좌를 소유할 수 있음
  1. M 대 N 관계
    • 두 엔터티가 다대다의 연결 관계를 가지고 있음
    • 이 경우 조인 시 카테시안 곱이 발생하므로 두 엔터티를 연결하는 연결엔터티의 추가로 1 대 N 관계로 해소할 필요가 있음
    • ex) 한 학생이 여러 강의를 수강할 수 있고, 한 강의 기준으로도 여러 학생을 수용할 수 있음
      • => 이 두 엔터티의 연결 엔터티로는 구매이력 엔터티가 필요함

 

 관계의 페어링

  • 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것
  • 관계란 페어링의 집합을 의미함

 

※ 관계와 차수, 페어링 차이

  • 학생과 강의 엔터티는 관계를 가짐
  • 한 학생은 여러 강의를 수강할 수 있고, 한 강의도 여러 학생에게 수강될 수 있으므로 M 대 N 관계이며, 이 때 차수는 M:N이 됨
  • 인스턴스의 관계를 보면 '학생 A가 강의 B를 2023년 1학기에 수강했고 성적은 A+을 받았다.'와 같은 특정한 페어링이 형성
  • 이런 식으로 관계의 차수는 하나의 엔터티와 다른 엔터티 간의 레코드 연결 방식을 나타내는 반면, 관계의 페어링은 두 엔터티 간의 특정 연결을 설명하고 추가 정보를 제공하는 용도로 사용

'SQLD' 카테고리의 다른 글

[1과목] 1-6. 정규화  (0) 2024.03.03
[1과목] 1-5. 식별자  (0) 2024.03.01
[1과목] 1-3. 속성 (Attribute)  (1) 2024.03.01
[1과목] 1-2. 엔터티 (Entity)  (0) 2024.03.01
[1과목] 1-1. 데이터 모델의 이해  (0) 2024.02.29