[DB] 데이터베이스 뷰(View) 장단점

dyomi·2024년 10월 8일

뷰(View)란?

데이터베이스 뷰는 기본 테이블로부터 생성된 가상 테이블이다. 물리적으로 데이터를 저장하지는 않고, SQL 쿼리의 결과를 저장하는 객체이다.

장점

장점으로는 복잡성이 감소되고 재사용성이 증가된다. 그리고 필요 데이터만 노출시킬 수 있으므로 보안이 강화되고 여러 테이블의 데이터를 하나로 결합해야할 경우 뷰를 이용하면 데이터 관리가 쉬워진다. 그래서 보통 복잡한 쿼리를 자주 사용할 때나, 민감한 데이터에 접근을 제한하고자 할 때 유용하게 사용할 수 있다.

단점

단점으로는 기본 테이블의 데이터를 실시간으로 조회하기 때문에 복잡한 뷰나 대규모 데이터의 경우 성능 문제가 발생할 수 있다. 그리고 뷰를 통해 데이터를 직접 수정하는 것은 제약이 따르고, 기본테이블 구조가 변경되면 뷰도 수정이 필요할 수 있다.



🌟 추가 질문

📍 데이터베이스의 뷰도 엔티티로 만들어서 스프링 JPA에서 사용이 가능한가?

사용이 가능하다. 다만, 뷰는 읽기 전용이기 때문에 JPA에서 생성된 엔티티도 일반적으로 읽기 전용으로 처리된다.

JPA 엔티티 생성 예시

@Entity
@Immutable // Hibernate의 읽기 전용 엔티티임을 명시
@Table(name = "product_summary") // 뷰의 이름을 매핑
public class ProductSummary {
	
    @Id
    private Long id;
    
    private String name;
}

@Immutable 어노테이션을 사용하면 이 엔티티가 변경 불가능하다는 것을 명시할 수 있다. (Insert, Update, Delete 쿼리 실행 불가)

이후 다른 엔티티와 마찬가지로 JpaRepository를 생성해서 연결해주면 사용이 가능하다.



참고 자료
https://qtleap.tistory.com/18

profile
기록하는 습관

0개의 댓글