Database

[Oracle] 오라클 뷰(View) 특징 총정리

천방지축 개발노트 2020. 9. 21. 19:09

뷰(View)의 중요 포인트 10가지

사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블(Virtual Table)이다. 뷰는 저장장치 내에 물리적으로 존재하지 않지만 사용자에게 있는 것처럼 간주된다.

 

1) Table은 실제 데이터를 가지고 있지만, View는 단지 ‘뷰 정의’만을 가지고 있다.

2) 질의문에서 뷰를 사용하면 이 ‘뷰 정의’를 참조해서 DBMS내부적으로 질의를 재구성하여 질의를 수행한다. 따라서, View는 실제 데이터를 가지고 있지는 않지만 테이블이 수행하는 역할을 하기 때문에, 가상 테이블(Virtual Table) 이라고도 불리는 것.

3) 뷰의 정의는 변경할 수 없다. (ALTER VIEW문을 사용할 수 없음, 필요하다면 삭제 후 재생성해야만 한다)

4) 이미 생성된 뷰를 기반으로 또 다른 뷰를 CREATE 할 수 있다.

5) 뷰를 통해 정의된 기본 테이블이나 뷰를 삭제하면 그 테이블이나 뷰를 기초로 정의된 다른 뷰도 자동으로 삭제된다.

6) 데이터의 논리적 독립성을 제공할 수 있음.

7) 뷰를 사용하는 것은 그냥 일반 테이블을 사용하는 것처럼 사용하면 됨.

8) 뷰를 통해서만 데이터에 접근하게 하면 뷰에 나타나지 않는 데이터를 안전하게 보호하는 효율적인 기법(보안성)

9) 보통 임시적인 작업(데이터 보정, 처리과저 시험 등)을 위한 용도로 활용됨.

10) 뷰를 사용하면서 얻을 수 있는 장점은 아래 표와 같다. → 독립성, 편리성, 보안성

뷰의 장점 설명 
독립성 테이블 구조가 변경되어도 뷰를 사용하는 응용 프로그램은 변경하지 않아도 된다. 
편리성 복잡한 질의를 뷰로 생성함으로써 관련 질의를 단순하게 작설할 수 있다. 또한 해당 형태의 SQL문을 자주 사용할 때 뷰를 이용하면 편리하게 사용할 수 있다. 
보안성 직원의 급여정보와 같이 숨기고 싶은 정보가 존재한다면, 뷰를 생성할 때 해당 칼럼을 빼고 생성함으로써 사용자에게 정보를 감출 수 있다.

 

 

View 생성 및 제거 Query문

1) View 생성문: CREATE VIEW 뷰이름 AS 뷰로 만들 SELECT문;

2) View 제거문: DROP VIEW 뷰이름 (RESTRICT or CASCADE);

※RESTRICT : 뷰를 다른 곳에서 참조하고 있다면 삭제가 취소된다.

※CASCADE : 뷰를 참조하는 다른 뷰나 제약 조건까지 모두 삭제된다.