목차


1. View란?

2. View의 사용방법

  2-1. 단일 테이블을 이용한 단순 View

  2-2. 복합 테입블을 이용한 복합 View

  2-3. WITH CHECK OPTION / WITH READ ONLY 옵션 알아보기

3. View의 장점 및 단점

4. View를 사용하는 이유

5. View에 관한 다른 정보







1. View란?


   뷰의 의미는 하나의 select문과 같다고 생각하면 된다.

   물론 뷰를 통해 insert, update, delete가 가능하지만 대개의 경우는 select를 위해 사용한다. 뷰란 한개 이상의 기본 테이블이나 다른 뷰를 이용하여 생성

   되는 가상 테이블(virtual table)이다.

   뷰는 기존에 생성된 테이블 또는 다른 뷰에서 접근할 수 있는 전체 데이터 중에서 일부만 접근할 수 있도록 제한하기 위한 기법이다.

   뷰를 가상 테이블이라하는 이유는 테이블은 디스크 공간이 할당되어 데이터를 저장할 수 있지만, 뷰는 데이터 딕셔너리 테이블에 뷰에 대한 정의만 저장

   저장하고 디스크에 저장 공간이 할당되지 않는다. 하지만 일반 사용자들은 SQL문을 사용하여 테이블에 저장된 데이터를 검색하고 조작하는 것과 유사하게 뷰를 이용할 수 있다.



- 뷰 자체는 데이터를 갖지 않지만, 기초 테이블의 데이터를 조회하고 수정할 수 있는 창과 같다.

- 뷰는 데이터 값이 아니라 실제적으로는 질의 문장만을 가진다.

- 물리적인 테이블을 근거한 논리적인 테이블

- 뷰는 기본 테이블에서 파생된 객체로서 기본 테이블에 대한 하나의 쿼리문(뷰테이블 X, 뷰쿼리 O)

- 사용자에게 주어진 뷰를 통해서 기본 테이블을 제한적으로 사용하게 된다.



2. View의 사용방법 


   2-1. 단일 테이블을 이용한 단순 View

    

- 하나의 테이블에서 특정한 조건에 맞는 레코드 들만 질의(QUERY)가능





- 하나의 테이블에서 특정한 컬럼들만 질의(QUERY)가능





    2-2. 복합 테입블을 이용한 복합 View


       - 여러 테이블의 칼럼을 모아서(JOIN) 하나의 테이블처럼 질의(QUERY)할 수 있도록 한 데이터베이스 오브젝트      



2-3. WITH CHECK OPTION / WITH READ ONLY 옵션 알아보기


  WITH CHECK OPTION

  • 조건 컬럼값을 변경하지 못하게 하는 옵션이다.

          1. 뷰를 정의하는 서브 쿼리문에 WHERE절을 추가하여 기본 테이블 중 특정 조건에 만족하는 로우(행)만으로 구성된 뷰를 생성할 수 있다.

          2. 이때 WHERE절에 WITH CHECK OPTION을 기술하면 그 조건에 의해 기본 테이블에서 정보가 추출하는 것이므로 조건에 사용 되어진 컬럼 값은

             뷰를 통해서는 변경이 불가능하다.

       

  • 예 1) 뷰를 생성한다.

    SQL> CREATE OR REPLACE VIEW VIEW_CHK30 AS SELECT EMPNO, ENAME, SAL, COMM, DEPTNO FROM EMP_COPY WHERE DEPTNO=30 WITH CHECK OPTION; > SELECT * FROM VIEW_CHK30; 

  • 예 2) 급여가 1200이상인 사원은 20번 부서로 변경한다.

    SQL> UPDATE VIEW_CHK30 SET DEPTNO=20 WHERE SAL>=1200;  뷰를 통해서 일관된 정보를 볼 수 있게 된다.

   



WITH READ ONLY

  • 기본 테이블의 어떤 컬럼에 대해서도 뷰를 통한 내용 수정을 불가능하게 만드는 옵션이다.
  • 예 1) WITH READ ONLY 옵션을 사용한 뷰를 생성한다.

    SQL> CREATE OR REPLACE VIEW VIEW_READ30 AS SELECT EMPNO, ENAME, SAL, COMM, DEPTNO FROM EMP_COPY WHERE DEPTNO=30 WITH READ ONLY;

    SQL> SELECT * FROM VIEW_READ30;  

  • 예 2) WITH READ ONLY 옵션을 기술한 VIEW_READ30뷰의 커미션을 모두 2000으로 변경한다.

    SQL> UPDATE VIEW_READ30 SET COMM=2000; 



3. View의 장점 및 단점


  <장점>

     - DB의 선택적인 부분만 보여주므로 접근을 제한

     - 다양한 접근 경로 설정

     - 복잡한 질의를 단순화

     - 데이터의 독립성 제공

     - 동일한 데이터를 또 다른 뷰로 표현

     - 한 개의 뷰에 여러 테이블의 데이터를 검색 가능

     - 한 개의 테이블로부터 여러 뷰를 생성 가능

  

 <단점>

     - 뷰의 정의를 변경할 수 없고 insert, delete, update에 많은 제한이 있음





4. View를 사용하는 이유


  - 자주 쓰는 쿼리문을 안쓰고 테이블만 조회하면 된다.

  - 보안에 유리하다.

  - 뷰 테이블에 자료가 추가되는 것은 실체 테이블에 반영되지 않기 때문에 주의를 요한다.




5. View에 관한 다른 정보


복합 뷰(Nested View)를 최소화하라
뷰는 엄청난 쿼리를 사용자들로부터 가리는데 훌륭하지만, 하나의 뷰 안에 또 다른 뷰와 내부에 있는 다른 뷰를 (계속해서) 중첩시키다 보면 심각한 성능 저하를 유발할 수 있다. 너무 많은 수의 복합 뷰는 모든 쿼리에 대해 엄청난 양의 데이터가 반환(Return) 되는 결과를 초래해서, 데이터베이스 성능을 말 그대로 기어 다니게 만들 수 있다. 혹은, 더 나가서, 쿼리 최적화기(Optimizer)가 포기해서 아무것도 반환되지 않을 수도 있다.

복합 뷰를 풀어내는 것으로 쿼리 응답 시간을 몇 분에서 몇 초로 줄일 수 있다.





출처 : https://wikidocs.net/4178

        

        http://sjs0270.tistory.com/54


        http://www.itworld.co.kr/tags/2665/SQL/105792


'STUDY > DB' 카테고리의 다른 글

[DB] Oracle SQL 튜닝 및 응용 - 2  (0) 2019.10.29
[DB] Oracle SQL 튜닝 및 응용 - 1  (0) 2019.10.28
[DB] SQL학습 사이트  (0) 2019.01.02
[DB]SQL 공부하기 좋은 사이트  (0) 2018.10.10
[DB]트랜잭션 이란 ??  (0) 2018.09.13

+ Recent posts