View
는 사용자에게 접근이 허용되는 데이터만을 제한적으로 보여주기 위해, 하나 이상의 기본 테이블로부터 유도된 이름을 가지는 가상 테이블이다.
View
는 저장장치 내에 물리적으로 존재하지 않지만, 사용자에게 있는 것 처럼 사용된다.
View
는 데이터 보정 작업, 처리 과정, 시험 등 임시적인 작업을 위한 용도로 활용된다.
뷰는 기본테이블로부터 유도된 테이블이기 때문에 기본 테이블과 같은 형태의 구조를 사용하며, 조작도 기본 테이블과 거의 같다. 하지만 물리적으로 구현되어 있지는 않다.
데이터의 논리적 독립성을 제공할 수 있으며, 뷰를 통해서 데이터에 접근하게 하면 뷰에 나타나지 않는 데이터를 안전하게 보호하는 효율적인 보안 기법으로 사용할 수 있다.
뷰는 CREATE문에 의해 정의 되며 SYSVIEW에 저장된다. 한번 정의된 뷰는 ALTER 문을 이용하여 변경할 수 없고, DROP 문을 사용해 삭제 한 후 다시 생성해야 한다.
일단 정의된 뷰는 다른 뷰의 정의에 기초가 될 수 있다.
뷰가 정의된 기본테이블이 변경 되면, 뷰도 자동 변경 되며, 삭제하면 그 테이블이나 뷰를 기초로 정의된 다른 뷰도 자동으로 삭제된다.
즉 정의된 테이블에 종속적이다.
뷰에 대한 검색은 기본 테이블과 거의 동일하지만 기본 테이블의 기본키를 포함한 속성(열) 집합으로 뷰를 구성해야지만 삽입, 삭제, 갱신 연산이 가능하다.
필요한 데이터만 뷰로 정의해서 처리할 수 있기 때문에 관리가 용이하고 명령문이 간단해진다.
논리적 데이터 독립성을 제공한다.
뷰를 통해 접근하기 때문에 뷰에 나타나지 않는 데이터를 보호 할 수 있다.
동일 데이터에 대해 동시에 여러사용자의 상이한 응용이나 요구를 지원해 준다.
조인문의 사용 최소화로 사용상의 편의성을 최대화 한다.
사용자의 데이터 관리를 간단하게 한다.
하나의 테이블로 여러개의 상이한 뷰를 정의할수 있다.
독자적인 인덱스를 가질 수 없다.
ALTER VIEW문을 사용할 수 없다. 즉 뷰의 정의를 변경할수 없다.
뷰로 구성된 내용에 대한 삽입, 삭제, 갱신 연산에 많은 제약이 따른다.
--문법--
CREATE VIEW 뷰이름[(속성이름[,속성이름])]AS SELECT문;
--고객 테이블에서 주소가 서울시인 고객들의 성명과 전화번호를 서울고객이라는 뷰로 만들어라--
CREATE VIEW 서울고객(성명, 전화번호)
AS SELECT 성명 전화번호
FROM 고객
WHERE 주소 = '서울시';
--문법--
DROP VIEW 뷰이름 RESTRICT or CASCADE
--서울고객이라는 뷰를 삭제해라--
DROP VIEW 서울고객 RESTRICT;
RESTRICT : 뷰를 다른곳에서 참조하고 있으면 삭제가 취소된다.
CASCADE : 뷰를 참조하는 다른 뷰나 제약 조건까지 모두 삭제된다.
[DB기초] 뷰(View)란 무엇인가? + 간단한 예제[코딩팩토리]