CS

[SQLD] 관계와 조인의 이해

2026년 02월 11일 13:41

SQLD 1과목 – 관계와 조인의 이해

관계(Relationship)란?

관계는 엔터티의 인스턴스들 사이에 존재하는 논리적 연관성을 의미한다.

  • 관계는 엔터티 정의, 속성 구성, 업무 규칙에 따라 달라짐
  • 관계를 맺는다는 것은
    👉 부모 엔터티의 식별자를 자식 엔터티가 상속받는 것
    👉 이를 매핑키(조인키)로 활용

조인(Join)

① 개념

조인은 두 개 이상의 테이블을 관계를 기반으로 연결하여 하나의 결과로 조회하는 연산

  • 관계에서 상속된 매핑키(조인키)를 이용
  • 부모-자식 또는 관련 엔터티 간 데이터 결합

② 조인의 필요성

  • 정규화로 인해 엔터티는 여러 개로 분리됨
  • 분리된 엔터티는 관계로 연결됨
  • 실제 조회 시에는 다시 결합해야 함 👉 이때 사용하는 연산이 JOIN

③ 조인 예시

계좌 테이블은 3NF 과정에서
계좌 / 관리점 테이블로 분리됨

공통 속성: 관리점코드

sqld-join

👉 관리점코드를 통해 두 테이블 연결

식별 관계 vs 비식별 관계 ⭐⭐

① 식별 관계

  • 부모 PK가 자식 PK에 포함
  • 자식은 부모 없이는 식별 불가
  • 대부분 복합키 구조

👉 약한 개체에서 주로 발생

② 비식별 관계

  • 부모 PK는 자식의 일반 속성(FK)로 존재
  • 자식은 독립적인 PK 보유

👉 일반적인 설계 구조

계층형 데이터 모델

하나의 엔터티 내부에서
인스턴스 간 상하 관계가 존재하는 구조

  • 동일 테이블을 여러 번 조인
  • 셀프 조인(Self Join) 사용

sqld-hierarchical

👉 MGR 컬럼은 상위 관리자의 사번 의미

상호배타적 관계 (Mutually Exclusive Relationship)

두 엔터티 중
하나와만 관계를 가질 수 있는 구조

예:

주문은

  • 개인고객의 주문이거나
  • 법인고객의 주문 중 하나

동시에 두 고객 유형과 연결 ❌

sqld-mutually-exclusive