반응형
뷰(View)란 무엇인가?
- 뷰는 하나 이상의 테이블이나 다른 뷰의 데이터를 볼 수 있게 하는 데이터베이스 객체이며,
사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블이다. - 뷰는 저장장치 내에 물리적으로 존재하지 않지만 사용자에게 있는 것처럼 간주된다.
- 뷰는 데이터 보정작업, 처리과정 시험 등 임시적인 작업을 위한 용도로 활용된다.
- 뷰는 조인문의 사용 최소화로 사용상의 편의성을 최대화 한다.
뷰(View) 사용목적
- 여러 테이블의 조인과 그룹핑과 같은 복잡한 쿼리를 뷰에 저장시켜놓고, 저장한 뷰의 정보만 가져와 더 쉽고 편리하게 사용할 수 있다. (일종의 함수 형태)
- 데이터 보안에서도 유리한데, 뷰를 보면 컬럼과 데이터만 공개되므로 원천 테이블 정보를 알 수 없다.
뷰(View)의 특징
- 뷰는 기본테이블로부터 유도된 테이블이기 때문에 기본 테이블과 같은 형태의 구조를 사용하며, 조작도 기본 테이블과 거의 같다.
- 뷰는 가상 테이블이기 때문에 물리적으로 구현되어 있지 않다.
- 데이터의 논리적 독립성을 제공할 수 있다.
- 필요한 데이터만 뷰로 정의해서 처리할 수 있기 때문에 관리가 용이하고 명령문이 간단해진다.
- 뷰를 통해서만 데이터에 접근하게 하면 뷰에 나타나지 않는 데이터를 안전하게 보호하는 효율적인 기법으로 사용할 수 있다.
- 기본 테이블의 기본키를 포함한 속성(열) 집합으로 뷰를 구성해야지만 삽입, 삭제, 갱신, 연산이 가능하다.
- 일단 정의된 뷰는 다른 뷰의 정의에 기초가 될 수 있다.
- 뷰가 정의된 기본 테이블이나 뷰를 삭제하면 그 테이블이나 뷰를 기초로 정의된 다른 뷰도 자동으로 삭제된다.
뷰(View) 사용시 장/단점
장점
- 논리적 데이터 독립성을 제공한다.
- 동일 데이터에 대해 동시에 여러사용자의 상이한 응용이나 요구를 지원해 준다.
- 사용자의 데이터관리를 간단하게 해준다.
- 접근 제어를 통한 자동 보안이 제공된다.
단점
- 독립적인 인덱스를 가질 수 없다.
- ALTER VIEW문을 사용할 수 없다. 즉 뷰의 정의를 변경할 수 없다.
- 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신, 연산에 제약이 따른다.
추가 내용 정리
- 일반적으로 말하는 뷰(View)를 저장된 뷰(Stored View) 라고 한다. (View)
- 여기서 말하는 저장은 데이터 저장이 아닌, 쿼리 저장을 의미한다.
- 쿼리 안에 서브쿼리 개념으로 포함된 뷰를 inline view 라고 한다. (Inline View)
- FROM 절의 서브쿼리
- 1번의 뷰를 쿼리에서 사용하면 실제로는 2번처럼 동작한다.
- 뷰의 결과 데이터를 저장하는 뷰는 Materialized View 라고 한다. (Materialized View)
참고 : https://coding-factory.tistory.com/224
728x90
반응형
댓글