반응형
관계의 개념
반응형

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 |