뷰(VIEW)란?

  • 뷰는 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블이다.
  • 뷰는 복잡한 쿼리를 단순화 시킬 수 있다.
  • 뷰는 사용자에게 필요한 정보만 접근하도록 접근을 제한할 수 있다.

뷰(VIEW) 생성

1
2
3
4
5
6
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW 뷰이름(사용자정의) 
   [(column_aliases)]
AS 
    SELECT 문 
    [WITH READ ONLY]
    [WITH CHECK OPTION [CONSTRAINT 제약조건명]]
cs
 

OR REPLACE : 해당 구문을 사용하면 뷰를 수정할 때 DROP 없이 수정이 가능하다.

FORCE : 뷰를 생성할 때 쿼리문의 테이블, 컬럼, 함수 등이 존재하지 않아도 생성이 가능하다.

NORORCE : 뷰를 생성할 때 쿼리문의 테이블, 컬럼 함수 등이 존재하지 않으면 생성되지 않는다.

column_aliases : SELECT 컬럼의 별칭을 미리 정의할 수 있다.

WITH READ ONLY : SELECT 만 가능하다. (INSERT, UPDATE, DELETE 불가능)

WITH CHECK OPTION : WHERE 절의 조건에 해당하는 데이터만 저장, 변경이 가능하다.

 

뷰(VIEW) 삭제

1
DROP VIEW 뷰이름(사용자정의) 
cs

 


뷰(VIEW)의 특징

  1. 뷰는 데이터의 논리적 독립성을 제공할 수 있다.
  2. 뷰는 가상 테이블이기 때문에 물리적으로 구현되어 있지 않다.
  3. 필요한 데이터만 뷰로 정의해서 처리할 수 있기 때문에 관리가 용이하다.
  4. 뷰에 나타나지 않은 데이터를 안전하게 보호할 수 있다.
  5. 정의된 뷰는 다른 뷰의 정의에 기초가 될 수 있다.
  6. 뷰가 정의된 기본 테이블이나 뷰를 삭제하면 그 테이블이나 뷰를 기초로 정의된 다른 뷰도 자동으로 삭제된다.

 

뷰(VIEW)의 장점

  1. 논리적 데이터 독립성 제공
  2. 동일 데이터에 대해 동시에 여러 사용자의 상이한 응용이나 요구를 지원
  3. 사용자의 데이터 관리를 간단하게 해줌
  4. 접근 제어를 통한 자동 보안이 제공 

 

뷰(VIEW)의 단점

  1. 독립적 인덱스를 가질 수 없음
  2. ALTER VIEW문을 사용할 수 없음 (뷰의 정의를 변경할 수 없음)
  3. 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신, 연산에 제약이 따름

 

 

+ Recent posts