뷰(VIEW)란?
- 하나 이상의 기본 테이블을 이용하여 생성되는 가상 테이블
- 다른 뷰를 이용하여 생성할 수도 있다.
뷰의 특징
- 디스크 저장 공간이 할당되지 않는다.
- 기본 테이블
- 디스크에 공간이 할당되어 데이터를 저장한다.
- 뷰
- 데이터 딕셔너리 테이블에 뷰에 대한 정의(SQL문)만 저장된다. - 전체 데이터 중에서 일부만 접근할 수 있다. - 뷰에 대한 수정 결과는 뷰를 정의한 기본 테이블에 적용된다.
- 대신 제한적인 조건이 붙는다. - 뷰를 정의한 기본 테이블에서 정의된 무결성 제약조건은 그대로 유지된다.
- 기본 테이블
뷰가 필요한 이유
- 접근 단순화
- 만약 특정한 대분류의 업무를 맡게 됬을 때 그 내부의 중분류, 소분류 업무는 비슷한 계열의 업무일 것이다.
- 특히, SELECT문의 경우 몇몇 테이블들이 공통적으로 많이 사용될 것이다.
- 공통되거나 자주 사용되는 테이블의 경우 미리 뷰로 정의하여 하나의 테이블처럼 편리하게 사용할 수 있다.
- 높은 보안
- 동일한 테이블에 접근하는 여러 다른 사용자들이 있다면
사용자들마다 서로 다른 뷰에 접근하도록 여러 뷰를 정의할 수 있다. - 이를 통해 특정 사용자만 특정 뷰에 접근할 수 있도록 접근을 제한함으로써 보안을 높이는 것이 가능하다.
- 동일한 테이블에 접근하는 여러 다른 사용자들이 있다면
뷰의 종류
- 단순뷰
- 하나의 기본 테이블 위에 정의된 뷰
- INSERT, UPDATE, DELETE를 자유롭게 사용할 수 있다.
- 복합 뷰
- 두 개 이상의 기본 테이블로부터 파생된 뷰
- INSERT, UPDATE, DELETE를 사용할 수 없다.
뷰의 특징
- 사용자 마다 특정 객체만 조회할 수 있게 해야 한다. - 보안성 문제 - 복잡한 질의문을 단순화 할 수 있다. - 데이터의 중복성을 최소화할 수 있다.
- 생성된 뷰는 또 다른 뷰를 생성하는데 사용될 수 있다.
- 원본이 되는 테이블이나 뷰가 삭제되면 이를 기반으로 하는 뷰도 함께 삭제된다.
- 테이블 구조가 변경되어도 뷰에서 조회하는 컬럼이나 컬럼명, 테이블명 등이 동일하다면, 뷰를 사용하고 있는 응용 프로그램은 변경하지 않아도 된다.
뷰의 장점
- 논리적 독립성 제공 - 데이터의 접근 제어 - 접근 제어를 통한 높은 보안 제공 - 데이터 관리 단순화 - 여러 사용자의 다양한 데이터 요구 지원
뷰의 단점
- 뷰의 정의를 변경할 수는 있으나 고려해야할 사항이 많다. - 경우에 따라서는 삭제하고 리팩토링해서 새로 만드는 게 나을 때도 있다. - INSERT, UPDATE, DELETE 연산에 제한이 있다.