View

Oracle/OracleDB_SQL 2016. 5. 30. 01:13

View (뷰)


View를 이용해서 데이터를 조회할 수도 DML도 수행할 수 있다.

일반적으로는 조회를 사용하기 위해서 많이 사용한다.

View는 데이터 딕셔너리에 SELECT문으로 저장된다.


- 가상의 테이블을 말한다.

- 원래의 Table에는 데이터가 들어있지만 View에는 데이터는 없고 SQL만 저장되어 있다.



View를 사용하는 이유와 장점


1. 보안

2. 사용자의 편의성


장점

- 데이터 액세스 제한 ( 특정 기준에 따라서 유저 그룹에게 데이터 액세스 권한을 부여한다.)

- 복합 query를 단순화

- 동일한 데이터의 다른 View 제공

- 데이터 독립성 제공


문법

CREATE [OR REPLACE] [ FORCE | NOFORCE ] VIEW view [ (alias, alias,........) ]

AS sub-query

[ WITH CHECK OPTION [ CONSTRAINT constraint] ]

[ WITH READ ONLY ]




- OR REPLACE : 같은 이름의 View가 있을 경우에 삭제 후에 다시 생성한다.

- FORCE : 기본 테이블의 존재 여부에 상관없이 View를 생성한다.

- NOFORCE : 기본 테이블이 존재할 경우 View를 생성. default값이다.

- ALIAS : 기본 테이블의 칼럼 이름과 다르게 지정

- WITH CHECK OPTION : 주어진 제약조건에 맞는 데이터만 입력 및 수정을 허용한다.

- WITH READ ONLY : SELECT만 가능한 읽기 전용 뷰를 생성



1) Simple View


View를 생성할 서브쿼리에 조인 조건이 안들어간 1개의 테이블로 만들어지는 간단한 View의미

함수 포함 x, 데이터 그룹 포함 x, 뷰를 통한 DML 작업 O






2) Complex View


Sub Query 부분에 여러 개의 테이블이 Join되어서 생성되는 것.

함수 포함 O, 데이터 그룹 포함 O, 뷰를 통한 DML 작업은 항상 되는것은 아님




3) Inline View


여러번 사용하지 않고 1회용으로만 사용할 떄

FROM절 안에 있는 query를 Inline View라고 한다.



View에 대한 DML 작업 수행 규칙


다음과 같은 항목들이 있으면 뷰를 수정할 수 없다.


- 그룹 함수

- GROUP BY 절

- DISTINCT 키워드

- Pseudocolumn ROWNUM 키워드

- 표현식으로 정의되는 열

- 뷰에서 선택되지 않은 기본 테이블의 NOT NULL 열


** WITH CHECK OPTION 을 사용하여 뷰에 수행된  DML 작업이 뷰 영역에만 적용되도록

   할 수 있다.

** 뷰를 통하여 참조 무결성 검사를 수행할 수도 있다. 

   또한 데이터베이스 레벨에서 제약 조건을 적용할 수도 있다.

   제한적이지만 데이터 무결성을 보호할 수 있다.


View 제거


- View는 데이터베이스의 기본 테이블을 기반으로 하기 떄문에 뷰를 제거해도 데이터는 

  손실되지 않는다.


DROP VIEW view;



'Oracle > OracleDB_SQL' 카테고리의 다른 글

PL/SQL 소개  (0) 2016.06.02
오라클 구조 파일보기  (0) 2016.05.31
유저 액세스 제한  (0) 2016.05.27
role 비활성화  (0) 2016.05.26
테이블 생성, 관리 (DDL 문 이용)  (0) 2016.05.25
admin