본문 바로가기

IT

VIEW 테이블(가상 테이블) (뷰)

VIEW 테이블

뷰란 하나의 가상테이블이라고 생각하면 된다
뷰는 실제 데이터가 하드웨어에 저장되는 것은 아니지만 뷰를 통해 데이터를 관리할 수 있다.
뷰는 복잡한 Query를 얻을 수 있는 결과를 간단한 Query로 얻을 수 있게 한다.
한개의 뷰로 여러 테이블에 대한 데이터를 검색할 수 있다.
특정 평가 기준에 따른 사용자 별로 다른 데이터를 액세스 할 수 있도록 한다.


VIEW의 사용 목적

보안관리를 목적으로 활용한다. (보안성)
뷰(View)를 통해 데이터의 접근을 제어
사용상의 편의를 목적으로 활용한다. (편의성)
수행속도의 향상을 목적으로 활용한다. (속도 향상)
SQL의 성능을 향상시킬 목적으로 활용한다. (활용성)
임시적인 작업을 위해 활용한다.


VIEW의 특징

뷰(View)를 제거하고자 할때는 DROP문을 이용한다.
뷰(View)의 정의를 변경하고자 할때는 DROP -> CRAETE로 다시 재 생성 해야한다.
ALTER문을 사용할 수 없다.
뷰(View)를 생성하고자 할 때는 CREATE문을 이용한다.
뷰(View)의 내용을 검색하고자 할때는 SELECT문을 이용한다.
뷰(View)의 정의는 변경할 수 없다.
뷰(View)는 삽입, 갱신, 삭제 연산에 제약이 있다.
뷰(View)위에 다른 뷰를 정의할 수 있다.
뷰(View)가 정의된 테이블이 삭제되면 뷰도 함께 삭제된다.
뷰(View)생성에 사용된 테이블의 기본키를 구성하는 속성이 포함되어 있지 않은 뷰는 데이터의 변경이 불가능하다.
뷰(View)는 독자적인 인덱스를 가질 수 없다.
뷰(View)의 정의만 시스템 카탈로그에 저장하였다가 필요시 실행시간에 테이블을 구축한다.
뷰(View) 생성에 사용된 테이블의 기본키를 구성하는 속성이 포함되어 있지 않은 뷰는 데이터의 변경이 불가능하다.
뷰(View) 생성 시 사용되는 SELECT문에서 GROUP BY 구문은 사용 가능하지만, ORDER BY 구문은 사용할 수 없다.


VIEW의 장단점

장점

논리적 독립성을 제공합니다.
데이터 접근 제어로 보안이 가능합니다.
사용자의 데이터 관리를 간단하게 합니다.
하나의 테이블로 여러개의 상이한 뷰를 정의할 수 있습니다.


단점

독자적인 인덱스를 가질 수 없습니다.
정의를 변경할 수 없습니다.
삽입, 삭제, 갱신 연산에 많은 제약이 따릅니다.


VIEW테이블 생성 예제

위의 쿼리는 WORKS_ON1, DEPT_INFO 라는 뷰 테이블을 생선한 쿼리이다.

이렇게 뷰 테이블을 생성하면 장점은 매번 복잡한 쿼리문이 돌지 않고 이미 만들어진 뷰테이블에서 가져오기 때문에 속도가 빨라진다는 장점이 있다.

'IT' 카테고리의 다른 글

SQL(Structured Query Language)이란?  (0) 2022.06.28
32bit와 64bit의 차이?  (0) 2020.06.16
[용어 정리] SOLID란?  (0) 2020.05.24
제로데이 공격(Zero Day Attack)이란?  (0) 2020.05.23
API & SDK 란?  (0) 2020.05.18