본문 바로가기

정보처리산업기사 필기 공부/SQL_활용

뷰 활용(SQL_활용)

 

뷰 개요

 

뷰는 논리 테이블로서 사용자에게(생성 관점이 아닌 사용 관점에서) 테이블과 동일하다. 아래 그림에서 '테이블A'와 '테이블B'는 물리 테이블을 의미하고, '뷰C'는 두개의 테이블을 이용하여 생성한 뷰를 의미한다.

 

 

출처:NCS SQL_활용

뷰는 '테이블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