본문 바로가기
sqld

관계의 개념

by 자격증원톱 2026. 2. 19.
반응형

관계의 개념

반응형

 

1) 관계(Relationship)란?

  • 엔티티(테이블)끼리 논리적으로 연결된 상태를 말합니다.
  • 현실에서 “A가 B에 속한다 / A가 B를 포함한다 / A가 B를 주문한다” 같은 연결이 DB에서는 관계로 표현됩니다.

예시(회사)

  • 부서사원
    • “사원은 부서에 소속된다” → 부서-사원 관계

2) 관계 페어링(Relationship Pairing)

  • 관계는 사실 “엔티티 전체끼리”가 아니라, 각 인스턴스(행)끼리 연결되는 것을 모아서 표현한 겁니다.

예시

  • 부서(개발팀) ↔ 사원(홍길동) 연결
  • 부서(개발팀) ↔ 사원(김영희) 연결
    이런 연결들이 쌓여서 “부서-사원 관계”가 됩니다.

3) 관계의 분류(2가지)

이미지에서는 관계를 크게 두 종류로 나눕니다.

① 존재에 의한 관계

  • “원래부터 소속/구성으로 연결되는 관계”
  • 예: 부서–사원, 학교–학과, 학과–학생

 예시 문장

  • “사원은 부서에 소속된다.”

② 행위에 의한 관계

  • “업무 행동(주문/신청/결제 등) 때문에 생기는 관계”
  • 예: 고객–주문, 학생–수강신청, 주문–제품

 예시 문장

  • “고객이 주문을 한다.”
  • “학생이 과목을 신청한다.”

4) 카디널리티(Cardinality, 관계차수)

관계가 몇 대 몇인지를 말합니다.

① 1:1 (거의 드뭄)

  • 한쪽 1개가 다른 쪽 1개와만 연결
  • 예: 사람–주민등록증(단순 예시)

② 1:N (가장 흔함)

  • 한쪽 1개가 다른 쪽 여러 개와 연결
  • 이미지 예시도 이 형태: 부서(1) : 사원(N)

 예시

  • 개발팀(부서)에는 사원이 여러 명
  • 사원 한 명은 하나의 부서에 소속

③ N:M (실무에서 매우 흔함 → 보통 “중간 테이블” 필요)

  • 양쪽 모두 여러 개와 연결
  • 이미지 예시: 주문(N) : 제품(M)

 예시

  • 주문 1건에는 여러 제품이 들어갈 수 있고
  • 제품 1개는 여러 주문에 포함될 수 있음

 그래서 DB에서는 보통 주문상품(주문상세) 같은 중간 엔티티(테이블)를 만들어서 해결합니다.


5) 관계선택성(Optionality)

  • 관계 참여가 필수인지, 선택인지를 말합니다.

예시(쇼핑몰)

  • “주문은 반드시 주문목록(주문상세)을 가진다” → 주문 ↔ 주문상세는 필수
  • “목록(상품)은 주문에 포함될 수도, 안 될 수도 있다” → 상품 ↔ 주문상세는 선택

이미지의 요지는 이런 형태예요:

  • 주문(필수) → 주문목록(필수로 존재)
  • 목록(상품)은 주문이 없을 수도 있음(선택)

6) 관계 이름 짓는 규칙(관계명)

  • 관계는 동사 형태로 명확하게 짓는 게 좋습니다.
  • “포함한다, 소속된다, 신청한다, 주문한다”처럼 의미가 바로 드러나야 합니다.
  • 보통 현재형으로 표현합니다.

 예시

  • “부서는 사원을 포함한다”
  • “사원은 부서에 소속된다”
  • “고객은 주문을 한다”
  • “주문은 제품을 포함한다”

요약

  • 관계: 엔티티 사이의 연결
  • 관계 분류: 존재 관계(소속/구성) vs 행위 관계(주문/신청)
  • 카디널리티: 1:1, 1:N, N:M
  • 선택성: 필수 참여 vs 선택 참여
  • 관계명: 동사로 명확하게
반응형

'sqld' 카테고리의 다른 글

정규화의 개념  (0) 2026.02.20
식별자  (0) 2026.02.19
속성의 개념 쉽게 이해하기  (1) 2026.02.19
엔티티의 특징을 알아봅시다!  (0) 2026.02.19
엔티티(Entity)란?  (0) 2026.02.19