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