JPA 연관관계 매핑 - 상속관계 매핑

Growing_HJ·2024년 7월 30일

JPA

목록 보기
9/15

상속관계 매핑 - 조인 전략

관계형 데이터베이스 에서의 상속은 슈퍼 - 서브 타입 관계 라는 모델링 기법을 사용한다.

📍 1. 조인 전략 📍

  • 엔티티 각각을 모두 테이블로 만들고 자식 테이블이 부모 테이블의 기본 키를 받아서
    기본키 + 외래 키 로 사용하는 전략

조인 전략 사용시 주의할
- 객체는 타입으로 구분이 가능하지만, 테이블은 타입의 개념이 없다. 따라서 타입을 구분하는 컬럼을 추가해야 한다.

--------------------------------------------------------------------------

조인 전략의 장점
1. 테이블이 정규화가 된다
2. 외래 키 참조 무결성 제약 조건을 활용할 수 있다.
3. 저장공간을 효율적으로 사용한다

--------------------------------------------------------------------------

조인 전략의 단점
1. 조회할 때 조인이 많이 사용되므로 성능이 저하될 수도 있다.
2. 조회 쿼리가 복잡하다
3. 데이터를 등록할 INSERT SQL 을 두번 실행한다.


📍 2. 단일 테이블 전략 📍

  • 테이블을 하나만 사용하고, 구분 컬럼으로 어떤 자식 데이터가 저장되었는지 구분하는 전략.
    조회할때 조인을 사용하지 않는다 는 것이 특징.

    단일 테이블 전략 장점
    1. 조인이 필요 없으므로 일반적으로 조회 성능이 빠르다
    2. 조회 쿼리가 단순하다

        --------------------------------------------------------------------------

    단일 테이블 전략 단점
    1. 자식 엔티티가 매핑한 컬럼은 모두 null 을 허용해야 한다.
    2. 단일 테이블에 모든 것을 저장하므로 테이블이 커질 수 있다.
    -> 상황에 따라서는 성능이 저하될 수 있음.

        --------------------------------------------------------------------------

    단일 테이블 전략 특징
    1. 구분 컬럼을 꼭 사용해야 한다
    -> @DiscriminatorColumn 을 꼭 설정해야 한다.
    2. @DiscriminatorValue 를 지정하지 않으면 기본적으로 엔터티 이름을 사용한다.

그냥 그렇다고 이거 배웠나 기억이 안나네.. ㅋㅋ

0개의 댓글