View 란 ?
뷰는 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로 부터 유도된, 이름을 가지는 가상 테이블 이다. 뷰는 논리 테이블로서, 사용자의 관점에서는 일반 테이블과 동일하다고 볼 수 있다.
▶ 뷰의 장점
ㆍ테이블과 유사하다.
기본 테이블로부터 유도된 테이블이기에 테이블과 같은 형태의 구조이며 조작도 테이블과 거의 같다.
ㆍ논리적 독립성을 제공한다.
뷰는 가상 논리 테이블이기 때문에 테이블 구조가 변경되어도 뷰를 사용하는 응용 프로그램은 변경하지 않아도 된다.
ㆍ사용자 데이터 관리가 용이하다.
복수 테이블에 존재하는 여러 종류의 데이터에 대해 단순한 질의어도 사용이 가능하다.
ㆍ데이터 보안이 용이하다.
중요 보안 데이터를 저장 중인 테이블에는 접근 부러하고, 해당 테이블의 일부 정보만을 볼 수 있는 뷰에는 접근을 허용하는 방식으로 보안 데이터에 대한 접근 제어 가능하다.
▶ 뷰의 단점
ㆍ뷰 자체 인데그 불가
인덱스는 물리적으로 저장된 데이터를 대상으로 하기에는 논리적 구성인 뷰 자체는 인덱스를 가지지 못한다.
ㆍ뷰 정의 변경 불가
뷰의 정의를 변경하려면 뷰를 삭제하고 재생성 하여야 한다. (ALTER VIEW 문을 사용할 수 없다.)
ㆍ데이터 벼경 제약 존재
뷰로 구성된 내용에 대한 삽입, 삭제, 변경에 제약이 따른다.
☞ mySQL 뷰(VIEW)의 제약 사항.
뷰의 정의는 select 구문이 허용하는 where, group by와 같은 것을 모두 포함 가능하다.
TEMPORARY 뷰를 만들 수 없다.
뷰와 함께 연결되는 트리거를 만들 수 없다.
뷰 정의에 있는 SELECT 구문은 다음과 같은 구성을 포함 할 수 없다.
- FROM 절 안에 서브쿼리
- TEMPORARY 테이블로 참조
- 사용자 변수로 참조
View 사용하기
▶ 뷰 생성하기
뷰를 생성하는 방법은 다음과 같다.
CREATE VIEW<뷰이름>(컬럼목록) AS <뷰를 통해 보여줄 데이터 조회용 쿼리문>
ㆍ 테이블 A를 그대로 - CREATE VIEW 뷰A select*from 테이블A;
ㆍ 테이블 A 일부컬럼 - CREATE VIEW 뷰A select 컬럼1,컬럼2 from 테이블A;
ㆍ 테이블 A와 B를 JOIN - CREATE VIEW 뷰A select*from 테이블A a, 테이블B b WHERE a.컬럼1=b.컬럼3;
- CREATE 문으로 생성
- HeidiSQL 로 생성
▶ 뷰 조회하기
위에서 생성한 뷰를 테이블처럼 조회하여 사용할 수 있다.
▶ 뷰 삭제하기
위에서 생성한 뷰를 테이블과 같은 방법으로 삭제할 수 있다.
뷰 정의 자체를 변경하는 것은 불가능하기 때문에 뷰의 삭제와 재생성을 통해 뷰에 대한 정의 변경을 하여야 한다.
'데이터베이스' 카테고리의 다른 글
Stored Procedure (프로시저) (0) | 2020.04.13 |
---|---|
Stored Program (0) | 2020.04.13 |
데이터베이스 정규형 (0) | 2020.04.06 |
데이터베이스 정규화 (0) | 2020.04.06 |
데이터베이스 설계 (0) | 2020.04.06 |