SQLD 관계와 조인의 이해

Soondol·2024년 4월 30일

관계

  • Entity와 인스턴스 사이의 논리적 연관성 (상호 연관성이 있는 상태)
  • 관계를 맺는다 > 부모의 식별자를 자식에 상속하고, 상속된 속성을 매핑키(조인키)로 활용

관계의 분류

  • 존재 관계 > Entity간의 상태를 의미 (사원 Entity는 부서 Entity에 소속)
  • 행위 관계 > Entity간의 어떤 행위가 있는 것을 의미 (주문은 고객이 주문할 때 발생)

조인

  • 데이터 중복을 피하기 위해 테이블은 정규화에 의해 분리됨
  • 분리된 두 테이블은 서로 관계를 맺게되고, 이 두 테이블의 데이터를 동시에 출력하거나 관계가 있는 테이블을 참조하기 위해서는 데이터를 연결해야하는데 이 과정을 Join

계층형 데이터 모델

  • 자기 자신끼리 관계가 발생
  • 1개의 Entity내의 인스턴스끼리 계층 구조를 가지는 경우를 말함
  • 계층 구조를 갖는 인스턴스끼리 연결하는 조인을 셀프조인 이라함 (같은 테이블을 여러번 조인)
    사원
    사원번호
    사원명
    담당업무
    담당관리자(FK)
    생년월일

    담당관리자는 각 사원의 사원번호를 의미함
    특정 사원의 담당관리자를 찾아가는 과정에서 사원 테이블을 조인하는것을 셀프조인 !
    관계를 맺으면 식별자를 상속함,
    상속된 식별자 : 담당관리자
    담당관리자 속성에는 사원번호가 들어가는데 이를 매핑키로 활용하여 조인
    이처럼 데이터간의 계층이 존재할때 발생하는 모델이 계층형 데이터 모델

상호배타적 관계 (Exclusive-OR)

  • 두 테이블 중 하나만 가능한 관계
    개인고객
    고객번호
    개인고객명

    법인고객
    법인번호
    법인명

    주문
    주문번호
    고객구분코드
    개인/법인번호(FK)

    주문 Entity에는 개인 or 법인번호 둘 중 하나만 상속 가능 -> 상호배타적 관계

홍쌤의 데이터랩
SQLD 1과목 완벽 정리 (2024년 신유형 반영) 강의에 대해
공부 및 개인적으로 정리한 글 입니다.

0개의 댓글