View

Laigasus

Infra|2024년 8월 27일|마지막 수정 시간: 2024년 9월 26일|
type
status
date
slug
summary
tags
category
icon
password

소개

정의

데이터베이스에서 뷰(View)는 가상 테이블입니다. 이는 하나 이상의 실제 테이블에서 데이터를 선택적으로 보여줍니다. 뷰는 데이터를 직접 저장하지 않고, 대신 기존 테이블의 데이터를 특정 방식으로 보여주는 저장된 질문(쿼리)입니다.

특징

보안성

데이터에 대한 접근을 제어할 수 있습니다.

데이터 추상화

데이터를 논리적으로 독립적으로 관리할 수 있게 해줍니다.
 

테이블과의 차이점

특성
테이블
저장 방식
실제 데이터 저장
가상 테이블, 쿼리 결과만 표시
데이터 수정 가능성
직접 수정 가능
일반적으로 읽기 전용 (특정 조건에서 수정 가능)
인덱스
가능
불가
💡
뷰는 오브젝트이나 실제 저장공간을 가지지 않기 때문에 세그먼트가 될 수는 없습니다.

관리

생성

뷰를 생성하는 기본적인 SQL 구문은 다음과 같습니다:
뷰 생성 시 주의할 점은 기본 테이블의 데이터 변경이 뷰에 즉시 반영된다는 것입니다.
 
옵션
내용
OR REPLACE
동일 이름의 뷰가 존재하여도 존재한다는 에러가 발생하지 않으며 해당 뷰를 제거한 후 새로 생성하는 옵션
NOFORCE
AS SELECT 구문에서 사용된 테이블의 존재 및 권한 등을 확인하여 생성
AS SELECT
뷰를 생성하는 SQL문을 작성하는 부분으로 조인 또는 WHERE 조건 등 일반적인 SQL 문이 모두 가능

조회

뷰에 정의된 모든 열과 조건에 맞는 데이터를 조회할 수 있습니다. 뷰를 통해 데이터를 조회할 때, 실제로는 뷰 정의에 포함된 원본 테이블에서 데이터를 가져오는 것입니다.

수정

변경

기존 뷰의 정의를 변경할 수 있습니다.
주의할 점은 뷰를 수정할 때 원본 테이블의 구조나 데이터에는 영향을 주지 않는다는 것입니다

재컴파일

뷰의 정의가 변경되었거나 기본 테이블의 구조가 변경된 경우, 뷰를 재컴파일해야 할 수 있습니다. Oracle에서는 다음과 같은 SQL 문을 사용하여 뷰를 재컴파일할 수 있습니다
💡
재컴파일은 뷰의 정의를 다시 확인하고 최적화하는 과정입니다.

삭제

더 이상 필요하지 않은 뷰를 데이터베이스에서 제거할 수 있습니다.
뷰를 삭제해도 원본 테이블의 데이터에는 영향을 주지 않습니다.
Loading...