뷰 개요
뷰는 논리 테이블로서 사용자에게(생성 관점이 아닌 사용 관점에서) 테이블과 동일하다. 아래 그림에서 '테이블A'와 '테이블B'는 물리 테이블을 의미하고, '뷰C'는 두개의 테이블을 이용하여 생성한 뷰를 의미한다.
뷰는 '테이블A'와 같은 하나의 물리 테이블로부터 생성 가능하며, 다수의 테이블 또는 다른 뷰를 이용해 만들 수 있다. 위 그림의 뷰와 같은 결과를 만들기 위해 다음 장에서 배울 조인 기능을 활용할 수 있으나, 뷰가 만들어져 있다면 사용자는 조인 없이 하나의 테이블을 대상으로 하는 단순한 질의어를 사용할 수 있다.
뷰 활용 상세
1. 뷰 사용
뷰를 사용하는 주된 이유는 다음과 같은 단순한 질의어를 사용할 수 있기 때문이다.
SELECT * FROM <View Name>; |
뷰의 장점
논리적 독립성 제공 - 뷰는 논리 테이블임(테이블의 구조가 변경되어도 뷰를 사용하는 응용 프로그램은 변경하지 않아도 됨)
사용자 데이터 관리 용이 - 복수 테이블에 존재하는 여러 종류의 데이터에 대해 단순한 질의어 사용이 가능함
데이터 보안 용이 - 중요 보안 데이터를 저장 중인 테이블에는 접근 불허하고, 해당 테이블의 일부 정보만을 볼 수 있는 뷰에는 접근을 허용하는 방식으로 보안 데이터에 대한 접근 제어 가능
뷰의 단점
뷰 자체 인덱스 불가 - 인덱스는 물리적으로 저장된 데이터를 대상으로 하기에 논리적 구성인 뷰 자체는 인덱스를 가지지 못함
뷰 정의 변경 불가 - 뷰의 정의를 변경하려면 뷰를 삭제하고 재생성하여야 함
데이터 변경 제약 존재 - 뷰의 내용에 대한 삽입, 삭제 변경 제약이 있음
2. 뷰 생성
뷰를 사용하기 위해서는 우선 뷰를 만들어야 한다. 뷰의 단순한 사용은 생성 과정에 의존적이다. 즉, 뷰를 어떻게 생성하였느냐에 따라 사용 방법이 달라진다.
CREATE VIEW <뷰이름>(컬럼목록) AS <뷰를 통해 보여줄 데이터 조회용 쿼리문> |
3. 뷰 삭제 및 변경
뷰 정의 자체를 변경하는 것은 불가능하다. 일단 뷰를 정의하면, 뷰의 물리적 내용은 뷰의 이름과 데이터를 조회하기 위한 쿼리문뿐이다. 이때 뷰의 이름이나 쿼리문을 변경하는 수단은 제공되지 않는다.
DROP VIEW <View Name>; |
4. 뷰 내용 변경
뷰를 통해 접근 가능한 데이터에 대한 변경이 가능하다. 하지만 모든 경우에 데이터의 변경이 가능한 것이 아니라 일부 제약이 존재한다. 이러한 제약은 뷰 자체가 논리적 개념이기에 물리적 상황에 의존적임을 의미한다.
'정보처리산업기사 필기 공부 > SQL_활용' 카테고리의 다른 글
다중 테이블 검색(SQL_활용) (0) | 2020.04.19 |
---|---|
인덱스 활용(SQL_활용) (0) | 2020.04.19 |
데이터 사전 검색(SQL_활용) (0) | 2020.04.19 |
DCL(SQL_활용) (0) | 2020.04.19 |
DML (SQL_활용) (0) | 2020.04.19 |