관계의 개념
f
firststep 에디터
IT / 자격증 전문 라이터
2026년 2월 19일681
관계의 개념
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 선택 참여
- 관계명: 동사로 명확하게
f
firststep 에디터 · IT / 자격증 전문 라이터
firststep.kr의 실무 에디터로서 무언가를 처음 도전하는 분들이 헤매지 않도록 검증된 지식과 실습 가이드를 작성합니다.
댓글 0개
댓글을 작성하려면 로그인이 필요합니다
간단한 이메일과 비밀번호로 3초 만에 가입하고 의견을 남겨보세요.
첫 번째 댓글을 남겨보세요!