토픽 174 / 201·SQL 및 데이터베이스 객체
뷰 (View)
뷰 (View)
하나 이상의 기본 테이블로부터 유도되는 가상 테이블(Virtual Table)로, 실제 데이터를 저장하지 않고 질의 정의만 저장하여 접근 시 실시간으로 결과를 생성
목적: 데이터 보안(접근 제한), 복잡한 질의 단순화, 논리적 데이터 독립성, 사용자별 맞춤 데이터
특징: 논리적 테이블, 저장 공간 미사용, 실시간 생성, 기본 테이블 의존
생성: CREATE VIEW 뷰명 AS SELECT문
뷰 종류
- •단순 뷰(Simple View): 단일 테이블, 함수/GROUP BY 없음, DML 가능
- •복합 뷰(Complex View): 다중 테이블 조인, 함수/그룹 포함, DML 제한
- •인라인 뷰(Inline View): FROM절 서브쿼리, 임시 뷰
- •구체화 뷰(Materialized View): 실제 데이터 저장, 주기적 갱신, 성능 향상
뷰 갱신 가능 조건: 단일 테이블, 기본키 포함, 집계함수/GROUP BY/DISTINCT 미사용, 서브쿼리 미포함
구체화 뷰(Materialized View): 실제 데이터 물리적 저장, REFRESH(즉시/지연/온디맨드), 대시보드/리포트/OLAP에 적합, 저장 공간 필요
장점: 보안 강화(컬럼/행 수준 제한), 질의 단순화, 논리적 독립성, 데이터 추상화
단점: 성능 오버헤드(매 접근 시 질의), DML 제한, 기본 테이블 변경 시 영향, 인덱스 직접 생성 불가
비교: 뷰(가상/공간없음/실시간) vs 구체화뷰(실체/공간사용/갱신필요) vs 임시테이블(세션한정/데이터저장)
연관: SQL, 서브쿼리, 데이터 보안, 논리적 독립성, OLAP