View란?

  • View는 하나 이상의 테이블 또는 다른 View를 기반으로 만들어진 가상의 창(Window) 같은 것으로 뷰를 만드는 SQL문장만 Oracle 딕셔너리에 저장되고 SQL문에서 테이블처럼 사용가능한 가상 테이블이다.


View 종류

  • 하나의 Base Table을 기준으로 단순히 컬럼만 갖고 와서 사용하는 단순 뷰 (simple view)
  • 두개 이상의 Base Table로 구성되고 Join, GROUP BY, 컬럼 표현식등을 사용할 수 있는 복합뷰 (Complex View)
  • FROM절 아래 서브 쿼리 형태로 SQL문 안에서 사용되는 인라인뷰 (Inline View)
  • 뷰 자체가 실제 데이터도 가지고 있으면서 그룹함수(MIN, MAX SUM, AVG, COUNT)튜닝을 위해 사용되는 구체화 뷰(Materialized View)등이 있다.


View의 장점

  • 뷰의 주요 목적은 데이터를 저장하기 위해 테이블을 만들지 않고도 다른 테이블 및 뷰를 결합하여 새로운 데이터 형식을 만들 수 있다.
  • 뷰는 복잡성을 숨길 수 있는데 여러 테이블을 조인해야 하거나 복잡한 논리 또는 계산이 필요한 쿼리가 있는 경우 복잡한 부분을 뷰 안으로 숨기고 사용자에게는 뷰만 보여준다.
  • 뷰는 보안 메커니즘으로 사용될 수 있는데 사용자에게 필요한 데이터만 보여주고 나머지는 숨길 수 있다.
  • 뷰는 테이블에서 특정 컬럼 및 행을 선택하여 보여줄 수 있다. 이를 통해 사용자가 봐야하는 데이터만 표시 할 수 있다.
  • 잘못 설계된 테이블을 리팩터링 해야하는 경우 테이블을 동일한 이름의 뷰로 바꿀 수 있다. 뷰는 원래 테이블과 똑같은 스키마를 제공하지만 실제 테이블은 아니다. 하지만 테이블을 참조하는 기존 SQL코드가 오류가 발생하지 않으므로 시간을 두고 기존 SQL을 변경할 수 있다.


View의 단점

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

Tags:

Categories:

Updated:

Leave a comment